| phase |
plan |
type |
wave |
depends_on |
files_modified |
autonomous |
requirements |
must_haves |
| 05-test-hardening-and-commit-hygiene |
01 |
execute |
1 |
| 04-iframe-markdown-new-system-stabilization |
|
| frontend/tests/e2e/welcome-and-routing.spec.ts |
| frontend/tests/e2e/thread-routing.spec.ts |
| frontend/tests/e2e/input-and-compose.spec.ts |
| frontend/tests/e2e/message-and-history.spec.ts |
| frontend/tests/e2e/artifacts-and-thread-reuse.spec.ts |
| frontend/tests/e2e/support/chat-helpers.ts |
| frontend/playwright.config.ts |
| .planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md |
| .planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md |
|
true |
|
| truths |
artifacts |
key_links |
| E2E 关键路径在当前环境具备稳定执行结果:前端可控路径必须强断言通过,环境敏感路径必须可解释 skip。 |
| 测试输出必须形成 reviewer 可用证据:pass/skip/fail 统计 + skip 原因 + 失败定位入口。 |
| 提交结构按 concern 清晰拆分,避免 style/logic/tests/docs 混杂。 |
|
| path |
provides |
| frontend/tests/e2e/support/chat-helpers.ts |
统一的路由构造、等待策略、skip 规则 |
|
| path |
provides |
| frontend/tests/e2e/*.spec.ts |
Phase 1~4 关键路径回归覆盖 |
|
| path |
provides |
| .planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md |
Phase 5 测试结论与问题清单 |
|
|
| from |
to |
via |
pattern |
| chat-helpers.ts |
all e2e specs |
统一等待与 skip 策略 |
openChat|waitForMessageListReady|skipIfMissingThread |
|
| from |
to |
via |
pattern |
| playwright.config.ts |
e2e execution |
环境变量与执行稳定性 |
baseURL|retries|reporter |
|
|
|
完成最终测试加固与提交卫生收口:形成稳定可解释的 E2E 结果,并将当前工作区变更整理为可审阅、可回滚的提交结构。
Purpose: 落实 TEST-01/TEST-02/TEST-03,保证 merge recovery 结束前质量可审计。
Output: Phase 5 UAT + Summary + concern-based commit checklist。
@.planning/PROJECT.md
@.planning/REQUIREMENTS.md
@.planning/ROADMAP.md
@.planning/phases/05-test-hardening-and-commit-hygiene/05-CONTEXT.md
@.planning/phases/04-iframe-markdown-new-system-stabilization/04-UAT.md
@frontend/playwright.config.ts
@frontend/tests/e2e/support/chat-helpers.ts
@frontend/tests/e2e/welcome-and-routing.spec.ts
@frontend/tests/e2e/thread-routing.spec.ts
@frontend/tests/e2e/input-and-compose.spec.ts
@frontend/tests/e2e/message-and-history.spec.ts
@frontend/tests/e2e/artifacts-and-thread-reuse.spec.ts
Task 1: E2E 套件稳定性硬化
(TEST-01
)
frontend/tests/e2e/welcome-and-routing.spec.ts
frontend/tests/e2e/thread-routing.spec.ts
frontend/tests/e2e/input-and-compose.spec.ts
frontend/tests/e2e/message-and-history.spec.ts
frontend/tests/e2e/artifacts-and-thread-reuse.spec.ts
frontend/tests/e2e/support/chat-helpers.ts
- Test 1: 前端可控关键路径(路由、输入、发送、导出触发)维持强断言。
- Test 2: 后端/fixture 敏感路径在数据缺失时 skip 且附明确原因。
- Test 3: 不再出现因单点后端错误引发的无意义级联失败。
统一 spec 断言策略与 helper 行为:将环境敏感断言抽象到 helper
,并规范 skip 文案;对关键用户路径保留严格断言,避免“全部放宽”导致测试失真。
cd frontend && npm run test:e2e -- welcome-and-routing.spec.ts thread-routing.spec.ts input-and-compose.spec.ts message-and-history.spec.ts artifacts-and-thread-reuse.spec.ts
E2E 套件在当前环境具备稳定、可解释结果,关键路径无假阴性。
Task 2: 验证证据与 UAT 收敛
(TEST-01, TEST-03
)
.planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md
.planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md
- Test 1: UAT 包含 pass/issue/skip 统计与逐项说明。
- Test 2: skip 场景必须有明确环境原因,不允许模糊表述。
- Test 3: Summary 能反向追溯到验证命令与关键文件。
基于实际执行命令产出 Phase 5 的 UAT 与 SUMMARY
,保证 reviewer 能复现与审计;明确哪些结果是环境限制,哪些是代码风险。
test -f .planning/phases/05-test-hardening-and-commit-hygiene/05-UAT.md && test -f .planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md
验证证据链完整,后续 `gsd-complete-milestone` 可直接消费。
Task 3: 提交卫生整理
(TEST-02
)
(working tree concern groups)
- 提交按 concern 分组
(style / logic / tests / docs
)。
- 每组提交都能对应最小验证命令。
- 不改写历史提交,不回滚无关用户变更。
梳理当前工作区变更,形成 commit 建议清单与执行顺序;若本阶段执行提交,则严格按 concern 分批提交并附验证结果。
git status --short
提交结构清晰
,PR 审阅成本可控。
<threat_model>
Trust Boundaries
| Boundary |
Description |
test assertions -> unstable backend fixtures |
测试断言受后端数据波动影响,需要前端可控与环境依赖分层 |
working tree -> commit history |
大量未提交改动进入历史前,必须按 concern 清洗并可追溯 |
STRIDE Threat Register
| Threat ID |
Category |
Component |
Disposition |
Mitigation Plan |
| T-05-01 |
R (Repudiation) |
E2E result interpretation |
mitigate |
统一 pass/skip/fail 规则与 skip 原因模板 |
| T-05-02 |
D (Denial of Service) |
flaky tests blocking pipeline |
mitigate |
helper 统一等待与条件 skip,减少假失败级联 |
| T-05-03 |
T (Tampering) |
mixed-concern commits |
mitigate |
按 concern 分组提交并绑定最小验证命令 |
| T-05-04 |
I (Information Disclosure) |
log-driven decisions |
accept |
本阶段不新增数据读取面,仅利用现有日志作定位 |
| </threat_model> |
|
|
|
|
1. 目标 E2E 套件执行完成并产出可解释结果。
2. Phase 5 UAT/SUMMARY 文档齐备且与执行结果一致。
3. 提交整理策略明确,可直接进入提交或里程碑收尾。
<success_criteria>
- TEST-01:回归测试覆盖关键路径并稳定运行。
- TEST-02:变更可按 concern 清晰提交,避免混乱历史。
- TEST-03:验证结果对 reviewer 可审计、可复现、可解释。
</success_criteria>
After completion, create `.planning/phases/05-test-hardening-and-commit-hygiene/05-SUMMARY.md`