一键导入
tdd-engine
TDD引擎 — 编排RED→GREEN→REFACTOR三阶段子代理执行TDD开发,支持 light-dispatch / light-inline / standard / prototype-inline 四档与 sprint 内独立任务并行调度。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
TDD引擎 — 编排RED→GREEN→REFACTOR三阶段子代理执行TDD开发,支持 light-dispatch / light-inline / standard / prototype-inline 四档与 sprint 内独立任务并行调度。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | tdd-engine |
| description | TDD引擎 — 编排RED→GREEN→REFACTOR三阶段子代理执行TDD开发,支持 light-dispatch / light-inline / standard / prototype-inline 四档与 sprint 内独立任务并行调度。 |
| argument-hint | <任务卡ID如T-001> |
| suggested-tools | file_read, file_write, file_edit, shell_exec, file_glob, file_grep, agent_dispatch |
| depends | ["context"] |
| disable-model-invocation | false |
| user-invocable | true |
orchestrator作为主线程Agent,在Phase 5逐任务执行时调用本skill。每个TDD阶段作为独立子代理启动,拥有独立上下文窗口,避免阶段间上下文污染。
orchestrator (主线程)
├─ 通过调度接口启动 → RED SubAgent (test-writer) — 独立上下文
├─ 收集RED产出 → 通过调度接口启动 → GREEN SubAgent (implementer) — 独立上下文
├─ implementer self-report `refactor_needed=true` 或 `tdd_refactor: required` → REFACTOR SubAgent (refactorer)
└─ 汇总产出 → 更新dev-plan任务状态
四档执行模式(触发条件唯一定义在 §执行流程 任务路由分支):
| 档 | 执行位置 |
|---|---|
| standard | RED + GREEN + REFACTOR(条件) 三次 dispatch |
| light-dispatch | implementer 一次 dispatch(合并 RED+GREEN) |
| light-inline | orchestrator 主线程内联 implementer 行为,零子代理 boot |
| prototype-inline | 同 light-inline,强制跳过 REFACTOR |
避免子代理在末尾 finalize 集中产出导致 task-notification truncation(征兆:100+ tools / 100K+ tokens / 5min+ 被打断;<agent-result> 不返回但 artifact 已部分落地)。触发(任一命中):loc_estimate > MID_PROGRESS_LOC(缺字段取 len(AC) × 30)或 len(tdd_acceptance) > 6。命中时 implementer dispatch prompt 强制注入:
Mid-progress 落盘:
- 先
Write全部目标文件的空骨架(import + export stub +describe(...)/ 函数签名占位),按依赖序落盘——被导入文件先于引用它的文件(写盘纪律见 SUB-AGENT-PROTOCOLS §并行/多文件写盘纪律)- 逐 AC 迭代填充实现 + 测试
- 每完成一条 AC 立刻运行
{test_command_fast}(按需附 file 过滤)验证- 禁止末尾一次
Edit堆所有 AC 实现 + 全套断言
适用:standard Step 3 GREEN ✅;light-dispatch ✅;light-inline / prototype-inline ❌(主线程产出,token 由主线程窗口管理,不需此契约)。契约失效(仍 truncation)→ ORCHESTRATOR-RECOVERY-PROTOCOLS §Sub-Agent Truncation Recovery Protocol 主线程接管。
以下约束适用于所有 TDD 子代理,通过 AGENT.md 的 disallowedTools 和本节定义:
<questions> 描述问题,orchestrator 以 continuation 重启<agent-result> 格式(详见 dispatch-prompt.md §COMMON-SECTIONS)<questions> 字段子代理间通过文件系统传递状态;orchestrator 保留 Step 1 提取的上下文,按阶段按需内联进各 dispatch prompt。各阶段从上一阶段 <agent-result> 提取(字段定义 SSOT=各 AGENT.md §Output Contract):
orchestrator按以下步骤编排每个任务(T-xxx)的TDD。
任务路由分支: 读取任务卡 task_kind 和 tdd_mode 字段:
task_kind ∈ CODE_REVIEW_L2_SKIP_TASK_KINDS → 跳过 TDD,由 implementer 单次调用直接产出,进入 Step 5。产代码的 chore 任务(deliverables 含源码而非纯配置/文档)标 done 前须跑一次 changed-scope 类型检查 + lint 门,命中即 continuation 修复,不寄托于 self-report 或 lint hook 兜底tdd_mode 缺省(缺省视为 TDD_DEFAULT_MODE):
light + 满足 §Inline 触发条件 → 走 §Light Inline 模式(主线程内联,零 dispatch)light + 不满足 inline 条件 → 走 §Light Dispatch 模式(implementer 一次 dispatch 合并 RED+GREEN)standard → Step 1 → Step 2 (RED) → Step 3 (GREEN) → Step 4 按条件 → Step 5agile-prototype → 强制走 §Prototype Inline 模式(主线程内联 + 强制跳过 REFACTOR)Inline 触发条件(合取):
tdd_mode = lightloc_estimate ≤ TDD_LIGHT_LOC_THRESHOLD(任务卡缺该字段时取 LOC=AC 数 × 30 的粗估)security_sensitive ≠ trueTDD_INLINE_ELIGIBLE_MODES(审计粒度通过 EVENT-LOG 事件保持,不依赖子代理隔离)REFACTOR 条件触发: 判定逻辑与审计兜底唯一定义在 §Step 4 触发判定。
通过context加载任务卡的context_load章节,提取以下内容并在主线程保留,后续子代理 prompt 将按需内联传入:
task_kind、tdd_mode、tdd_refactor、security_sensitive、loc_estimatetest_command_fast 内循环排除慢测 / test_command_full 收敛点门禁全量;arch 未声明 §7.4 时项目单一测试命令双档同值)cataforge event log --event tdd_phase --phase development --model standard --detail "TDD RED: {T-xxx}"调度请求:
agent_id: "test-writer"
description: "TDD RED: T-xxx 编写失败测试"
prompt: |
当前项目: {项目名}。
## meta
- task_kind: {task_kind}
- tdd_mode: standard
- security_sensitive: {true|false}
## lang_rules
按 framework.json project.languages 载入 `testing` skill 的 `references/lang-<active>.md`,遵循其语言测试细则。
## suite_discipline
载入 `.cataforge/references/test-suite-performance.md` 并遵循;新测试涉及子进程/服务/网络/显式等待时,按 arch#§7.4 测试执行口径声明的慢测标签约定打标(未声明时按语言惯例打标并在 summary 注明)。
## user_story
{prd#§2.F-xxx 的功能描述,含用户角色/使用动机/业务价值}
## business_rules
{prd#§3 相关业务规则摘要,无则标注 "无显式业务规则约束"}
## tdd_acceptance
{AC列表,每条 Given-When-Then 格式}
## interface_contract
{arch 接口定义片段}
## directory_layout
{arch#§6 摘要}
## test_command
{test_command_fast,如 `pytest -q --tb=short tests/`(arch#§7.4 未声明时取项目单一测试命令)}
## verified_anchors
{主线程已核实的代码域锚点,按 SUB-AGENT-PROTOCOLS §verified_anchors 锚点传递契约填写;未核实过代码则整节省略}
任务: 基于 §user_story 的业务场景,为 §tdd_acceptance 的所有 AC 编写验证行为的测试用例(禁止存在性断言),确保所有新增测试 FAIL。
同模块 RED 批量化: 当 orchestrator 一次性派发同 sprint_group 内同模块(context_load 共享 ≥1 个 arch#§2.M-xxx)的 N 个任务时,可合并为一次 test-writer 调用,prompt 内联各任务的 §tdd_acceptance(按 task_id 分块)和共享的接口契约,summary 中按 task_id 分块返回。仅适用于任务数 ≤ 4 且共享同一模块;否则回退到逐任务调度。
验证(orchestrator 执行):
失败原因验证和断言有效性已由 test-writer 的 Execution Rules 完成;orchestrator 不做 summary 字段级二次核验,避免主线程上下文重复消费 test-writer 详细输出。
cataforge event log --event tdd_phase --phase development --model standard --detail "TDD GREEN: {T-xxx}"调度请求:
agent_id: "implementer"
description: "TDD GREEN: T-xxx 最小实现"
prompt: |
当前项目: {项目名}。
## meta
- task_kind: {task_kind}
- tdd_mode: standard
- security_sensitive: {true|false}
## lang_rules
按 framework.json project.languages 载入 `tdd-engine` skill 的 `references/lang-<active>.md`,遵循其语言实现细则。
## interface_contract
{arch 接口定义片段}
## directory_layout
{arch#§6 摘要}
## naming_convention
{arch#§7 摘要}
## test_command
{test_command_fast,如 `pytest -q --tb=short tests/`(arch#§7.4 未声明时取项目单一测试命令)}
## verified_anchors
{主线程已核实的代码域锚点,按 SUB-AGENT-PROTOCOLS §verified_anchors 锚点传递契约填写;未核实过代码则整节省略}
RED 阶段产出 test_files: {RED 阶段返回的路径列表}
任务: 编写最小代码使所有测试通过。
{{ §Mid-Progress Drop Contract 触发条件命中时附加 }}
按你的 AGENT.md §Mid-Progress 落盘契约推进,禁止末尾堆批 Edit。
验证(orchestrator 执行):
refactor_needed / refactor_reasons 字段(→ §Step 4)wiring_complete / wiring_evidence(缺省视为 n/a,向后兼容):
wiring_complete=false + 任务卡 user_facing_critical_path: true → orchestrator 标 HIGH,要求 implementer continuation 修复 wiring 终点(每任务最多 1 次 continuation,再失败 blocked)wiring_complete=false + 普通任务 → orchestrator 不阻塞 GREEN,仅在 sprint-review §wiring-completeness 时记入 MEDIUMwiring_complete=true + 缺 wiring_evidence → 记 INFO 提示后续补 evidence;不阻塞cataforge event log --event tdd_phase --phase development --model standard --detail "TDD REFACTOR: {T-xxx}"(仅在实际触发时记录)触发判定 (orchestrator 在 GREEN/Light 完成后执行):
tdd_refactor: required → 强制触发tdd_refactor: skip → 直接跳过进入 Step 5<agent-result>.refactor_needed:
refactor_reasons 作为 prompt §触发原因 内联审计兜底:sprint-review 阶段对该 sprint 的 impl_files 范围跑一次
cataforge skill run code-review -- scan <scope> --focus complexity,duplication,coupling(Layer 1),覆盖 implementer 漏判的情况。
调度请求:
agent_id: "refactorer"
description: "TDD REFACTOR: T-xxx 代码优化"
prompt: |
当前项目: {项目名}。
## meta
- tdd_refactor: {required|self-report}
- security_sensitive: {true|false}
## naming_convention
{arch#§7 摘要}
## test_command
{test_command_fast,如 `pytest -q --tb=short tests/`(arch#§7.4 未声明时取项目单一测试命令)}
实现文件: {GREEN阶段产出的impl_files}
测试文件: {RED阶段产出的test_files}
触发原因: {required | implementer self-report: <refactor_reasons>}(请重点优化对应维度)
任务: 优化代码质量,保持所有测试通过。
完成后验证(orchestrator 在 refactorer 返回 completed 后执行):
test_command_full 确认全部 PASS(收敛点门禁)git status --short 与 HEAD 比对调度前 baseline;任一命中视为 refactorer 越权碰 git(refactorer 仅应产出文件,不应 add / commit / push / branch / reset / checkout / stash —— 见 refactorer AGENT.md §Anti-Patterns),标 BLOCKED 并请求人工介入:
跳过 REFACTOR 时不记录 tdd_phase REFACTOR 事件,仅在 Step 5 汇总中标注 "REFACTOR skipped (no trigger)"。
并行约束:REFACTOR 阶段在同 sprint_group 批次内必须串行(按 task_id 字典序),不可与其他任务的 REFACTOR 并行执行。约束来源 ORCHESTRATOR-PROTOCOLS §Parallel Task Dispatch(避免源文件并发改写冲突)。RED / GREEN 仍可并行(上限 3)。
将 Step 2 和 Step 3 合并为一次 implementer 子代理调用,子代理内部先写 AC 对应的失败测试再补最小实现。
cataforge event log --event tdd_phase --phase development --model standard --detail "TDD LIGHT-DISPATCH: {T-xxx}"调度请求:
agent_id: "implementer"
description: "TDD LIGHT-DISPATCH: T-xxx 合并RED+GREEN"
prompt: |
当前项目: {项目名}。
模式: tdd_mode=light(合并 RED+GREEN)
## meta
- task_kind: {task_kind}
- security_sensitive: {true|false}
## lang_rules
按 framework.json project.languages 载入 `testing` skill `references/lang-<active>.md`(测试细则)+ `tdd-engine` skill `references/lang-<active>.md`(实现细则)。
## suite_discipline
载入 `.cataforge/references/test-suite-performance.md` 并遵循;新测试涉及子进程/服务/网络/显式等待时,按 arch#§7.4 测试执行口径声明的慢测标签约定打标(未声明时按语言惯例打标并在 summary 注明)。
## user_story
{prd#§2.F-xxx 的功能描述,含用户角色/使用动机/业务价值}
## business_rules
{prd#§3 相关业务规则摘要,无则标注 "无显式业务规则约束"}
## tdd_acceptance
{AC列表,每条 Given-When-Then 格式}
## interface_contract
{arch 接口定义片段}
## directory_layout
{arch#§6 摘要}
## naming_convention
{arch#§7 摘要}
## test_command
{test_command_fast,如 `pytest -q --tb=short tests/`(arch#§7.4 未声明时取项目单一测试命令)}
## verified_anchors
{主线程已核实的代码域锚点,按 SUB-AGENT-PROTOCOLS §verified_anchors 锚点传递契约填写;未核实过代码则整节省略}
任务: 基于 §user_story 的业务场景,先为 §tdd_acceptance 的每条 AC 写一份验证行为的失败测试(禁止存在性断言),确认 FAIL 后再补最小实现使测试通过。
{{ §Mid-Progress Drop Contract 触发条件命中时附加 }}
按你的 AGENT.md §Mid-Progress 落盘契约推进,禁止末尾堆批 Edit。
验证(orchestrator 执行):
test_command_full 确认最终全部 PASSEDorchestrator 自身在主线程使用 Step 1 已提取的上下文,按 light 模式的"先测试后实现"步骤直接产出 test_files + impl_files,不调用 agent_dispatch capability:
testing + tdd-engine 两 skill 的 references/lang-<active>.md(测试细则 + 实现细则),并载入 .cataforge/references/test-suite-performance.md(套件性能纪律)refactor_needed / refactor_reasons 作为 orchestrator 自身的判断(写入 EVENT-LOG 而非通过 agent_return)cataforge event log --event tdd_phase --phase development --model inline --detail "TDD LIGHT-INLINE: {T-xxx}"agile-prototype 项目的任务全部走 implementer 主线程内联(即 light-inline 的特化),并强制跳过 REFACTOR:
cataforge event log --event tdd_phase --phase development --model inline --detail "TDD PROTOTYPE-INLINE: {T-xxx}"orchestrator完成以下收尾:
test_command_full 确认全部 PASS——收敛点门禁为真值)security_sensitive: true、user_facing_critical_path: true、consumer_components 非空。审查范围包含 impl_files 和 test_filescataforge context update <task-id> --slot status=done 直写任务实体;markdown 模式直接编辑文档状态行(dev-plan Sprint 表状态列 / brief 任务卡 status 字段,文档即事实源)Sprint级审查: 当 Sprint 内所有任务完成 Step 5 后、下一 Sprint 开始之前,orchestrator 触发 sprint-review skill(批量 code-review 与完成度 / AC 覆盖 / 范围偏移的双重职责见 ORCHESTRATOR-PROTOCOLS §Sprint Review Protocol)。
项目走查 — 在隔离沙盒中以指定执行模式(缺省 standard 全阶段)把一个小型示例项目跑通整条 SDLC 工作流(初始化→核心执行链路→分支→异常→终止清理),逐路径观察各阶段/门禁/降级/恢复的真实行为,产出『框架本身 + 走查流程本身』两类改进建议,并把走查流程自身的改进经自更新协议回灌本 skill 迭代。与 framework-review 形成动静对偶:后者静态审元资产,本 skill 动态端到端自测。当用户想验证一次框架部署是否真能跑通、为非 Claude-Code 平台做行为级冒烟、或自测 workflow-framework-generator 生成的框架时使用。
测试 — 测试策略规划、测试编写与执行、覆盖率分析、缺陷记录。当需要规划测试策略、编写或执行测试套件、分析覆盖率或记录缺陷时使用。本 skill 不改源码(缺陷修复由 debug 负责),单任务 RED/GREEN 单元测试由 tdd-engine 负责,testing 聚焦集成/E2E 与覆盖盲区补充。
代码评审 — 任务粒度评审 (review) 与项目级健康度扫描 (scan) 双入口;代码质量检查、规范合规验证、安全漏洞检测、腐化指标扫描。当任务卡 GREEN 完成 / Sprint 发布前 / 用户要求扫描代码腐化时使用此 skill。审查范围限 src/ 业务代码:文档审查由 doc-review 负责;框架元资产 (.cataforge/) 审查由 framework-review 负责;Sprint 完成度由 sprint-review 负责。
统一上下文 I/O — 按需读取章节/实体、查询追溯关系、生成与写入、门禁校验。文档生命周期的单一入口;后端(知识图谱/文件)由框架按配置方案透明路由,调用方只表达意图。按操作分支见 references/。
功能走查 — 对交付项目的功能实现做验收式动态走查,两层正交判定:①功能是否兑现 spec(missing/drift/bug/pass);②代码本身是否健康(复用 COMMON-RULES §统一问题分类体系的 code category)。用真实数据路径起真实服务复现,专捞门禁全绿仍漏的跨模块集成缝隙。当项目功能交付后需验收、Sprint 发布前做功能级复核、或用户要求走查某功能域时使用。与 framework-walkthrough 动静对偶:后者在沙盒自测框架 SDLC,本 skill 验收交付项目的功能实现。
框架元资产审查 — 对 .cataforge/ 下的 agents/skills/hooks/rules + workflow 拓扑做内容质量与一致性审查。与 platform-audit 形成内审/外审对偶;与 code-review/doc-review 服务于业务产物不同,本 skill 专审框架自身配置。当用户提到框架腐化、SKILL.md/AGENT.md 质量、agent 引用孤立、SKILL/MANIFEST 漂移、Workflow 完整性、model_tier 合规时使用。