目标
实现 remote head revalidation、PR rework(behavior/refactor)完整流程和 coverage 解析。
实现要点
Remote head revalidation (
src/flowrun/pr.ts扩展)flow_pr verify实现:gh pr view --json headRefOid,headRepository查询 remote head- SHA 不同但 tree SHA 相同:在隔离 checkout 重新执行 regression/verification,绑定新 head
- tree SHA 不同:将摘要置为 pending,要求先执行
flow_pr rework
flow_pr rework实现:- behavior: 声明 affected criterionIds → 增加 reworkRevision → 要求新 cycle
- refactor: 不制造 RED → 但必须重跑 regression → 需要 reviewer 批准
flow_pr rework-complete:验证新 committed-head regression/verification → Task 回reviewing
Coverage 解析 (
src/flowrun/coverage.ts)parseCoverageReport(reportPath: string): CoverageEvidence- 安全检查:report path 在隔离 checkout 内,拒绝
..、逃逸 symlink - 运行前删除旧 report;运行后要求本次新建
- 解析
istanbul-json-summary的lines.pct - 拒绝缺字段、NaN、
Unknown、范围外数值 - 保存 actual、threshold、metric、report digest、head SHA
Rework 流程
rework(kind="behavior"):声明 affected criterion,每个受影响的 TDD criterion 需要新 cyclerework(kind="refactor"):不制造虚假 RED,但需要 reviewer 批准(binding reworkRevision + head/tree SHA + policyDigest)- rework 后沿用现有 PR,不创建新 PR
pr-rework-complete验证后恢复 Task 为reviewing
验收标准
- [ ] push/rebase 后 remote head 变化测试
- [ ] stale report(PR tree 变化但未 rework)测试
- [ ] behavior rework + 新 cycle 测试
- [ ] refactor rework + reviewer 批准测试
- [ ] coverage 路径穿越/NaN/旧文件拒绝测试
Worktree
- 路径:
.worktree/tdd-d3-reval-coverage/ - 分支:
feat/tdd-d3-reval-coverage