# Subagent Driven Development

> 在当前会话中执行具有独立任务的实施计划时使用

- Skill: `zouyangxiaohao111/subagent-driven-development` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add zouyangxiaohao111/subagent-driven-development`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zouyangxiaohao111/subagent-driven-development/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zouyangxiaohao111 (https://skillmd.com/u/zouyangxiaohao111)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zouyangxiaohao111/subagent-driven-development

---


# 子代理驱动开发
执行前询问用户,是否支持cli-agent启动claude code 或者 opencode执行该计划。如果用户说使用cc或者claude code oc ,直接使用cli-agent工具启动子代理,不需要使用Agent启动子代理
通过为每个任务派发新的子代理来执行计划，每个任务后进行两阶段审查：先规范合规性审查，再代码质量审查（质量检查使用zjkycode/requesting-code-review）。

**为什么使用子代理：** 你将任务委托给具有隔离上下文的专门代理。通过精确构建他们的指令和上下文，你确保他们保持专注并成功完成任务。他们绝不应该继承你会话的上下文或历史——你构建他们确切需要的内容。这也为你自己的协调工作保留了上下文。

**核心原则：** 每个任务使用新子代理 + 两阶段审查（先规范再质量）= 高质量，快速迭代

## 何时使用

```dot
digraph when_to_use {
    "有实施计划？" [shape=diamond];
    "任务大多独立？" [shape=diamond];
    "留在当前会话？" [shape=diamond];
    "subagent-driven-development" [shape=box];
    "executing-plans" [shape=box];
    "手动执行或先头脑风暴" [shape=box];

    "有实施计划？" -> "任务大多独立？" [label="是"];
    "有实施计划？" -> "手动执行或先头脑风暴" [label="否"];
    "任务大多独立？" -> "留在当前会话？" [label="是"];
    "任务大多独立？" -> "手动执行或先头脑风暴" [label="否 - 紧密耦合"];
    "留在当前会话？" -> "subagent-driven-development" [label="是"];
    "留在当前会话？" -> "executing-plans" [label="否 - 并行会话"];
}
```

**对比 执行计划（并行会话）：**
- 同一会话（无上下文切换）
- 每个任务使用新子代理（无上下文污染）
- 每个任务后两阶段审查：先规范合规性，再代码质量
- 更快的迭代（任务之间无需人工介入）

## 流程

```dot
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];
    "使用 zjkycode:finishing-a-development-branch" [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="否"];
    "派发最终代码审查者子代理审查整个实现" -> "使用 zjkycode:finishing-a-development-branch";
}
```

## 模型选择

使用能处理每个角色的最低能力模型，以节省成本并提高速度。

**机械实施任务**（隔离函数、清晰规范、1-2 个文件）：使用快速、便宜的模型。当计划规范良好时，大多数实施任务都是机械性的。

**集成和判断任务**（多文件协调、模式匹配、调试）：使用标准模型。

**架构、设计和审查任务**：使用最强大的可用模型。

**任务复杂度信号：**
- 涉及 1-2 个文件且有完整规范 → 便宜模型
- 涉及多个文件且有集成关注点 → 标准模型
- 需要设计判断或广泛的代码库理解 → 最强大模型

## 处理实施者状态

实施者子代理报告四种状态之一。适当处理每种情况：

**DONE：** 进入规范合规性审查。

**DONE_WITH_CONCERNS：** 实施者完成了工作但标记了疑虑。在继续之前阅读这些疑虑。如果疑虑是关于正确性或范围的，在审查前解决它们。如果它们是观察（例如，"这个文件变大了"），记录它们并进入审查。

**NEEDS_CONTEXT：** 实施者需要未提供的信息。提供缺失的上下文并重新派发。

**BLOCKED：** 实施者无法完成任务。评估阻塞原因：
1. 如果是上下文问题，提供更多上下文并用相同模型重新派发
2. 如果任务需要更多推理，用更强大的模型重新派发
3. 如果任务太大，将其拆分成更小的部分
4. 如果计划本身有问题，升级给人类

**绝不要**忽略升级或强制相同模型在无变更的情况下重试。如果实施者说卡住了，就需要改变什么。

## 提示模板

- `./implementer-prompt.md` - 派发实施者子代理
- `./spec-reviewer-prompt.md` - 派发规范合规性审查者子代理
- `./code-quality-reviewer-prompt.md` - 派发代码质量审查者子代理

## 示例工作流

```
助理：我正在使用子代理驱动开发来执行这个计划。

助理：[读取计划文件一次：docs/zjkycode/plans/feature-plan.md]
助理：[提取所有 5 个任务的完整文本和上下文]
助理：[创建包含所有任务的 TodoWrite]

任务 1：钩子安装脚本

[获取任务 1 文本和上下文（已提取）]
[派发实施子代理，提供完整任务文本 + 上下文]

实施者："开始之前 - 钩子应该安装在用户级别还是系统级别？"

你："用户级别"

实施者："明白了。正在实施..."
[稍后] 实施者：
  - 实施了 install-hook 命令
  - 添加了测试，5/5 通过
  - 自我审查：发现我漏掉了 --force 标志，已添加
  - 已提交

[派发规范合规性审查者]
规范审查者：✅ 规范合规 - 满足所有需求，无额外内容

[获取 git SHA，派发代码质量审查者]
代码审查者：优点：测试覆盖良好，干净。问题：无。已批准。

[标记任务 1 完成]

任务 2：恢复模式

[获取任务 2 文本和上下文（已提取）]
[派发实施子代理，提供完整任务文本 + 上下文]

实施者：[无问题，继续]
实施者：
  - 添加了 verify/repair 模式
  - 8/8 测试通过
  - 自我审查：一切良好
  - 已提交

[派发规范合规性审查者]
规范审查者：❌ 问题：
  - 缺失：进度报告（规范说"每 100 项报告一次"）
  - 额外：添加了 --json 标志（未请求）

[实施者修复问题]
实施者：移除了 --json 标志，添加了进度报告

[规范审查者再次审查]
规范审查者：✅ 现在规范合规

[派发代码质量审查者]
代码审查者：优点：扎实。问题（重要）：魔法数字（100）

[实施者修复]
实施者：提取了 PROGRESS_INTERVAL 常量

[代码审查者再次审查]
代码审查者：✅ 已批准

[标记任务 2 完成]

...

[所有任务完成后]
[派发最终代码审查者]
最终审查者：满足所有需求，准备合并

完成！
```

## 优势

**对比 手动执行：**
- 子代理自然遵循 TDD
- 每个任务全新上下文（无混淆）
- 并行安全（子代理不互相干扰）
- 子代理可以提问（工作前和工作期间）

**对比 执行计划：**
- 同一会话（无交接）
- 持续进展（无需等待）
- 自动审查检查点

**效率提升：**
- 无文件读取开销（控制者提供完整文本）
- 控制者精心策划确切需要的上下文
- 子代理预先获得完整信息
- 问题在工作开始前浮现（而非之后）

**质量关卡：**
- 自我审查在交接前捕获问题
- 两阶段审查：规范合规性，然后代码质量
- 审查循环确保修复真正有效
- 规范合规性防止过度/不足构建
- 代码质量确保实现构建良好

**成本：**
- 更多子代理调用（每个任务实施者 + 2 个审查者）
- 控制者做更多准备工作（预先提取所有任务）
- 审查循环增加迭代
- 但早期捕获问题（比后期调试更便宜）

## 危险信号

**绝不：**
- 在没有明确用户同意的情况下在 main/master 分支上开始实施
- 跳过审查（规范合规性或代码质量）
- 带着未修复的问题继续
- 并行派发多个实施子代理（冲突）
- 让子代理读取计划文件（改为提供完整文本）
- 跳过场景设定上下文（子代理需要理解任务适合哪里）
- 忽略子代理问题（让他们继续前回答）
- 在规范合规性上接受"差不多"（审查者发现问题 = 未完成）
- 跳过审查循环（审查者发现问题 = 实施者修复 = 再次审查）
- 让实施者自我审查替代实际审查（两者都需要）
- **在规范合规性 ✅ 之前开始代码质量审查**（顺序错误）
- 任一审查有未解决问题时进入下一个任务

**如果子代理提问：**
- 清晰完整地回答
- 如需要提供额外上下文
- 不要催促他们进入实施

**如果审查者发现问题：**
- 实施者（同一子代理）修复它们
- 审查者再次审查
- 重复直到批准
- 不要跳过重新审查

**如果子代理任务失败：**
- 派发修复子代理并提供具体指令
- 不要尝试手动修复（上下文污染）

## 集成

**必需的工作流技能：**
- **zjkycode/using-git-worktrees** - 必需：开始前设置隔离工作区
- **zjkycode/writing-plans** - 创建此技能执行的计划
- **zjkycode/requesting-code-review** - 审查者子代理的代码审查模板
- **zjkycode/finishing-a-development-branch** - 所有任务完成后完成开发

**子代理应使用：**
- **zjkycode/test-driven-development** - 子代理为每个任务遵循 TDD
- **zjkycode/requesting-code-review** - 审查者子代理的代码审查模板

**替代工作流：**
- **zjkycode/executing-plans** - 用于并行会话而非同会话执行
