sdd-workflow 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +226 -0
- package/bin/sdd-init.js +59 -0
- package/package.json +30 -0
- package/src/installer.js +558 -0
- package/templates/skills/sdd-constitution/SKILL.md +128 -0
- package/templates/skills/sdd-implement/SKILL.md +153 -0
- package/templates/skills/sdd-init/SKILL.md +302 -0
- package/templates/skills/sdd-plan/SKILL.md +226 -0
- package/templates/skills/sdd-review/SKILL.md +498 -0
- package/templates/skills/sdd-run/SKILL.md +439 -0
- package/templates/skills/sdd-specify/SKILL.md +280 -0
- package/templates/skills/sdd-split/SKILL.md +432 -0
- package/templates/skills/sdd-tasks/SKILL.md +199 -0
- package/templates/skills/sdd-testcases/SKILL.md +235 -0
- package/templates/specify/README.md +179 -0
- package/templates/specify/scripts/create-feature.sh +144 -0
- package/templates/specify/templates/constitution-template.md +74 -0
- package/templates/specify/templates/plan-modular-template/README.md +98 -0
- package/templates/specify/templates/plan-modular-template/architecture.md +127 -0
- package/templates/specify/templates/plan-modular-template/backend-api.md +191 -0
- package/templates/specify/templates/plan-modular-template/backend-impl.md +134 -0
- package/templates/specify/templates/plan-modular-template/changelog.md +34 -0
- package/templates/specify/templates/plan-modular-template/data-model.md +130 -0
- package/templates/specify/templates/plan-modular-template/frontend-api.md +126 -0
- package/templates/specify/templates/plan-modular-template/frontend-impl.md +108 -0
- package/templates/specify/templates/plan-modular-template/performance.md +112 -0
- package/templates/specify/templates/plan-modular-template/security.md +85 -0
- package/templates/specify/templates/plan-template.md +190 -0
- package/templates/specify/templates/requirements/metadata-template.json +12 -0
- package/templates/specify/templates/requirements/original-template.md +26 -0
- package/templates/specify/templates/spec-modular-template/README.md +69 -0
- package/templates/specify/templates/spec-modular-template/acceptance-criteria.md +49 -0
- package/templates/specify/templates/spec-modular-template/changelog.md +27 -0
- package/templates/specify/templates/spec-modular-template/constraints.md +125 -0
- package/templates/specify/templates/spec-modular-template/overview.md +60 -0
- package/templates/specify/templates/spec-modular-template/user-stories.md +59 -0
- package/templates/specify/templates/spec-template.md +214 -0
- package/templates/specify/templates/tasks-modular-template/README.md +79 -0
- package/templates/specify/templates/tasks-template.md +232 -0
- package/templates/specify/templates/testcases-template.md +434 -0
- package/templates/teams/sdd-development-team.md +318 -0
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdd-run
|
|
3
|
+
description: SDD v3 全自动执行流水线 - 先需求澄清,再自主运行规划器→生成器→评估器循环,人类只验证最终结果
|
|
4
|
+
invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SDD Run - 全自动执行流水线
|
|
8
|
+
|
|
9
|
+
> **受 Anthropic Harness 设计启发**:将规划(Planner)、生成(Generator)、评估(Evaluator)三角色合一,
|
|
10
|
+
> 形成自主闭环。人类只提供初始需求,只验证最终结果。
|
|
11
|
+
|
|
12
|
+
一次性自动执行完整的 SDD 流程:`specify → testcases → plan → tasks → implement → review`,
|
|
13
|
+
无需人类在中间步骤确认。评审不通过自动迭代修复,最多 3 轮。
|
|
14
|
+
|
|
15
|
+
## 核心原则
|
|
16
|
+
|
|
17
|
+
1. **自主执行**:中间步骤不需要人类确认,自动推进
|
|
18
|
+
2. **文件驱动**:各阶段通过文件产物传递上下文,不依赖人类传话
|
|
19
|
+
3. **自动迭代**:评审不通过时自动修复并重新评审
|
|
20
|
+
4. **人类主权**:L3 级问题(方向性错误)暂停等待人类决策
|
|
21
|
+
5. **幂等恢复**:产出文件实时保存,中断后可从指定阶段继续
|
|
22
|
+
|
|
23
|
+
## 前置条件
|
|
24
|
+
|
|
25
|
+
- 项目宪法: `.specify/memory/constitution.md`
|
|
26
|
+
- 项目配置: `CLAUDE.md`
|
|
27
|
+
- 如果是已有功能迭代:已有 `.specify/specs/{feature_id}/` 目录
|
|
28
|
+
|
|
29
|
+
## 输入格式
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
/sdd-run {feature_id} {功能描述或知识库链接}
|
|
33
|
+
/sdd-run {feature_id} --from {stage} # 从指定阶段恢复执行
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**feature_id 命名规范**:
|
|
37
|
+
|
|
38
|
+
- **格式**: 三位数字编号,从 `001` 开始自增(如 `001`, `002`, `003`...)
|
|
39
|
+
- **目录命名**: `{feature_id}-{feature-name}/`(如 `001-user-auth/`, `002-data-export/`)
|
|
40
|
+
- **自动确定编号**: 如果用户未指定 feature_id,扫描 `.specify/specs/` 下已有目录,取最大编号 + 1
|
|
41
|
+
- **feature-name**: 英文小写,中划线分隔,简短概括功能
|
|
42
|
+
|
|
43
|
+
**示例**:
|
|
44
|
+
```
|
|
45
|
+
/sdd-run 004 新增版本对比功能
|
|
46
|
+
/sdd-run 004 https://知识库URL/需求文档
|
|
47
|
+
/sdd-run 004 --from implement # 从实现阶段继续
|
|
48
|
+
/sdd-run 新增导出功能 # 自动确定下一个编号
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 执行流程
|
|
54
|
+
|
|
55
|
+
### 总体架构
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
人类输入: "/sdd-run 004 新增XX功能"
|
|
59
|
+
│
|
|
60
|
+
▼
|
|
61
|
+
┌──────────────────────────────────────────────┐
|
|
62
|
+
│ Phase 0: 需求澄清(唯一的人类交互环节) │
|
|
63
|
+
│ 分析需求 → 一次性提出所有澄清问题 │
|
|
64
|
+
│ → 人类回答 → 确认无误 → 进入全自动 │
|
|
65
|
+
│ │ │
|
|
66
|
+
│ ▼ ⛔ 此后全自动,不再打扰人类 │
|
|
67
|
+
│ Phase A: 规划器(Planner) │
|
|
68
|
+
│ A1. specify → A2. testcases → │
|
|
69
|
+
│ A3. plan → A4. tasks │
|
|
70
|
+
│ │ │
|
|
71
|
+
│ ▼ │
|
|
72
|
+
│ Phase B: 生成器(Generator) │
|
|
73
|
+
│ B1. implement(全自动) │
|
|
74
|
+
│ │ │
|
|
75
|
+
│ ▼ │
|
|
76
|
+
│ Phase C: 评估器(MACE 多Agent竞争评审) │
|
|
77
|
+
│ C1. 并行派发 3 个评审 Agent │
|
|
78
|
+
│ ├─ A:严苛审查员 → 功能+代码质量 │
|
|
79
|
+
│ ├─ B:需求守护者 → 需求+边界处理 │
|
|
80
|
+
│ └─ C:集成检查员 → 集成+架构合规 │
|
|
81
|
+
│ C2. 仲裁合并 → 不通过? │
|
|
82
|
+
│ │ │ │
|
|
83
|
+
│ │ ▼ │
|
|
84
|
+
│ │ 自动修复 → 重新派发3个Agent │
|
|
85
|
+
│ │ (最多3轮) │
|
|
86
|
+
│ ▼ │
|
|
87
|
+
│ 输出最终报告 ──→ 人类验证 │
|
|
88
|
+
└──────────────────────────────────────────────┘
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Phase 0: 需求澄清(Requirement Clarification)
|
|
94
|
+
|
|
95
|
+
> **全流程中唯一的人类交互环节**。澄清完成后进入全自动模式,不再打扰人类。
|
|
96
|
+
|
|
97
|
+
**目标**:在动手之前,一次性把所有不确定的点问清楚,避免后期返工。
|
|
98
|
+
|
|
99
|
+
**执行流程**:
|
|
100
|
+
|
|
101
|
+
#### 0.1 需求预分析
|
|
102
|
+
|
|
103
|
+
1. **解析输入**:提取功能名称、描述、知识库链接(如有)
|
|
104
|
+
2. **获取知识库文档**(如有链接):如果项目配置了知识库 MCP(如 Confluence),使用对应工具获取原始需求
|
|
105
|
+
3. **读取项目上下文**:
|
|
106
|
+
- `.specify/memory/constitution.md`(技术栈约束)
|
|
107
|
+
- `CLAUDE.md`(项目配置)
|
|
108
|
+
- 同模块已有的 spec 文档(如有)
|
|
109
|
+
4. **扫描相关代码**(如涉及现有模块):了解当前实现状态
|
|
110
|
+
|
|
111
|
+
#### 0.2 生成澄清问题
|
|
112
|
+
|
|
113
|
+
基于预分析结果,列出需要确认的问题。**只问真正不确定的**,不问文档中已明确的内容。
|
|
114
|
+
|
|
115
|
+
**典型问题分类**:
|
|
116
|
+
|
|
117
|
+
| 分类 | 示例问题 |
|
|
118
|
+
|------|----------|
|
|
119
|
+
| 业务范围 | 这个功能是新增还是对现有功能的修改?影响哪些页面/接口? |
|
|
120
|
+
| 规则确认 | 对比的基准是哪个?差异判定规则是什么? |
|
|
121
|
+
| 数据来源 | 数据从哪个表/接口获取?有现成的 API 可复用吗? |
|
|
122
|
+
| 边界条件 | 最多支持多少条数据?并发场景需要考虑吗? |
|
|
123
|
+
| 排除项 | 这次不需要做 XX 功能对吧?(确认负向范围) |
|
|
124
|
+
| 非功能需求 | 性能要求?权限控制? |
|
|
125
|
+
|
|
126
|
+
**输出格式**:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
━━━ 需求澄清 ━━━
|
|
130
|
+
|
|
131
|
+
我已分析你的需求「{功能描述}」,以下问题需要确认:
|
|
132
|
+
|
|
133
|
+
1. {问题} — ({为什么需要确认})
|
|
134
|
+
2. {问题} — ({为什么需要确认})
|
|
135
|
+
3. ...
|
|
136
|
+
|
|
137
|
+
请逐一回答,或补充你认为重要的信息。确认完毕后我将全自动执行,不再打扰。
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### 0.3 澄清规则
|
|
141
|
+
|
|
142
|
+
- **一次性提问**:把所有问题集中在一轮提出,不要多轮追问
|
|
143
|
+
- **给出默认选项**:每个问题尽量提供 2-3 个候选答案,人类可以直接选择
|
|
144
|
+
- **标注优先级**:关键问题标注 [必答],次要问题标注 [可选]
|
|
145
|
+
- **已有答案不问**:文档或现有代码中已明确的信息不重复确认
|
|
146
|
+
- **最少问题原则**:如果预分析后没有不确定项,直接说明"无需澄清"并进入全自动
|
|
147
|
+
|
|
148
|
+
#### 0.4 澄清完成
|
|
149
|
+
|
|
150
|
+
人类回答后:
|
|
151
|
+
1. 整理澄清结论,保存到 `.specify/specs/{feature_id}/requirements/clarification.md`
|
|
152
|
+
2. 简要复述理解,确认无误解
|
|
153
|
+
3. **进入全自动模式**:此后直到最终报告输出,不再打扰人类
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
✅ 需求澄清完成,我的理解是:
|
|
157
|
+
- {要点1}
|
|
158
|
+
- {要点2}
|
|
159
|
+
- ...
|
|
160
|
+
|
|
161
|
+
🚀 开始全自动执行,预计产出 spec → testcases → plan → tasks → implement → review
|
|
162
|
+
过程中如有 L3 级方向性问题会暂停,否则一路到底。
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### Phase A: 规划器(Planner)
|
|
168
|
+
|
|
169
|
+
目标:从需求到完整的开发计划,全自动生成。
|
|
170
|
+
|
|
171
|
+
#### A1. 生成功能规格(specify)
|
|
172
|
+
|
|
173
|
+
**读取**:
|
|
174
|
+
- 用户提供的功能描述或知识库链接
|
|
175
|
+
- `.specify/memory/constitution.md`
|
|
176
|
+
- `CLAUDE.md`
|
|
177
|
+
- 如果有知识库链接:使用已配置的知识库 MCP 工具获取原文
|
|
178
|
+
|
|
179
|
+
**执行**:
|
|
180
|
+
1. 解析用户输入,提取功能名称、描述、知识库链接
|
|
181
|
+
2. 如有知识库链接,获取原始需求并保存到 `requirements/original.md`
|
|
182
|
+
3. 读取相关现有 spec(同模块的其他 spec)
|
|
183
|
+
4. 生成 spec.md,包含:
|
|
184
|
+
- 用户故事 + 验收标准(Gherkin 格式)
|
|
185
|
+
- 功能需求列表
|
|
186
|
+
- 界面需求(ASCII 示意)
|
|
187
|
+
- 边界条件
|
|
188
|
+
- **功能分组与完成定义**(SDD v2 新增)
|
|
189
|
+
5. 保存到 `.specify/specs/{feature_id}/spec.md`
|
|
190
|
+
|
|
191
|
+
**产物**:`spec.md`
|
|
192
|
+
|
|
193
|
+
**跳过确认**:直接进入下一步。
|
|
194
|
+
|
|
195
|
+
**自动拆分检查**:spec.md 保存后,检查文件行数。超过 500 行时,自动执行 `/sdd-split spec {feature_id} --auto`。
|
|
196
|
+
|
|
197
|
+
#### A2. 生成测试用例(testcases)
|
|
198
|
+
|
|
199
|
+
**读取**:上一步的 `spec.md`
|
|
200
|
+
|
|
201
|
+
**执行**:
|
|
202
|
+
1. 从 spec 提取用户故事、验收标准、边界条件
|
|
203
|
+
2. 设计测试用例(UT/IT/API/FT/ST/E2E/B)
|
|
204
|
+
3. 生成 testcases.md
|
|
205
|
+
4. 如果发现 spec 描述模糊(无法写 Given-When-Then),按 L2 反馈补充 spec
|
|
206
|
+
|
|
207
|
+
**产物**:`testcases.md`
|
|
208
|
+
|
|
209
|
+
#### A3. 生成技术计划(plan)
|
|
210
|
+
|
|
211
|
+
**读取**:`spec.md` + `testcases.md`
|
|
212
|
+
|
|
213
|
+
**执行**:
|
|
214
|
+
1. 分析现有代码结构(参考 CLAUDE.md 和 constitution.md)
|
|
215
|
+
2. 设计架构方案(参考 constitution.md 中的架构模式)
|
|
216
|
+
3. 生成 plan.md,包含:
|
|
217
|
+
- 数据模型设计(DDL)
|
|
218
|
+
- API 设计(URL、参数、响应格式)
|
|
219
|
+
- 前后端实现设计
|
|
220
|
+
- **阶段合约**(每个 Phase 的交付物 + 验证标准 + 质量阈值)
|
|
221
|
+
4. 如果发现需求技术上不可行,按 L3 暂停等待人类
|
|
222
|
+
|
|
223
|
+
**产物**:`plan.md`
|
|
224
|
+
|
|
225
|
+
**自动拆分检查**:plan.md 保存后,检查文件行数。超过 1000 行时,自动执行 `/sdd-split plan {feature_id} --auto`。
|
|
226
|
+
|
|
227
|
+
#### A4. 生成任务分解(tasks)
|
|
228
|
+
|
|
229
|
+
**读取**:`spec.md` + `testcases.md` + `plan.md`
|
|
230
|
+
|
|
231
|
+
**执行**:
|
|
232
|
+
1. 基于 plan 的技术方案分解为可执行任务
|
|
233
|
+
2. 建立测试-实现映射(测试任务先行)
|
|
234
|
+
3. 生成 tasks.md
|
|
235
|
+
4. 如果 plan 有遗漏(缺接口/组件),按 L1 自动补充
|
|
236
|
+
|
|
237
|
+
**产物**:`tasks.md`
|
|
238
|
+
|
|
239
|
+
**自动拆分检查**:tasks.md 保存后,检查文件行数。超过 800 行时,自动执行 `/sdd-split tasks {feature_id} --auto`。
|
|
240
|
+
|
|
241
|
+
**Planner 完成标志**:四份文件均已保存到 `.specify/specs/{feature_id}/`
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### Phase B: 生成器(Generator)
|
|
246
|
+
|
|
247
|
+
目标:按计划自动编写代码,不逐任务确认。
|
|
248
|
+
|
|
249
|
+
**读取**:`spec.md` + `testcases.md` + `plan.md` + `tasks.md`
|
|
250
|
+
|
|
251
|
+
#### B1. 自动实现(implement)
|
|
252
|
+
|
|
253
|
+
**执行流程**:
|
|
254
|
+
|
|
255
|
+
1. **加载任务文档**:读取 tasks.md,获取所有 Phase 和任务列表
|
|
256
|
+
2. **逐 Phase 执行**:
|
|
257
|
+
- Phase 1(后端)→ Phase 2(前端)→ Phase 3(测试验收)
|
|
258
|
+
- 每个 Phase 内逐任务执行
|
|
259
|
+
3. **每个任务**:
|
|
260
|
+
- 读取任务描述和关联的文件路径
|
|
261
|
+
- 编写/修改代码
|
|
262
|
+
- 更新 tasks.md 中的任务状态
|
|
263
|
+
4. **Phase 完成后自动合约自检**:
|
|
264
|
+
- 对照 plan.md 中的阶段合约
|
|
265
|
+
- 检查交付物是否齐全
|
|
266
|
+
- 自检失败则自动修复,最多 3 轮
|
|
267
|
+
5. **反馈处理**:
|
|
268
|
+
- L1(方案调整):自动修正 plan/tasks + 代码,记录 CR
|
|
269
|
+
- L2(需求漏洞):自动补充 spec + 级联更新,记录 CR
|
|
270
|
+
- L3(方向性错误):**暂停,输出影响分析,等待人类决策**
|
|
271
|
+
|
|
272
|
+
**关键差异**(对比手动 sdd-implement):
|
|
273
|
+
- 跳过"每完成一个任务等待确认"
|
|
274
|
+
- 跳过"每个 Phase 完成后提示用户运行 review"
|
|
275
|
+
- 反馈自动处理,不等待人类指令
|
|
276
|
+
- 使用 `auto` 模式的行为:遇错暂停修复后继续
|
|
277
|
+
|
|
278
|
+
**产物**:已实现的代码文件 + 更新的 tasks.md
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
### Phase C: 评估器(MACE 多Agent竞争评审)
|
|
283
|
+
|
|
284
|
+
目标:3 个独立 Agent 并行评审代码质量,仲裁合并后不通过则自动迭代。
|
|
285
|
+
|
|
286
|
+
**读取**:`spec.md` + `plan.md` + `testcases.md` + `constitution.md` + 所有已实现的代码文件
|
|
287
|
+
|
|
288
|
+
> **核心改变**: 评估器不再是单 Agent 自审自评,而是派发 3 个独立 Agent 并行评审。
|
|
289
|
+
> 每个 Agent 拥有独立上下文窗口,看不到 Generator 的思考过程。
|
|
290
|
+
|
|
291
|
+
#### C1. 并行派发评审 Agent
|
|
292
|
+
|
|
293
|
+
使用 Agent 工具同时派发 3 个独立评审 Agent:
|
|
294
|
+
|
|
295
|
+
| Agent | 角色 | 审查维度 | 输入上下文 |
|
|
296
|
+
|-------|------|----------|------------|
|
|
297
|
+
| A: 严苛审查员 | 找出所有代码问题 | 功能完整性 + 代码质量 | spec + plan + 代码 |
|
|
298
|
+
| B: 需求守护者 | 代表最终用户 | 需求一致性 + 边界处理 | spec + testcases + 代码 |
|
|
299
|
+
| C: 集成检查员 | 端到端验证 | 集成完整性 + 架构合规 | plan + testcases + 代码 + constitution |
|
|
300
|
+
|
|
301
|
+
每个 Agent 的详细 prompt 模板和输出格式,参照 `sdd-review` skill 的「执行步骤 → 3. 并行派发 3 个评审 Agent」。
|
|
302
|
+
|
|
303
|
+
**Agent 派发要点**:
|
|
304
|
+
1. 将文档内容直接注入 Agent prompt(而非仅传路径),确保 Agent 独立上下文完整
|
|
305
|
+
2. 3 个 Agent **必须并行派发**(单个消息中包含 3 个 Agent 工具调用)
|
|
306
|
+
3. 每个 Agent 输出结构化评审结果(评分 + 问题清单 + 合约检查 + 亮点)
|
|
307
|
+
|
|
308
|
+
#### C2. 仲裁合并
|
|
309
|
+
|
|
310
|
+
收集 3 个 Agent 结果后执行仲裁:
|
|
311
|
+
|
|
312
|
+
1. **问题去重与确认**:
|
|
313
|
+
- ≥2 个 Agent 报告的相似问题 → 确认(提升一级严重度)
|
|
314
|
+
- 仅 1 个 Agent 报告 → 待确认(保持原始严重度)
|
|
315
|
+
2. **评分聚合**:每个维度取对应 Agent 的评分
|
|
316
|
+
3. **合约检查合并**:取并集(任一 Agent FAIL → 该合约项 FAIL)
|
|
317
|
+
|
|
318
|
+
仲裁合并的详细规则,参照 `sdd-review` skill 的「执行步骤 → 4. 仲裁合并」。
|
|
319
|
+
|
|
320
|
+
#### C3. 评审结论判定
|
|
321
|
+
|
|
322
|
+
```
|
|
323
|
+
评审结果判定:
|
|
324
|
+
功能完整性 ≥ 4 AND 需求一致性 ≥ 4 AND 无确认的 HIGH 问题
|
|
325
|
+
→ PASS → 输出最终报告
|
|
326
|
+
|
|
327
|
+
否则
|
|
328
|
+
→ ITERATE → 自动修复 → 重新派发 3 个 Agent(回到 C1)
|
|
329
|
+
→ 最多 3 轮,超过则暂停等待人类
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**自动修复流程**:
|
|
333
|
+
1. 从仲裁后的评审报告中提取确认问题清单
|
|
334
|
+
2. 按确认人数排序:≥2 个 Agent 确认的优先修复
|
|
335
|
+
3. 按严重度排序:HIGH → MEDIUM → LOW
|
|
336
|
+
4. 逐一修复代码
|
|
337
|
+
5. 修复完成后重新执行 C1-C2(重新派发 3 个 Agent)
|
|
338
|
+
|
|
339
|
+
**评审报告格式**:参见 `sdd-review` skill 的报告格式(包含 Agent 评审详情和确认情况)。
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
### 最终输出
|
|
344
|
+
|
|
345
|
+
全自动流水线完成后,输出执行报告:
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
━━━ SDD v3 执行报告 ━━━
|
|
349
|
+
|
|
350
|
+
功能: {feature_id} - {功能名称}
|
|
351
|
+
执行时间: {start} ~ {end}
|
|
352
|
+
迭代轮次: {n}
|
|
353
|
+
|
|
354
|
+
📋 产出文件:
|
|
355
|
+
✅ spec.md ({版本})
|
|
356
|
+
✅ testcases.md ({N} 个测试场景)
|
|
357
|
+
✅ plan.md ({N} Phase, {N} 合约项)
|
|
358
|
+
✅ tasks.md ({N} 个任务)
|
|
359
|
+
|
|
360
|
+
📊 最终评审(MACE 多Agent竞争评审):
|
|
361
|
+
功能完整性: {n}/5 (A-严苛审查员) | 需求一致性: {n}/5 (B-需求守护者)
|
|
362
|
+
代码质量: {n}/5 (A-严苛审查员) | 边界处理: {n}/5 (B-需求守护者)
|
|
363
|
+
集成完整性: {n}/5 (C-集成检查员)
|
|
364
|
+
确认问题: {N}项 | 待确认问题: {N}项
|
|
365
|
+
结论: PASS
|
|
366
|
+
|
|
367
|
+
📝 变更文件:
|
|
368
|
+
后端: {N} 个文件新增, {N} 个文件修改
|
|
369
|
+
前端: {N} 个文件新增, {N} 个文件修改
|
|
370
|
+
|
|
371
|
+
🔄 迭代记录:
|
|
372
|
+
Round 1: ITERATE - {问题摘要} → {修复摘要}
|
|
373
|
+
Round 2: PASS
|
|
374
|
+
|
|
375
|
+
📋 CR 记录:
|
|
376
|
+
CR-001: {变更摘要} ({级别})
|
|
377
|
+
|
|
378
|
+
⏸ 暂停项:
|
|
379
|
+
{无 / 列出L3暂停项}
|
|
380
|
+
|
|
381
|
+
请验收以上结果。如需修改,告诉我具体问题。
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## 中断与恢复
|
|
387
|
+
|
|
388
|
+
### `--from` 参数
|
|
389
|
+
|
|
390
|
+
支持从指定阶段开始,跳过已完成的步骤:
|
|
391
|
+
|
|
392
|
+
```
|
|
393
|
+
/sdd-run 004 --from specify # 从规格开始(跳过已有的前置准备)
|
|
394
|
+
/sdd-run 004 --from testcases # 已有 spec,从测试用例开始
|
|
395
|
+
/sdd-run 004 --from plan # 已有 spec + testcases
|
|
396
|
+
/sdd-run 004 --from tasks # 已有 spec + testcases + plan
|
|
397
|
+
/sdd-run 004 --from implement # 已有完整计划,只执行实现
|
|
398
|
+
/sdd-run 004 --from review # 已实现,只执行评审
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
**恢复逻辑**:
|
|
402
|
+
1. 检查指定阶段的前置文件是否存在
|
|
403
|
+
2. 缺少前置文件时报错并提示需要先完成的阶段
|
|
404
|
+
3. 从指定阶段开始自动执行后续所有阶段
|
|
405
|
+
|
|
406
|
+
### L3 暂停恢复
|
|
407
|
+
|
|
408
|
+
当遇到 L3 级别问题时,流程暂停并输出:
|
|
409
|
+
- 阻塞原因和影响分析
|
|
410
|
+
- 建议的处理方案(可选)
|
|
411
|
+
- 当前已完成阶段和产出文件
|
|
412
|
+
|
|
413
|
+
人类决策后,可通过 `/sdd-run {feature_id} --from {stage}` 继续。
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## 与现有 Skill 的关系
|
|
418
|
+
|
|
419
|
+
| 现有 Skill | sdd-run 中的角色 | 变更 |
|
|
420
|
+
|-----------|-----------------|------|
|
|
421
|
+
| sdd-specify | Planner A1 | 不修改,sdd-run 内部执行等价逻辑 |
|
|
422
|
+
| sdd-testcases | Planner A2 | 不修改,sdd-run 内部执行等价逻辑 |
|
|
423
|
+
| sdd-plan | Planner A3 | 不修改,sdd-run 内部执行等价逻辑 |
|
|
424
|
+
| sdd-tasks | Planner A4 | 不修改,sdd-run 内部执行等价逻辑 |
|
|
425
|
+
| sdd-implement | Generator B1 | 不修改,sdd-run 内部执行等价逻辑 |
|
|
426
|
+
| sdd-review | Evaluator C1-C2(MACE多Agent) | 不修改,sdd-run 内部执行等价逻辑(3 Agent并行派发+仲裁) |
|
|
427
|
+
|
|
428
|
+
现有 6 个 skill 继续可用,支持手动逐步执行。`sdd-run` 是纯编排层。
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## 注意事项
|
|
433
|
+
|
|
434
|
+
1. **不跳过质量**:自动不等于降低标准,评审维度和硬阈值不变
|
|
435
|
+
2. **CR 记录完整**:每次自动修正都记录 CR,保持可追溯性
|
|
436
|
+
3. **宪法优先**:所有代码必须符合 `.specify/memory/constitution.md` 约束
|
|
437
|
+
4. **错误处理**:代码编译/lint 错误自动修复,最多重试 3 次
|
|
438
|
+
5. **不自动提交**:代码修改不自动 git commit,由人类验收后决定
|
|
439
|
+
6. **大文档处理**:spec 超过 500 行、plan 超过 1000 行、tasks 超过 800 行时自动拆分(使用 `--auto` 模式)
|