第 5 章:自动编码 — subagent 流水线实战
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
你将学到什么
- 什么是 subagent(子代理)以及它怎么工作
- 用
/subagent-driven-development自动执行实施计划 - 三个 subagent 角色的分工:implementer、spec reviewer、code quality reviewer
- 理解 review 循环:发现问题 → 修复 → 再审查
5.1 什么是 subagent
subagent 就是你(通过 Claude Code)派出去干活的"小分身"。每个 subagent 有独立的上下文,只专注于一个任务。
打个比方:
| 角色 | 比喻 | 做什么 |
|---|---|---|
| 你(主对话) | 项目经理 | 分配任务、审查结果、决定下一步 |
| implementer subagent | 开发工程师 | 写代码、写测试、自检 |
| spec reviewer subagent | 产品经理 | 检查代码是否满足需求 |
| code quality reviewer subagent | 技术负责人 | 检查代码质量 |
5.2 /subagent-driven-development 工作流
命令语法
/subagent-driven-development [计划文件路径]
完整流程
flowchart TB
START["读取计划文件
提取所有任务"] --> PICK["选择下一个任务"]
PICK --> IMPL["派 implementer subagent
━━━━━━━━━━━━━
写测试 → 写代码
跑测试 → 自检 → commit"]
IMPL --> SPEC{"派 spec reviewer
检查需求覆盖"}
SPEC -- "不通过" --> FIX1["implementer 修复"]
FIX1 --> SPEC
SPEC -- "通过 ✅" --> CODE{"派 code quality reviewer
检查代码质量"}
CODE -- "不通过" --> FIX2["implementer 修复"]
FIX2 --> CODE
CODE -- "通过 ✅" --> DONE["标记任务完成"]
DONE --> MORE{还有任务?}
MORE -- "是" --> PICK
MORE -- "否" --> FINAL["最终审查 + 合并"]
style IMPL fill:#dbeafe,stroke:#2563eb
style SPEC fill:#fef3c7,stroke:#d97706
style CODE fill:#ede9fe,stroke:#7c3aed
style FINAL fill:#dcfce7,stroke:#16a34a5.3 实战:执行 NoteFlow 计划
启动 subagent 驱动开发
/subagent-driven-development docs/superpowers/plans/noteflow-p0.md
Claude 会读取计划文件,提取所有任务,创建任务列表。
Task 1 执行过程
第 1 步:implementer subagent 出发
Claude 派出一个 implementer subagent,给它完整的 Task 1 描述(从计划文件中提取)。subagent:
- 写测试文件
src/utils/storage.test.js - 运行测试,确认红灯(函数还没实现)
- 写实现代码
src/utils/storage.js - 运行测试,确认绿灯
- 自检一遍代码
- commit
subagent 完成后报告状态:
DONE — Task 1 完成
- 创建了
src/utils/storage.js(3 个函数)- 创建了
src/utils/storage.test.js(3 个测试用例)- 所有测试通过
- 已 commit:
feat: add localStorage utility functions
第 2 步:spec reviewer 审查
Claude 派出 spec reviewer,对照计划检查:
✅ 通过 — Task 1 实现完整
saveNotes/loadNotes/getStorageUsage三个函数均已实现- 测试覆盖所有函数
- 无遗漏功能,无多余功能
第 3 步:code quality reviewer 审查
Claude 派出 code quality reviewer:
✅ 通过 — 代码质量合格
- 函数命名清晰
- 错误处理得当
- 无硬编码值
第 4 步:标记完成,继续下一个任务
如果审查不通过怎么办
假设 implementer 在 Task 2(useNotes Hook)中遗漏了更新时间戳:
Spec reviewer 发现问题:
- ❌ 缺失:更新笔记时
updatedAt未自动更新- ❌ 缺失:删除笔记时缺少确认逻辑(spec 中要求)
implementer 修复:
- 添加了
updatedAt: Date.now()到更新函数- 添加了删除确认返回值
spec reviewer 复查:
- ✅ 通过
修复后会再次审查,直到通过。不会跳过。
5.4 三个 subagent 的审查标准
spec reviewer — 对照需求检查
| 检查项 | 说明 |
|---|---|
| 功能完整 | 计划里要求的功能都实现了吗? |
| 无多余功能 | 没有实现计划外的功能? |
| 接口正确 | 函数的输入输出跟计划一致? |
| 边界情况 | 空数据、异常输入有处理吗? |
code quality reviewer — 检查代码质量
| 检查项 | 说明 |
|---|---|
| 命名 | 变量名、函数名是否清晰表达意图? |
| 复杂度 | 函数是否过长?逻辑是否过于复杂? |
| 重复 | 有没有重复代码可以抽取? |
| 安全 | 有没有注入、XSS 等安全问题? |
5.5 模型选择:什么时候用什么模型
subagent 可以用不同的 AI 模型。任务越简单,用越便宜的模型:
flowchart LR
A["简单任务
1-2 个文件
spec 完整"] -->|"sonnet
(快+便宜)"| C[implementer]
B["中等任务
多文件集成
需要判断"] -->|"sonnet"| C
D["复杂任务
架构设计
需要深入理解"] -->|"opus
(强+贵)"| E[reviewer]| 任务类型 | 推荐模型 | 原因 |
|---|---|---|
| 单文件实现(spec 完整) | sonnet | 代码明确,不需要深度推理 |
| 多文件集成 | sonnet | 需要理解上下文,但逻辑清晰 |
| spec 审查 | opus | 需要精确对比需求,不能漏 |
| code quality 审查 | opus | 需要品味和判断力 |
5.6 整个 NoteFlow P0 的执行时间线
Task 1: storage.js ████████ (3 min) ✅
Task 2: useNotes.js ██████████████ (5 min) ✅ (一次 review 修复)
Task 3: NoteList.jsx ██████████ (4 min) ✅
Task 4: NoteEditor.jsx ████████████████ (6 min) ✅ (两次 review 修复)
Task 5: SearchBar.jsx ████████ (3 min) ✅
Task 6: App.jsx ████████████████ (6 min) ✅ (集成测试)
Task 7: 样式美化 ██████████ (4 min) ✅
总计:~30 分钟,7 个 commit,全部测试通过
对比人工:同样功能,一个开发者可能需要 1-2 天。
动手做
- 确保第 4 章的计划文件已保存
- 运行
/subagent-driven-development docs/superpowers/plans/noteflow-p0.md - 观察每个 subagent 的输出
- 如果审查不通过,观察修复过程
- 全部完成后,
git log查看自动生成的 commit 记录
本章小结
| 概念 | 说明 |
|---|---|
| implementer | 写代码 + 写测试 + 自检 + commit |
| spec reviewer | 对照计划检查功能完整性 |
| code quality reviewer | 检查代码质量和安全性 |
| review 循环 | 发现问题 → 修复 → 再审查,直到通过 |
| 任务独立性 | 每个 subagent 只看当前任务,不受其他任务干扰 |
核心原则: 三角色分工明确,互不干扰。implementer 负责写,两个 reviewer 负责查。发现问题时不会跳过,必须修到通过为止。