名称: 子代理驱动开发 描述: 在当前会话中执行具有独立任务的实现计划时使用
子代理驱动开发
通过为每个任务分发新的子代理来执行计划,每个任务后进行两阶段审查:首先规格符合性审查,然后代码质量审查。
核心原则: 每个任务使用新子代理 + 两阶段审查(先规格后质量)= 高质量、快速迭代
何时使用
digraph when_to_use {
"有实现计划吗?" [shape=diamond];
"任务大多独立吗?" [shape=diamond];
"保持在本会话中吗?" [shape=diamond];
"子代理驱动开发" [shape=box];
"执行计划" [shape=box];
"手动执行或先头脑风暴" [shape=box];
"有实现计划吗?" -> "任务大多独立吗?" [label="是"];
"有实现计划吗?" -> "手动执行或先头脑风暴" [label="否"];
"任务大多独立吗?" -> "保持在本会话中吗?" [label="是"];
"任务大多独立吗?" -> "手动执行或先头脑风暴" [label="否 - 紧密耦合"];
"保持在本会话中吗?" -> "子代理驱动开发" [label="是"];
"保持在本会话中吗?" -> "执行计划" [label="否 - 并行会话"];
}
对比执行计划(并行会话):
- 相同会话(无需上下文切换)
- 每个任务使用新子代理(无上下文污染)
- 每个任务后两阶段审查:先规格符合性,后代码质量
- 更快迭代(任务间无需人工介入)
流程
digraph process {
rankdir=TB;
subgraph cluster_per_task {
label="每任务";
"分发实现者子代理 (./implementer-prompt.md)" [shape=box];
"实现者子代理提问吗?" [shape=diamond];
"回答问题,提供上下文" [shape=box];
"实现者子代理实现、测试、提交、自审" [shape=box];
"分发规格审查者子代理 (./spec-reviewer-prompt.md)" [shape=box];
"规格审查者子代理确认代码匹配规格吗?" [shape=diamond];
"实现者子代理修复规格差距" [shape=box];
"分发代码质量审查者子代理 (./code-quality-reviewer-prompt.md)" [shape=box];
"代码质量审查者子代理批准吗?" [shape=diamond];
"实现者子代理修复质量问题" [shape=box];
"在TodoWrite中标记任务完成" [shape=box];
}
"读取计划,提取所有任务全文,记录上下文,创建TodoWrite" [shape=box];
"还有更多任务吗?" [shape=diamond];
"分发最终代码审查者子代理用于整个实现" [shape=box];
"使用超能力:完成开发分支" [shape=box style=filled fillcolor=lightgreen];
"读取计划,提取所有任务全文,记录上下文,创建TodoWrite" -> "分发实现者子代理 (./implementer-prompt.md)";
"分发实现者子代理 (./implementer-prompt.md)" -> "实现者子代理提问吗?";
"实现者子代理提问吗?" -> "回答问题,提供上下文" [label="是"];
"回答问题,提供上下文" -> "分发实现者子代理 (./implementer-prompt.md)";
"实现者子代理提问吗?" -> "实现者子代理实现、测试、提交、自审" [label="否"];
"实现者子代理实现、测试、提交、自审" -> "分发规格审查者子代理 (./spec-reviewer-prompt.md)";
"分发规格审查者子代理 (./spec-reviewer-prompt.md)" -> "规格审查者子代理确认代码匹配规格吗?";
"规格审查者子代理确认代码匹配规格吗?" -> "实现者子代理修复规格差距" [label="否"];
"实现者子代理修复规格差距" -> "分发规格审查者子代理 (./spec-reviewer-prompt.md)" [label="重新审查"];
"规格审查者子代理确认代码匹配规格吗?" -> "分发代码质量审查者子代理 (./code-quality-reviewer-prompt.md)" [label="是"];
"分发代码质量审查者子代理 (./code-quality-reviewer-prompt.md)" -> "代码质量审查者子代理批准吗?";
"代码质量审查者子代理批准吗?" -> "实现者子代理修复质量问题" [label="否"];
"实现者子代理修复质量问题" -> "分发代码质量审查者子代理 (./code-quality-reviewer-prompt.md)" [label="重新审查"];
"代码质量审查者子代理批准吗?" -> "在TodoWrite中标记任务完成" [label="是"];
"在TodoWrite中标记任务完成" -> "还有更多任务吗?";
"还有更多任务吗?" -> "分发实现者子代理 (./implementer-prompt.md)" [label="是"];
"还有更多任务吗?" -> "分发最终代码审查者子代理用于整个实现" [label="否"];
"分发最终代码审查者子代理用于整个实现" -> "使用超能力:完成开发分支";
}
提示模板
./implementer-prompt.md- 分发实现者子代理./spec-reviewer-prompt.md- 分发规格符合性审查者子代理./code-quality-reviewer-prompt.md- 分发代码质量审查者子代理
示例工作流
您: 我正在使用子代理驱动开发来执行这个计划。
[读取计划文件一次: docs/plans/feature-plan.md]
[提取所有5个任务的全文和上下文]
[创建包含所有任务的TodoWrite]
任务1: 钩子安装脚本
[获取任务1的文本和上下文(已提取)]
[分发实现子代理,带有完整任务文本和上下文]
实现者: "开始前 - 钩子应该安装在用户级还是系统级?"
您: "用户级(~/.config/superpowers/hooks/)"
实现者: "明白了。现在实现..."
[之后] 实现者:
- 实现了安装钩子命令
- 添加了测试,5/5通过
- 自审:发现我漏了--force标志,已添加
- 已提交
[分发规格符合性审查者]
规格审查者: ✅ 规格符合 - 所有要求满足,无额外内容
[获取git SHA,分发代码质量审查者]
代码审查者: 优点:测试覆盖好,代码干净。问题:无。批准。
[标记任务1完成]
任务2: 恢复模式
[获取任务2的文本和上下文(已提取)]
[分发实现子代理,带有完整任务文本和上下文]
实现者: [无问题,继续]
实现者:
- 添加了验证/修复模式
- 8/8测试通过
- 自审:一切良好
- 已提交
[分发规格符合性审查者]
规格审查者: ❌ 问题:
- 缺失:进度报告(规格说"每100项报告一次")
- 额外:添加了--json标志(未请求)
[实现者修复问题]
实现者: 移除了--json标志,添加了进度报告
[规格审查者再次审查]
规格审查者: ✅ 现在规格符合
[分发代码质量审查者]
代码审查者: 优点:扎实。问题(重要):魔数(100)
[实现者修复]
实现者: 提取了PROGRESS_INTERVAL常量
[代码审查者再次审查]
代码审查者: ✅ 批准
[标记任务2完成]
...
[所有任务后]
[分发最终代码审查者]
最终审查者: 所有要求满足,准备合并
完成!
优势
对比手动执行:
- 子代理自然遵循TDD
- 每任务新上下文(无混淆)
- 并行安全(子代理互不干扰)
- 子代理可提问(工作前和工作中)
对比执行计划:
- 相同会话(无交接)
- 连续进展(无需等待)
- 审查检查点自动
效率提升:
- 无文件读取开销(控制器提供全文)
- 控制器精确定义所需上下文
- 子代理提前获取完整信息
- 问题在工作开始前暴露(而非之后)
质量关口:
- 自审在交接前发现问题
- 两阶段审查:规格符合性,然后代码质量
- 审查循环确保修复实际工作
- 规格符合性防止过度/不足构建
- 代码质量确保实现良好构建
成本:
- 更多子代理调用(每任务实现者 + 2审查者)
- 控制器做更多准备工作(提前提取所有任务)
- 审查循环增加迭代
- 但早期发现问题(比后期调试更便宜)
危险信号
绝不:
- 跳过审查(规格符合性或代码质量)
- 继续未修复的问题
- 并行分发多个实现子代理(冲突)
- 让子代理读取计划文件(应提供全文)
- 跳过场景设置上下文(子代理需要理解任务位置)
- 忽略子代理问题(在让它们继续前回答)
- 在规格符合性上接受"差不多"(规格审查者发现问题 = 未完成)
- 跳过审查循环(审查者发现问题 = 实现者修复 = 再次审查)
- 让实现者自审替代实际审查(两者都需要)
- 在规格符合性通过前开始代码质量审查(顺序错误)
- 在任一审查有未解决问题时移到下一个任务
如果子代理提问:
- 清晰完整地回答
- 必要时提供额外上下文
- 不要催促它们进入实现
如果审查者发现问题:
- 实现者(同一子代理)修复它们
- 审查者再次审查
- 重复直到批准
- 不要跳过重新审查
如果子代理任务失败:
- 分发修复子代理,带有具体指令
- 不要尝试手动修复(上下文污染)
集成
所需工作流技能:
- 超能力:编写计划 - 创建此技能执行的计划
- 超能力:请求代码审查 - 审查者子代理的代码审查模板
- 超能力:完成开发分支 - 所有任务后完成开发
子代理应使用:
- 超能力:测试驱动开发 - 子代理为每任务遵循TDD
替代工作流:
- 超能力:执行计划 - 用于并行会话而非相同会话执行