## 按研发阶段组合技能组

<!-- slot: 目标 -->
技能接入最常见的问题，不是技能太少，而是没有顺序。

更稳的做法是：按研发阶段切换能力，而不是把所有技能永久塞进同一个 Agent。

<!-- slot: 边界 -->
这里只讲组合顺序，不展开安装细节。

<!-- slot: 提示词 -->
```text
请不要一次性加载所有技能。
按阶段切换：
1. 先把问题问清楚
2. 再把需求写清楚
3. 再形成技术计划
4. 再进入实现和测试
5. 最后做独立复核
```

<!-- slot: 流程 -->
通用开发场景的推荐顺序：

1. 用 `grill-me` 或 `grill-with-docs` 把任务问清楚
2. 用 `speckit.specify` 把需求写成规格
3. 用 `speckit.clarify` 补齐歧义
4. 需要多方案比较时，用 `superpowers.brainstorming`
5. 用 `speckit.plan` 落成技术计划
6. 用 `superpowers.test-driven-development` 进入实现
7. 用 `gstack` 做独立复核和 QA

![阶段化 Skill Stack：从需求澄清、规格整理、技术计划、实现测试到独立复核，每个阶段只使用当前最需要的技能组。](../../media/chapters/fig-17-01-skill-stack-phased-flow.svg){#fig-17-skill-stack-phased-flow width=96%}

<!-- slot: 配置 -->
| 研发阶段 | 主要目标 | 推荐技能组 | 推荐子技能 |
| --- | --- | --- | --- |
| 需求理解 | 先把问题问清楚 | `grill-me` / `grill-with-docs` | 追问缺口、补齐上下文 |
| 原则对齐 | 先定长期规则 | `speckit` | `constitution` |
| 需求固化 | 把想法写成规格 | `speckit` | `specify` |
| 规格补全 | 减少歧义和返工 | `speckit` | `clarify` |
| 方案发散 | 比较备选路线 | `superpowers` | `brainstorming` |
| 技术拆解 | 形成实现计划 | `speckit` | `plan` |
| 代码实现 | 让实现受验证约束 | `superpowers` | `test-driven-development` |
| 独立复核 | 从外部视角查漏补缺 | `gstack` | review / qa / plan-review |

如果团队采用 `1 Planner + 1 Worker + 2 Reviewers`：

| 角色 | 更适合默认接入的能力 |
| --- | --- |
| Planner | `grill-me` / `grill-with-docs`、`speckit`、`brainstorming` |
| Worker | `speckit.plan` 的结果、`test-driven-development` |
| Reviewer A | 使用统一 Reviewer 模板做独立复核；条件允许时可换模型 |
| Reviewer B | 使用统一 Reviewer 模板做独立复核；条件允许时可换模型 |

<!-- slot: 异常 -->
最常见的失败有 3 类：

- 所有技能长期驻留在同一个 Agent，导致上下文混乱
- 还没把需求问清楚，就急着进入实现
- Review 只有同一路径上的自我解释，没有独立复核

<!-- slot: 审批 -->
阶段切换点需要有人拍板：尤其是从规格进入计划、从计划进入实现这两个时刻。

<!-- slot: 外部系统 -->
如果某个技能组依赖额外文档、测试环境或浏览能力，需要先确认当前 Runtime 可用。

<!-- slot: 验收 -->

<!-- slot: 媒体槽位 -->
<!-- media: fig-17-01-skill-stack-phased-flow.svg -->
