子代理驱动开发
为每个任务分派新的子代理,并在每个任务后进行两阶段审查。
核心原则: 每个任务一个新子代理 + 两阶段审查(规范然后质量) + 基于差异的验证 = 高质量,快速迭代
快速参考
| 阶段 | 行动者 | 行动 | 退出条件 |
|---|---|---|---|
| 1 | 控制器 | 读取计划,提取任务,捕获BASE_SHA,创建任务列表 | 所有任务用BASE_SHA跟踪 |
| 2 | 子代理 | 实施(templates/implementer.md) | 提交存在 + 测试通过 + 报告包括HEAD_SHA |
| 3 | 子代理 | 规范审查(templates/spec-reviewer.md) | 审查者检查diff(BASE…HEAD)并返回✅或文件:行问题 |
| 4 | 子代理 | 质量审查(templates/code-quality-reviewer.md) | 审查者批准diff或返回严重性标记的问题 |
| 5 | 控制器 | 更新状态,标记完成,循环到第2步 | 所有任务完成 |
| 6 | 子代理 | 最终审查整个实施 | 批准 |
| 7 | 控制器 | 使用finishing-a-development-branch | 分支完成 |
任务合同
每个任务必须满足这些约束:
范围:
- 一个任务 = 一次提交(或紧密的提交堆栈)
- 没有即兴重构;没有格式化混乱
- 没有不相关的文件更改
验证:
- 所有测试通过(运行完整套件或受影响的子集)
- Lint/typecheck通过(如果适用)
- 命令实际执行(不是假设)
报告必须包括:
- BASE_SHA(来自控制器)
- HEAD_SHA(提交后)
- 运行的命令(确切的,可复制粘贴的)
- 测试输出摘要(通过/失败 + 计数)
- 更改的文件(列表)
- 范围确认(“没有不相关的更改”)
状态跟踪
控制器维护每个任务的记录:
{
task_id: string,
base_sha: string, # 实现者开始前捕获
head_sha: string, # 实现者报告提交后
status: pending|in_progress|spec_review|quality_review|complete,
spec_review_cycles: number,
quality_review_cycles: number
}
每个阶段转换后更新状态。
流程
设置(一次)
- 一次性读取计划文件
- 提取所有任务的全文和上下文
- 捕获当前HEAD作为第一个任务的BASE_SHA
- 创建所有任务的任务列表(状态:待处理)
每个任务循环
- 记录BASE_SHA为此任务(当前HEAD)
- 分派实施者带有完整任务文本+上下文+BASE_SHA
- **如果有问题:**完全回答,重新分派带有答案
- **实施者完成:**实施,测试,提交,报告HEAD_SHA
- **更新状态:**记录HEAD_SHA,设置状态为spec_review
- 分派规范审查者带有任务要求+diff(BASE_SHA…HEAD_SHA)
- **如果规范问题:**实施者修复 → 规范审查者重新审查 → 增加周期计数 → 重复直到✅
- **更新状态:**设置状态为quality_review
- 分派代码质量审查者带有BASE_SHA,HEAD_SHA
- **如果质量问题:**实施者修复 → 质量审查者重新审查 → 增加周期计数 → 重复直到✅
- **更新状态:**设置状态为完成,下一个任务的BASE_SHA = 当前HEAD_SHA
完成
- 为整个实施分派最终代码审查者(第一个BASE_SHA到最后HEAD_SHA)
- 使用finishing-a-development-branch技能
提示模板
templates/implementer.md— 实施子代理templates/spec-reviewer.md— 规范合规性验证(基于差异)templates/code-quality-reviewer.md— 代码质量评估(基于差异)
查看references/example-workflow.md了解带有SHA跟踪的完整演练。
红旗
永不:
- 跳过审查(规范合规性或代码质量)
- 继续未修复的问题
- 在同一工作树中分派并行实施者(冲突)
- 让子代理读取计划文件(提供全文)
- 跳过BASE_SHA/HEAD_SHA跟踪
- 让审查者评估“仓库”而不是具体的diff
- 接受没有所需字段的报告(SHA,命令,测试输出)
并行澄清:“并行会话”(不同的分支/工作树)通过执行计划是可以的。“并行实施者”触摸同一工作树是禁止的。
**如果子代理提问:**在他们继续之前清晰完整地回答。
**如果审查者发现问题:**实施者修复 → 审查者重新审查特定diff → 重复直到批准。
**如果实施者发现需要重构:**停止,向控制器报告,请求计划修正。不要强行推进。
依赖
**需要:**编写计划(创建计划)
**子代理使用:**测试驱动开发,请求代码审查(模板)
**完成与:**完成开发分支
**替代:**执行计划(用于并行会话/分支,不是并行实施者)
**环境说明:**此技能假定可用:git(用于SHA跟踪),任务列表工具(TodoWrite或等效),以及分派子代理的能力。根据你的环境调整工具名称。