| phase |
plan |
type |
wave |
depends_on |
files_modified |
autonomous |
requirements |
must_haves |
| 06- |
03 |
execute |
3 |
|
| 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 |
|
| 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`