目标
定义完整的 Schema v2 类型系统,实现 v1→v2 幂等迁移器和 DAG validator。
实现要点
类型定义 (
src/flowrun/types.ts)- 新增
AcceptanceCriterion(id, description, verification: tdd|regression|manual) - 新增
TddMode,TddEnforcement,TddRunnerPolicy,TddApproval - 新增
TddPolicy,TddEvidence,TddCommandEvidence - 新增
CoveragePolicy,CoverageEvidence,TddComplianceCheckpoint - 新增
RepositoryQualityPolicy,FlowRunReadResult - 更新
TaskState:acceptanceCriteria,testCommands,verifyCommands,executionBinding,tddPolicy,tddEvidence,coveragePolicy - 更新
PRCheckpoints:新增tddCompliance,verification,coverage,qualityContractDigest - 更新
FlowRun:新增repositoryQualityPolicy CURRENT_SCHEMA_VERSION = 2
- 新增
迁移器 (
src/flowrun/migration.ts)- 纯函数,幂等,输入 v1 → 输出 v2
- 按 Spec 10.2 的逐字段映射表实现
- 有 testCommands →
relaxed + advisory,无 →bypass + advisory - 旧
acceptance迁移为acceptanceCriteriawithlegacy-1id - Legacy exception approval 设置
kind: "legacy-migration",fromSchemaVersion: 1 - 每种 Task 状态(pending/running/reviewing/merged/blocked/cancelled)有对应 fixture
DAG validator (
src/flowrun/validator.ts)- 检查 Task ID 唯一
- 检查 record key 与 ID 一致
- 检查所有依赖存在
- 禁止自依赖
- 检测环路(拓扑排序)
Read result (
src/flowrun/index.ts)readFlowRun()返回FlowRunReadResult(联合类型)- 流程:JSON parse → detect version → migrate → validate → return
验收标准
- [ ] v1→v2 迁移测试通过(5+ fixture)
- [ ] 幂等性测试通过
- [ ] Future/malformed schema 错误码测试通过
- [ ] DAG 验证器拒绝重复 ID、未知依赖、自依赖、环路
- [ ]
FlowRunReadResult正确区分四种错误
Worktree
- 路径:
.worktree/tdd-b1-schema-v2/ - 分支:
feat/tdd-b1-schema-v2