Subagent-Driven Development

摘要

Subagent-Driven Development(子代理驱动开发)是一种软件开发执行方法,通过为每个独立任务分派全新子代理执行,并在每个任务完成后依次进行规范合规性审查和代码质量审查两阶段审查,实现高质量快速迭代,适用于当前会话中存在独立任务的已规划实现场景。

核心原则

每个任务使用全新子代理 + 两阶段审查(先规范合规性、后代码质量) = 高质量、快速迭代

使用场景

根据判断流程,满足以下全部条件即可使用该方法:

  1. 已有可执行的实现计划
  2. 任务之间大多相互独立
  3. 需要在当前会话中执行

与并行会话的executing-plans方法相比,该方法的特点为:同会话无上下文切换、每个任务使用全新子代理无上下文污染、每个任务自动完成两阶段审查、无需人工介入任务间流程迭代更快。

完整流程

  1. 前置准备:读取实现计划,提取所有任务的完整文本、记录上下文,创建TodoWrite任务列表
  2. 单任务循环(还有未完成任务时执行):
    1. 分派实现子代理,使用实现提示模板
    2. 若实现子代理提出问题,回答问题并提供上下文后返回步骤1,若无问题则进入下一步
    3. 实现子agent完成实现、测试、提交、自审后,分派规范合规审查子代理
    4. 若代码不符合规范,实现子代理修复问题后重新进行规范审查,符合规范则进入下一步
    5. 分派代码质量审查子代理
    6. 若代码质量不达标,实现子代理修复问题后重新进行代码质量审查,代码质量达标则标记当前任务完成,回到单任务循环判断
  3. 所有任务完成后:分派最终整体代码审查子代理,随后使用finishing-a-development-branch超级能力完成开发分支。

提示模板

该方法依赖三个内置提示模板:

  • ./implementer-prompt.md:用于分派实现子代理
  • ./spec-reviewer-prompt.md:用于分派规范合规审查子代理
  • ./code-quality-reviewer-prompt.md:用于分派代码质量审查子代理

优势

对比手动执行

  • 子代理自然遵循测试驱动开发流程
  • 每个任务拥有全新上下文,无混淆
  • 支持并行,子代理之间不会互相干扰
  • 子代理可以在工作前和工作中提出问题

对比并行会话执行计划

  • 同会话执行,无需流程交接
  • 持续推进进度,无需等待
  • 自动设置审查检查点

效率提升

  • 无需子代理重复读取文件,由控制器提供完整文本,减少开销
  • 控制器精准控制所需上下文,信息传递高效
  • 问题在工作开始前就被提出,避免事后返工

质量保障

  • 自审提前发现问题
  • 两阶段审查分别保障符合需求和代码质量
  • 审查-修复循环确保问题真正解决
  • 规范合规审查防止过度开发或开发不足
  • 代码质量审查保障实现可维护性

成本

  • 每个任务需要调用更多子代理(1个实现+2个审查)
  • 控制器需要提前完成更多提取任务的准备工作
  • 审查循环会增加迭代次数
  • 但可以早期发现问题,比后期调试成本更低

注意事项(红线规则)

禁止以下操作:

  • 跳过任何一项审查(规范合规或代码质量)
  • 带着未修复的问题推进流程
  • 并行分派多个实现子代理(会产生冲突)
  • 让子代理自行读取计划文件(应提前提取好完整文本提供)
  • 省略场景上下文(子代理需要理解任务的位置)
  • 忽略子代理的问题(需回答后再推进)
  • 规范合规不达标时接受“差不多就行”
  • 跳过审查重新循环(发现问题必须修复后重审)
  • 用实现者自审替代正式审查(两者都需要)
  • 在规范合规审核通过前开始代码质量审查(顺序不能错)
  • 任何审查有未解决问题时就进入下一个任务

针对特殊情况的处理规则:

  • 子代理提问:清晰完整回答,按需补充上下文
  • 审查发现问题:由原实现子代理修复后重新审查,直到通过,不能跳过重审
  • 子代理任务失败:分派修复子代理并提供明确说明,不要手动修复(避免上下文污染)

依赖集成

  • 所需前置工作流技能:superpowers:writing-plans(生成待执行的计划)、superpowers:requesting-code-review(审查子代理的代码审查模板)、superpowers:finishing-a-development-branch(所有任务完成后收尾开发)
  • 子代理推荐使用的能力:superpowers:test-driven-development(每个任务遵循测试驱动开发)
  • 替代方案:superpowers:executing-plans,适用于需要在并行会话执行的场景