Skip to content

目标

定义完整的 Schema v2 类型系统,实现 v1→v2 幂等迁移器和 DAG validator。

实现要点

  1. 类型定义 (src/flowrun/types.ts)

    • 新增 AcceptanceCriterion(id, description, verification: tdd|regression|manual)
    • 新增 TddMode, TddEnforcement, TddRunnerPolicy, TddApproval
    • 新增 TddPolicy, TddEvidence, TddCommandEvidence
    • 新增 CoveragePolicy, CoverageEvidence, TddComplianceCheckpoint
    • 新增 RepositoryQualityPolicy, FlowRunReadResult
    • 更新 TaskStateacceptanceCriteria, testCommands, verifyCommands, executionBinding, tddPolicy, tddEvidence, coveragePolicy
    • 更新 PRCheckpoints:新增 tddCompliance, verification, coverage, qualityContractDigest
    • 更新 FlowRun:新增 repositoryQualityPolicy
    • CURRENT_SCHEMA_VERSION = 2
  2. 迁移器 (src/flowrun/migration.ts)

    • 纯函数,幂等,输入 v1 → 输出 v2
    • 按 Spec 10.2 的逐字段映射表实现
    • 有 testCommands → relaxed + advisory,无 → bypass + advisory
    • acceptance 迁移为 acceptanceCriteria with legacy-1 id
    • Legacy exception approval 设置 kind: "legacy-migration", fromSchemaVersion: 1
    • 每种 Task 状态(pending/running/reviewing/merged/blocked/cancelled)有对应 fixture
  3. DAG validator (src/flowrun/validator.ts)

    • 检查 Task ID 唯一
    • 检查 record key 与 ID 一致
    • 检查所有依赖存在
    • 禁止自依赖
    • 检测环路(拓扑排序)
  4. 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