用途
doc-tdd-autopilot 是一条自动化 TDD 生成流水线。它从 SPEC 组件契约(docs/06_SPEC/)、用户提示词或实现计划(IPLAN-*)出发,分析源内容,规划测试金字塔,生成完整的 TDD(包含 BDD→测试映射、测试用例定义、阈值、执行顺序),校验就绪度,维护 TDD-00_index.md,并驱动审计↔修复循环直至达到通过分数。可处理单个 TDD,也可批量处理。
该技能位于第 7 层(TDD 层)。上游为 SPEC(主要来源)与 BDD(行为来源),并参考 BRD/PRD/EARS/ADR;下游产出经过验证的 TDD 及索引条目。
主要能力
- 智能文档检测:对每个目标检查 TDD 是否已存在(docs/07_TDD/TDD-NN_{component_slug}.yaml)。不存在则进入生成模式(每个 SPEC 组件生成一个 TDD);已存在则进入审查与修复模式(先审计,低于阈值则修复)。
- 确定所覆盖的 SPEC 组件,并从源内容确认 deliverable_type: code。
- 模型预检(Model precheck):尽力而为的提示性检查,会提示该层推荐的模型,但无法切换会话模型。
- 生成完整 TDD:Document Control 优先,包含全部 7 个章节、测试金字塔集合、每个 BDD 场景映射到测试类型/文件、测试用例 ID(TDD.NN.04.xxxx)、阈值、Red→Green→Refactor 顺序、累积标签 @brd…@spec + @tdd 自标签,图表标签通过 ../charts-flow/SKILL.md 处理。
- 质量门禁:生成在审计通过(IPLAN-Ready ≥ 阈值,0 个 Tier-1 错误)或达到迭代上限(此时标记人工审查)前不算完成;TDD 索引仅在 TDD 通过后更新;测试文件在实现之前声明(TDD 顺序);每轮都重新审计,不使用缓存分数。
使用方式
团队模式(review_mode: team)——Saga 驱动的生成循环
第 1 步——调用驱动。你的第一个编排动作必须是 Bash 工具(模型预检先运行),运行:
python3 "${CLAUDE_PLUGIN_ROOT}/tools/saga_driver.py" \
--layer 07_TDD \
--allow-skip-permissions
--allow-skip-permissions 让驱动调度的各阶段无需权限提示即可写文件——无人值守自动驾驶需要它。去掉该标志则以 Claude Code 的正常提示运行同一循环。使用较宽裕的超时(≥1800s)。不要预先分析输入,不要读取上游,不要分类类型/范围。驱动及其调度的子进程(/aidoc-flow:doc-tdd 负责草拟、/aidoc-flow:doc-tdd-audit 负责审查、/aidoc-flow:doc-tdd-fixer 负责修复)会处理所有这些。驱动依据 ${CLAUDE_PLUGIN_ROOT}/framework/governance/REVIEW_SAGA.md 抢先执行状态机;本技能的工作就是调用它并报告。
第 2 步——驱动返回后报告。读取 .aidoc/review/07_TDD/${ARTIFACT_ID}/saga.json。最终状态必须是 CLOSED(PASS)、ESCALATED(终态 FAIL)或 PARTIAL_TIMEOUT(软截止,可恢复)之一。打印状态、verdict.json 中的最终分数(若存在)以及一行摘要。
第 3 步——索引更新(仅在 CLOSED 时)。向 docs/07_TDD/TDD-00_index.md 添加一行引用新 TDD;更新上游制品的下游条目。
线性流水线(review_mode: single_pass)
保留的旧行为——当 profile 如此指定、Task 子代理调度不可用,或在写入时(on_author)以成本为主要考量时使用。以下 5 步会话内模式生成 TDD 但不产生 saga.json;随后 harness 的 saga-journal 检查会使该层失败,因此该模式仅适用于手动试运行。
- 输入分析——分类输入(SPEC / prompt / IPLAN),定位 SPEC 契约及其覆盖的 BDD 场景,决定生成还是审查并修复。
- 类型与范围——确认父 SPEC 存在且 IPLAN-ready;每个 SPEC 组件映射一个 TDD;预留下一个 TDD-NN。
- 生成——按 ../doc-tdd/SKILL.md 生成 TDD。
- 校验——从头运行 ../doc-tdd-audit/SKILL.md。
- 审计↔修复循环——当分数 < 阈值且迭代次数 < 上限时:运行 ../doc-tdd-fixer/SKILL.md,然后重新审计。通过后更新 docs/07_TDD/TDD-00_index.md;迭代耗尽则标记人工审查。
执行模式
- 单个(Single)——一个 TDD(生成或审查并修复)。
- 批量(Batch)——多个 TDD,按 3 个一组分块处理以限制上下文;仅在其父 SPEC 组件存在后才生成 TDD。
- 试运行(Dry-run)——报告计划动作(覆盖的 SPEC、测试金字塔、ID),不写文件。
输入契约
接受:目标 TDD id/路径;SPEC 路径/SPEC-NN;自由文本提示词;或 IPLAN 路径。可选:分数阈值(默认 90)、最大修复迭代次数(默认 3)、批量列表。无显式输入时,将请求视为提示词。主要来源是 SPEC(组件契约);BDD 是行为的真相来源——绝不虚构缺失的上游制品。
适用场景
- 需要从 SPEC 组件契约自动生成 TDD 文档的团队。
- 需要批量生成多个 TDD 并统一维护索引的场景。
- 需要将 TDD 生成、审计、修复形成闭环并达到质量阈值的流程。
- 需要无人值守自动驾驶式生成(团队模式)的流水线。
限制
- 模型预检仅为提示性,无法切换会话模型。
- 线性流水线模式不产生 saga.json,会导致 harness 的 saga-journal 检查失败,仅适用于手动试运行。
- 父 SPEC 缺失或低于 IPLAN-Ready 阈值时会停止并报告上游依赖。
- 达到最大迭代次数仍低于阈值时,写入报告、标记人工审查并继续批量。
- 源输入不明确时回退到提示词模式,并在 TDD 中记录假设。
- 写入/权限错误时记录、跳过该项、继续批量。
- 应用默认值前会读取项目适配配置(.aidoc/profile.yaml),遵循 section_toggles、active_layers、audit_threshold(仅可提高——更严格)、glossary;忽略未知或超出范围的键;无配置时使用框架默认值。
相关资源
创建:../doc-tdd/SKILL.md · 审计:../doc-tdd-audit/SKILL.md · 修复:../doc-tdd-fixer/SKILL.md
权威文件:${CLAUDE_PLUGIN_ROOT}/framework/layers/07_TDD/TDD-TEMPLATE.yaml、${CLAUDE_PLUGIN_ROOT}/framework/layers/07_TDD/README.md、${CLAUDE_PLUGIN_ROOT}/framework/layers/07_TDD/TDD-00_index.TEMPLATE.md