deerflow2/.planning/phases/06-/06-03-PLAN.md

7.9 KiB
Raw Blame History

phase plan type wave depends_on files_modified autonomous requirements must_haves
06- 03 execute 3
06-01
06-02
frontend/tests/e2e/input-and-compose.spec.ts
frontend/tests/e2e/support/chat-helpers.ts
frontend/src/core/threads/hooks.test.ts
.planning/phases/06-/06-VALIDATION.md
.planning/phases/06-/06-COMMIT-GUIDE.md
true
ATREF-04
truths artifacts key_links
@ 引用主流程有自动化测试覆盖候选、chip、上限、软失败
Phase 6 提交分组按 style / logic / tests / docs 顺序可直接执行。
Validation 文档的 Wave 0 缺口被关闭或显式替换为可执行命令。
path provides
frontend/tests/e2e/input-and-compose.spec.ts @ 引用交互 E2E 回归
path provides
frontend/src/core/threads/hooks.test.ts 提交 envelope 与软失败单测
path provides
.planning/phases/06-/06-COMMIT-GUIDE.md 按关注点提交分组与执行顺序
from to via pattern
frontend/tests/e2e/input-and-compose.spec.ts frontend/src/components/workspace/input-box.tsx @ 引用交互断言 @引用|chip|失效引用|上限
from to via pattern
.planning/phases/06-/06-COMMIT-GUIDE.md git history concern-based commit order style -> logic -> tests -> docs
补齐 Phase 6 的自动化验证与提交卫生,使本阶段可审计、可回归、可合并。

Purpose: 避免“功能上线但无测试与提交策略”的交付风险。 Output: E2E/单测、更新后的验证矩阵、以及可执行的 commit 分组计划。

<execution_context> @/home/mt/.codex/get-shit-done/workflows/execute-plan.md @/home/mt/.codex/get-shit-done/templates/summary.md </execution_context>

@.planning/ROADMAP.md @.planning/phases/06-/06-VALIDATION.md @.planning/phases/06-/06-CONTEXT.md @frontend/tests/e2e/input-and-compose.spec.ts @frontend/tests/e2e/support/chat-helpers.ts @frontend/src/core/threads/hooks.test.ts Task 1: 增加 @ 引用 E2E 与 hooks 单测覆盖 D-01~D-08 frontend/tests/e2e/input-and-compose.spec.ts, frontend/tests/e2e/support/chat-helpers.ts, frontend/src/core/threads/hooks.test.ts - frontend/tests/e2e/input-and-compose.spec.ts - frontend/tests/e2e/support/chat-helpers.ts - frontend/src/core/threads/hooks.test.ts - .planning/phases/06-/06-VALIDATION.md - .planning/phases/06-/06-CONTEXT.md - Test 1: 输入 `@` 后只展示当前线程候选并可过滤per D-01, D-02。 - Test 2: 选择候选后显示 chip超过 10 个不可继续添加per D-03, D-08。 - Test 3: 失效引用被剔除且发送不阻断per D-07。 在 `input-and-compose.spec.ts` 增加 `@引用` 场景用例(可用 `test.describe("聊天工作台 / @引用文件")` 分组);必要时在 `chat-helpers.ts` 增加 thread 内 artifact/upload fixture 探测辅助;在 `hooks.test.ts` 增加引用元信息提交与失效软失败断言。若环境依赖不足,使用 `testInfo.skip` 并写明原因字符串,不允许静默跳过。 - `rg -n "@引用文件|chip|失效引用|上限" frontend/tests/e2e/input-and-compose.spec.ts` 命中新增场景。 - `rg -n "ref_kind|ref_source|soft|stale|继续提交" frontend/src/core/threads/hooks.test.ts` 命中新增断言。 - 新增/修改测试命令可执行且输出包含 pass 或 explainable skip。 cd frontend && pnpm -s test:e2e -- input-and-compose.spec.ts && node --test src/core/threads/hooks.test.ts 自动化覆盖 D-01~D-08 的关键行为,并保留可解释 skip 机制。 Task 2: 更新验证矩阵并关闭 Wave 0 缺口 .planning/phases/06-/06-VALIDATION.md - .planning/phases/06-/06-VALIDATION.md - .planning/phases/06-/06-RESEARCH.md - .planning/phases/06-/06-CONTEXT.md 把 `06-VALIDATION.md` 中 Wave 0 缺口替换为本阶段已落地的真实测试文件与命令;将 `nyquist_compliant` 更新为 `true`(前提是所有任务都具备自动化验证命令);在 Per-Task Verification Map 中加入 D-01~D-09 对应条目与 threat 引用。 - `rg -n "nyquist_compliant:\\s*true" .planning/phases/06-/06-VALIDATION.md` 命中。 - `rg -n "D-0[1-9]|ATREF" .planning/phases/06-/06-VALIDATION.md` 命中需求映射。 - `rg -n "Wave 0" .planning/phases/06-/06-VALIDATION.md` 不再包含未完成占位项。 cd /home/mt/Project/deerflow2 && rg -n "nyquist_compliant:\\s*true|D-0[1-9]|ATREF" .planning/phases/06-/06-VALIDATION.md 验证策略与实现状态一致,且 Nyquist 检查可通过。 Task 3: 产出 Phase 6 Git 提交分组计划style/logic/tests/docs .planning/phases/06-/06-COMMIT-GUIDE.md - .planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md - .planning/phases/06-/06-01-PLAN.md - .planning/phases/06-/06-02-PLAN.md - .planning/phases/06-/06-VALIDATION.md 新增 `06-COMMIT-GUIDE.md`,明确提交顺序与分组:`1) style`(仅样式/展示类变更,如 chip 外观、dropdown 样式类),`2) logic`(候选聚合、提交结构、软失败逻辑),`3) tests`hooks/e2e 用例与 helper`4) docs`VALIDATION/SUMMARY/ROADMAP 更新);每组列出建议 `git add` 文件清单与规范 commit message 模板禁止跨组混提。tests 组最小 E2E 验证必须覆盖 `DF-INPUT-007|DF-INPUT-008|DF-INPUT-009`,满足 DF-INPUT-009 hygiene 缺口。 - `06-COMMIT-GUIDE.md` 包含固定顺序文本 `style -> logic -> tests -> docs`。 - 文档内每个分组都有文件清单与 commit message 示例。 - 文档包含“禁止跨组混提”规则。 cd /home/mt/Project/deerflow2 && rg -n "style -> logic -> tests -> docs|禁止跨组混提|DF-INPUT-009|commit message" .planning/phases/06-/06-COMMIT-GUIDE.md 提交卫生方案可直接执行,满足用户的分组与顺序约束。

<threat_model>

Trust Boundaries

Boundary Description
test fixtures→真实线程环境 自动化测试依赖 thread fixtures 与后端可用性
commit grouping doc→实际提交动作 文档规范需要转化为可执行提交步骤

STRIDE Threat Register

Threat ID Category Component Disposition Mitigation Plan
T-06-03-01 R 06-COMMIT-GUIDE.md mitigate 提供固定顺序与文件清单,确保提交可追踪与可审计。
T-06-03-02 D E2E 测试执行 mitigate 环境不足时显式 skip 并给原因,避免反复失败阻塞整个阶段。
T-06-03-03 T 验证矩阵 mitigate 将验证命令与需求映射写死到 VALIDATION避免后续手工偏离。
</threat_model>
- `cd frontend && pnpm -s test:e2e -- input-and-compose.spec.ts` - `cd frontend && node --test src/core/threads/hooks.test.ts` - `cd /home/mt/Project/deerflow2 && rg -n "style -> logic -> tests -> docs|DF-INPUT-009" .planning/phases/06-/06-COMMIT-GUIDE.md`

<success_criteria>

  • Phase 6 关键行为有自动化回归(单测 + E2E
  • 验证文档与代码状态一致,不留 Wave 0 未闭合缺口。
  • Git 提交计划明确 style/logic/tests/docs 分组与执行顺序。 </success_criteria>
After completion, create `.planning/phases/06-/06-03-SUMMARY.md`