名称: 可组合步骤设计 描述: 为AI开发工作流设计计划/构建/审查/修复工作流步骤。在创建可组合工作流原语、定义步骤合约或实现步骤隔离模式时使用。 允许工具: 读取、搜索、全局
可组合步骤设计
设计四个可组合工作流步骤(计划/构建/审查/修复),构成AI开发工作流的骨干。
何时使用
- 创建新的工作流步骤原语
- 定义步骤输入/输出合约
- 实现步骤隔离模式
- 设计步骤组合策略
- 构建AI开发工作流变体
先决条件
- 理解@composable-steps.md内存文件
- 熟悉@adw-framework.md模式
- 了解确定性与非确定性执行
SDK要求
实现说明: 完整的步骤编排需要Claude Agent SDK。此技能提供步骤设计模式和合约。
四个步骤
| 步骤 | 类型 | 输出 | 特点 |
|---|---|---|---|
/计划 |
确定性输出 | 规范文件 | 已知路径,结构化内容 |
/构建 |
非确定性 | 代码变更 | 创造性,适应性 |
/审查 |
确定性输出 | 通过/失败报告 | 结构化,可解析 |
/修复 |
非确定性 | 针对性修复 | 聚焦,纠正性 |
步骤设计流程
步骤1:定义合约
每个步骤需要清晰的合约:
# 计划步骤合约
class PlanContract:
inputs = {
"任务描述": str, # 要实施的内容
"问题上下文": str | None, # 可选上下文
"项目路径": str # 工作位置
}
outputs = {
"规范文件路径": str, # 生成的规范路径
"成功": bool
}
步骤2:确保隔离
每个步骤必须可独立运行:
隔离要求:
- 通过参数或文件路径接受输入(非工作流状态)
- 输出到已知、可预测的位置
- 不依赖其他步骤已运行
- 完全完成或干净失败(无部分状态)
- 可隔离测试
步骤3:定义成功标准
每个步骤需要清晰的成功指标:
计划步骤:
- [ ] 规范文件在预期路径创建
- [ ] 规范包括验收标准
- [ ] 范围有限且可实现
- [ ] 技术方法定义
构建步骤:
- [ ] 所有规范要求处理
- [ ] 代码编译/检查
- [ ] 测试通过(如果存在)
- [ ] 变更提交
审查步骤:
- [ ] 所有代码按规范审查
- [ ] 问题按严重性分类
- [ ] 清晰的通过/失败决定
- [ ] 可操作问题描述
修复步骤:
- [ ] 所有标记问题处理
- [ ] 无新问题引入
- [ ] 变更提交
步骤4:设计错误处理
计划失败模式和恢复:
| 步骤 | 失败模式 | 恢复 |
|---|---|---|
| 计划 | 无法生成规范 | 用更多上下文重试 |
| 构建 | 构建错误 | 返回计划 |
| 审查 | 关键问题 | 进行修复 |
| 修复 | 无法修复 | 升级到人工 |
步骤5:定义组合规则
步骤如何链式连接:
计划_构建:
计划 → 构建
计划_构建_审查:
计划 → 构建 → 审查
计划_构建_审查_修复:
计划 → 构建 → 审查 → [如果失败] → 修复 → [循环直到通过或最大次数]
步骤模板
计划步骤模板
# /计划
您是一个计划代理。创建实施规范。
## 输入
- 任务: $ARGUMENTS
- 项目: $PROJECT_PATH
## 输出
创建规范文件于: specs/{type}-{id}-{description}.md
## 规范结构
1. **摘要**: 一段概述
2. **要求**: 编号列表,列出必须完成的内容
3. **验收标准**: 如何验证完成
4. **技术方法**: 如何实施
5. **要修改的文件**: 受影响文件列表
## 成功标准
- [ ] 规范文件创建
- [ ] 所有部分完整
- [ ] 范围可实现
构建步骤模板
# /构建
您是一个实施代理。执行计划。
## 输入
- 计划: $ARGUMENTS(规范文件路径)
- 项目: $PROJECT_PATH
## 流程
1. 读取规范文件
2. 实施每个要求
3. 如果存在测试,运行测试
4. 提交变更,前缀为"构建: "
## 成功标准
- [ ] 所有要求处理
- [ ] 代码编译
- [ ] 测试通过
- [ ] 变更提交
审查步骤模板
# /审查
您是一个审查代理。验证实施。
## 输入
- 项目: $PROJECT_PATH
- 规范: $SPEC_PATH(可选)
## 输出
结构化审查报告:
状态: 通过 | 失败
问题(如果失败):
- [严重性] 描述
## 严重性级别
- 关键: 合并前必须修复
- 高: 合并前应修复
- 中: 考虑修复
- 低: 可选改进
## 成功标准
- [ ] 所有代码审查
- [ ] 问题分类
- [ ] 清晰的通过/失败状态
修复步骤模板
# /修复
您是一个修复代理。解决审查问题。
## 输入
- 问题: $ARGUMENTS(来自审查输出)
- 项目: $PROJECT_PATH
## 流程
1. 解析问题列表
2. 按优先级顺序修复每个问题
3. 验证修复不引入新问题
4. 提交,前缀为"修复: "
## 成功标准
- [ ] 所有问题处理
- [ ] 无新问题引入
- [ ] 变更提交
循环限制模式
防止无限修复循环:
最大修复尝试次数 = 3
for 尝试 in range(最大修复尝试次数):
审查 = await 运行_审查()
if 审查.状态 == "通过":
break
await 运行_修复(审查.问题)
else:
# 达到最大尝试次数
升级到人工("达到最大修复尝试次数")
输出格式
## 步骤设计规范
### 步骤: [名称]
**类型:** 确定性输出 | 非确定性
**目的:** [此步骤完成什么]
### 合约
**输入:**
| 名称 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- |
| [输入] | [类型] | [是/否] | [描述] |
**输出:**
| 名称 | 类型 | 描述 |
| --- | --- | --- |
| [输出] | [类型] | [描述] |
### 成功标准
- [ ] [标准1]
- [ ] [标准2]
...
### 错误处理
| 失败模式 | 恢复操作 |
| --- | --- |
| [模式] | [操作] |
### 模板
```markdown
[斜杠命令模板]
组合规则
[此步骤如何与其他步骤链式连接]
## 设计检查清单
- [ ] 合约输入定义
- [ ] 合约输出定义
- [ ] 隔离验证(可独立运行)
- [ ] 成功标准指定
- [ ] 错误处理计划
- [ ] 组合规则记录
- [ ] 模板创建
- [ ] 测试设计
## 反模式
| 反模式 | 问题 | 解决方案 |
| --- | --- | --- |
| 耦合步骤 | 无法独立运行 | 通过文件传递数据 |
| 无界循环 | 无限修复尝试 | 最大修复尝试次数 |
| 未定义合约 | 不可预测输入/输出 | 显式合约 |
| 缺失成功标准 | 无法验证完成 | 定义标准 |
| 无错误处理 | 静默失败 | 计划恢复操作 |
## 交叉引用
- @composable-steps.md - 步骤内存文件
- @composable-primitives.md - 通用原语
- @adw-framework.md - AI开发工作流概述
- @template-engineering.md - 模板模式
## 版本历史
- **v1.0.0** (2026-01-01): 初始发布(第14课)
---
## 最后更新
**日期:** 2026-01-01
**模型:** claude-opus-4-5-20251101