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,498 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdd-review
|
|
3
|
+
description: 独立质量评审 - 3个独立Agent并行评审代码、对照spec/plan合约,仲裁合并后输出评分和问题清单。人类审批决定是否迭代。
|
|
4
|
+
invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# SDD Review - 独立质量评审器(MACE 多Agent竞争评审)
|
|
8
|
+
|
|
9
|
+
> **受 Anthropic Harness 设计思想启发**:将执行(Generator)与评审(Evaluator)分离。
|
|
10
|
+
> Agent 倾向于积极评价自己的工作,独立评审能发现自我评估遗漏的问题。
|
|
11
|
+
>
|
|
12
|
+
> **MACE 升级**:评审由 3 个独立 Agent 并行执行,通过共识机制提高评审准确性和置信度。
|
|
13
|
+
|
|
14
|
+
在实现阶段完成后,独立审查代码和交付物,对照 spec/plan/testcases 进行多维度评分,输出结构化评审报告。
|
|
15
|
+
|
|
16
|
+
## 核心定位
|
|
17
|
+
|
|
18
|
+
> Review 是 SDD 流程的**独立质量门禁**,不参与实现,只负责评审。
|
|
19
|
+
> 评审结果由人类审批,决定是否通过或需要迭代。
|
|
20
|
+
|
|
21
|
+
## 前置条件
|
|
22
|
+
|
|
23
|
+
- 已有功能规格: `.specify/specs/{feature_id}/spec.md`
|
|
24
|
+
- 已有技术计划: `.specify/specs/{feature_id}/plan.md`
|
|
25
|
+
- 已有部分或全部实现代码
|
|
26
|
+
- 可选: 测试用例 `.specify/specs/{feature_id}/testcases.md`
|
|
27
|
+
|
|
28
|
+
## 评审维度
|
|
29
|
+
|
|
30
|
+
### 维度定义
|
|
31
|
+
|
|
32
|
+
| 维度 | 权重 | 硬阈值 | 说明 |
|
|
33
|
+
|------|------|--------|------|
|
|
34
|
+
| 功能完整性 | ★★★ | ≥ 4/5 | spec 中定义的所有功能点是否都已实现?有无存根、TODO、占位符? |
|
|
35
|
+
| 需求一致性 | ★★★ | ≥ 4/5 | 实现是否与 spec/testcases/plan 的定义一致?有无偏离或遗漏? |
|
|
36
|
+
| 代码质量 | ★★ | ≥ 3/5 | 是否符合宪法约束?命名清晰?架构分层正确(参考 constitution.md)? |
|
|
37
|
+
| 边界处理 | ★★ | ≥ 3/5 | spec 中的边界条件和异常场景是否覆盖?空数据、并发、权限等 |
|
|
38
|
+
| 集成完整性 | ★★ | ≥ 3/5 | 前后端对接是否完整?API 调用链路是否通畅?数据流是否闭环? |
|
|
39
|
+
|
|
40
|
+
### 硬阈值规则
|
|
41
|
+
|
|
42
|
+
- **功能完整性 < 4** → 必须 ITERATE(功能缺失无法交付)
|
|
43
|
+
- **需求一致性 < 4** → 必须 ITERATE(实现偏离需求)
|
|
44
|
+
- 任意维度出现 **HIGH 严重度问题** → 必须 ITERATE
|
|
45
|
+
- 所有硬阈值通过且无 HIGH 问题 → PASS(建议修复项可后续处理)
|
|
46
|
+
|
|
47
|
+
## 多Agent竞争评审架构(MACE)
|
|
48
|
+
|
|
49
|
+
> **核心改进**: 评审不再是单个 Agent 的自说自话,而是 3 个独立 Agent **并行评审** + **仲裁合并**。
|
|
50
|
+
> 每个 Agent 拥有独立的上下文窗口,审查视角不同,通过共识机制提高评审准确性和置信度。
|
|
51
|
+
|
|
52
|
+
### 评审 Agent 配置
|
|
53
|
+
|
|
54
|
+
| Agent | 角色 | 审查维度 | 输入上下文 |
|
|
55
|
+
|-------|------|----------|------------|
|
|
56
|
+
| A: 严苛审查员 | 找出所有代码问题 | 功能完整性 + 代码质量 | spec + plan + 代码 |
|
|
57
|
+
| B: 需求守护者 | 代表最终用户 | 需求一致性 + 边界处理 | spec + testcases + 代码 |
|
|
58
|
+
| C: 集成检查员 | 端到端验证 | 集成完整性 + 架构合规 | plan + testcases + 代码 + constitution |
|
|
59
|
+
|
|
60
|
+
### 仲裁规则
|
|
61
|
+
|
|
62
|
+
1. **问题确认**: ≥2 个 Agent 同时发现的问题标记为「确认」(提升一级严重度),仅 1 个 Agent 发现的标记为「待确认」
|
|
63
|
+
2. **评分聚合**: 每个维度取对应 Agent 的评分;如同一维度有多个 Agent 交叉评分,取中位数
|
|
64
|
+
3. **硬阈值不变**: 功能完整性 ≥ 4, 需求一致性 ≥ 4
|
|
65
|
+
4. **亮点合并**: 任意 Agent 提到的亮点均纳入最终报告
|
|
66
|
+
5. **合约检查**: 任一 Agent FAIL 的合约项标记 FAIL(取并集)
|
|
67
|
+
|
|
68
|
+
## 执行步骤
|
|
69
|
+
|
|
70
|
+
### 1. 加载评审上下文
|
|
71
|
+
|
|
72
|
+
读取以下文档(按优先级):
|
|
73
|
+
|
|
74
|
+
1. `.specify/specs/{feature_id}/spec.md` 或 `spec/README.md` — 功能规格与完成定义
|
|
75
|
+
2. `.specify/specs/{feature_id}/plan.md` 或 `plan/README.md` — 技术方案与阶段合约
|
|
76
|
+
3. `.specify/specs/{feature_id}/testcases.md` — 测试用例(如有)
|
|
77
|
+
4. `.specify/memory/constitution.md` — 项目宪法
|
|
78
|
+
5. `CLAUDE.md` — 项目配置
|
|
79
|
+
|
|
80
|
+
### 2. 确定评审范围与收集代码文件
|
|
81
|
+
|
|
82
|
+
询问用户评审范围:
|
|
83
|
+
|
|
84
|
+
- **Phase Review**: 只评审某个 Phase(如 Phase 1 后端、Phase 2 前端)
|
|
85
|
+
- **Full Review**: 评审所有已完成的实现
|
|
86
|
+
|
|
87
|
+
根据评审范围,确定需要审查的代码文件列表,记录所有文件的完整路径。
|
|
88
|
+
|
|
89
|
+
### 3. 并行派发 3 个评审 Agent
|
|
90
|
+
|
|
91
|
+
> 使用 Agent 工具**同时派发 3 个独立评审 Agent**,每个 Agent 拥有独立上下文窗口。
|
|
92
|
+
> 将评审所需的文档内容直接注入到每个 Agent 的 prompt 中,使 Agent 无需自行定位文件。
|
|
93
|
+
> 3 个 Agent 调用必须在**同一条消息中**发出,确保并行执行。
|
|
94
|
+
|
|
95
|
+
#### Agent A: 严苛审查员
|
|
96
|
+
|
|
97
|
+
派发参数:
|
|
98
|
+
- **subagent_type**: `general-purpose`
|
|
99
|
+
- **description**: `SDD评审-严苛审查员`
|
|
100
|
+
- **prompt** 内容模板:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
你是一位严苛的代码审查专家。你的职责是找出代码中的所有问题,不放过任何瑕疵。
|
|
104
|
+
你不关心代码编写者的感受,只关心代码质量是否达标。
|
|
105
|
+
|
|
106
|
+
## 审查任务
|
|
107
|
+
|
|
108
|
+
请仔细阅读以下文档和代码,然后对「功能完整性」和「代码质量」两个维度进行评分。
|
|
109
|
+
|
|
110
|
+
### 功能规格
|
|
111
|
+
{此处注入 spec.md 的完整内容}
|
|
112
|
+
|
|
113
|
+
### 技术方案
|
|
114
|
+
{此处注入 plan.md 的完整内容}
|
|
115
|
+
|
|
116
|
+
### 待审查代码文件
|
|
117
|
+
请读取以下文件并逐一审查:
|
|
118
|
+
{代码文件路径列表,每行一个}
|
|
119
|
+
|
|
120
|
+
## 评分维度
|
|
121
|
+
|
|
122
|
+
对以下 2 个维度打分(1-5 分),每个分数必须提供具体论据:
|
|
123
|
+
|
|
124
|
+
1. **功能完整性** (权重★★★): spec 中定义的所有功能点是否都已实现?
|
|
125
|
+
- 对照 spec 的每个用户故事和功能需求,逐一检查是否有对应实现
|
|
126
|
+
- 检查是否存在未完成的功能(存根方法、空实现、TODO 注释)
|
|
127
|
+
- 检查 plan 中定义的每个 API 端点是否都有对应实现
|
|
128
|
+
|
|
129
|
+
2. **代码质量** (权重★★): 是否符合架构约束?命名清晰?
|
|
130
|
+
- 检查架构分层是否正确(参考 constitution.md)
|
|
131
|
+
- 检查是否有重复代码、硬编码
|
|
132
|
+
- 检查命名是否清晰、一致
|
|
133
|
+
- 检查是否有明显的性能问题(N+1 查询等)
|
|
134
|
+
|
|
135
|
+
## 输出格式
|
|
136
|
+
|
|
137
|
+
严格按以下格式输出评审结果,不要输出其他内容:
|
|
138
|
+
|
|
139
|
+
---REVIEW-START---
|
|
140
|
+
AGENT: A-严苛审查员
|
|
141
|
+
SCORES:
|
|
142
|
+
- 功能完整性: {score}/5 | {具体论据,列出每个功能点的检查结果}
|
|
143
|
+
- 代码质量: {score}/5 | {具体论据,列出发现的质量问题}
|
|
144
|
+
ISSUES:
|
|
145
|
+
- [{HIGH|MEDIUM|LOW}] [{功能完整性|代码质量}] {问题描述} | 参考: {关联文档条款} | 定位: {文件:行号}
|
|
146
|
+
CONTRACTS:
|
|
147
|
+
- {合约项描述} | {PASS|FAIL} | {备注}
|
|
148
|
+
HIGHLIGHTS:
|
|
149
|
+
- {值得肯定的设计决策或实现模式}
|
|
150
|
+
---REVIEW-END---
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Agent B: 需求守护者
|
|
154
|
+
|
|
155
|
+
派发参数:
|
|
156
|
+
- **subagent_type**: `general-purpose`
|
|
157
|
+
- **description**: `SDD评审-需求守护者`
|
|
158
|
+
- **prompt** 内容模板:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
你是最终用户的代言人。你的职责是检查每个用户故事和验收标准是否被满足。
|
|
162
|
+
你代表用户利益,不遗漏任何需求细节。如果用户期望的功能没有实现完整,你必须指出。
|
|
163
|
+
|
|
164
|
+
## 审查任务
|
|
165
|
+
|
|
166
|
+
请仔细阅读以下文档和代码,然后对「需求一致性」和「边界处理」两个维度进行评分。
|
|
167
|
+
|
|
168
|
+
### 功能规格
|
|
169
|
+
{此处注入 spec.md 的完整内容}
|
|
170
|
+
|
|
171
|
+
### 测试用例
|
|
172
|
+
{此处注入 testcases.md 的完整内容}
|
|
173
|
+
|
|
174
|
+
### 待审查代码文件
|
|
175
|
+
请读取以下文件并逐一审查:
|
|
176
|
+
{代码文件路径列表,每行一个}
|
|
177
|
+
|
|
178
|
+
## 评分维度
|
|
179
|
+
|
|
180
|
+
对以下 2 个维度打分(1-5 分),每个分数必须提供具体论据:
|
|
181
|
+
|
|
182
|
+
1. **需求一致性** (权重★★★): 实现是否与 spec/testcases 的定义一致?
|
|
183
|
+
- 逐一对照 spec 中的每个用户故事(US-1, US-2...)
|
|
184
|
+
- 检查验收标准(Given-When-Then)是否被满足
|
|
185
|
+
- 检查 UI 实现是否与 spec 的界面需求一致
|
|
186
|
+
- 检查交互流程是否与 spec 的用户故事一致
|
|
187
|
+
|
|
188
|
+
2. **边界处理** (权重★★): 边界条件和异常场景是否覆盖?
|
|
189
|
+
- 空数据处理、加载中状态、错误状态
|
|
190
|
+
- 权限控制、并发场景
|
|
191
|
+
- 数据量上限、特殊字符输入
|
|
192
|
+
- 用户误操作场景(重复提交、中途取消等)
|
|
193
|
+
|
|
194
|
+
## 输出格式
|
|
195
|
+
|
|
196
|
+
严格按以下格式输出评审结果,不要输出其他内容:
|
|
197
|
+
|
|
198
|
+
---REVIEW-START---
|
|
199
|
+
AGENT: B-需求守护者
|
|
200
|
+
SCORES:
|
|
201
|
+
- 需求一致性: {score}/5 | {具体论据,列出每个用户故事的检查结果}
|
|
202
|
+
- 边界处理: {score}/5 | {具体论据,列出每个边界条件的检查结果}
|
|
203
|
+
ISSUES:
|
|
204
|
+
- [{HIGH|MEDIUM|LOW}] [{需求一致性|边界处理}] {问题描述} | 参考: {关联文档条款} | 定位: {文件:行号}
|
|
205
|
+
CONTRACTS:
|
|
206
|
+
- {合约项描述} | {PASS|FAIL} | {备注}
|
|
207
|
+
HIGHLIGHTS:
|
|
208
|
+
- {值得肯定的设计决策或实现模式}
|
|
209
|
+
---REVIEW-END---
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### Agent C: 集成检查员
|
|
213
|
+
|
|
214
|
+
派发参数:
|
|
215
|
+
- **subagent_type**: `general-purpose`
|
|
216
|
+
- **description**: `SDD评审-集成检查员`
|
|
217
|
+
- **prompt** 内容模板:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
你是一位系统集成专家。你的职责是端到端验证所有接口和数据流,确保系统完整性。
|
|
221
|
+
你关注的是组件之间的对接是否正确,数据流是否闭环。你对照宪法约束检查架构合规性。
|
|
222
|
+
|
|
223
|
+
## 审查任务
|
|
224
|
+
|
|
225
|
+
请仔细阅读以下文档和代码,然后对「集成完整性」和「架构合规」两个维度进行评分。
|
|
226
|
+
|
|
227
|
+
### 技术方案
|
|
228
|
+
{此处注入 plan.md 的完整内容}
|
|
229
|
+
|
|
230
|
+
### 测试用例
|
|
231
|
+
{此处注入 testcases.md 的完整内容}
|
|
232
|
+
|
|
233
|
+
### 项目宪法
|
|
234
|
+
{此处注入 constitution.md 的完整内容}
|
|
235
|
+
|
|
236
|
+
### 待审查代码文件
|
|
237
|
+
请读取以下文件并逐一审查:
|
|
238
|
+
{代码文件路径列表,每行一个}
|
|
239
|
+
|
|
240
|
+
## 评分维度
|
|
241
|
+
|
|
242
|
+
对以下 2 个维度打分(1-5 分),每个分数必须提供具体论据:
|
|
243
|
+
|
|
244
|
+
1. **集成完整性** (权重★★): 前后端对接是否完整?数据流是否闭环?
|
|
245
|
+
- 检查前端 API 调用是否与后端端点匹配
|
|
246
|
+
- 检查请求参数和响应格式是否与 API 设计一致
|
|
247
|
+
- 检查数据流是否闭环(用户操作 → API → 数据层 → 返回 → UI 更新)
|
|
248
|
+
- 检查错误码和异常处理是否贯穿前后端
|
|
249
|
+
|
|
250
|
+
2. **架构合规** (权重★★): 是否符合宪法约束和项目架构原则?
|
|
251
|
+
- 检查是否遵循 constitution.md 中定义的架构模式
|
|
252
|
+
- 检查分层是否正确(参考 constitution.md)
|
|
253
|
+
- 检查数据访问层是否正确封装
|
|
254
|
+
|
|
255
|
+
## 输出格式
|
|
256
|
+
|
|
257
|
+
严格按以下格式输出评审结果,不要输出其他内容:
|
|
258
|
+
|
|
259
|
+
---REVIEW-START---
|
|
260
|
+
AGENT: C-集成检查员
|
|
261
|
+
SCORES:
|
|
262
|
+
- 集成完整性: {score}/5 | {具体论据,列出每个接口和数据流的检查结果}
|
|
263
|
+
- 架构合规: {score}/5 | {具体论据,列出每个架构约束的检查结果}
|
|
264
|
+
ISSUES:
|
|
265
|
+
- [{HIGH|MEDIUM|LOW}] [{集成完整性|架构合规}] {问题描述} | 参考: {关联文档条款} | 定位: {文件:行号}
|
|
266
|
+
CONTRACTS:
|
|
267
|
+
- {合约项描述} | {PASS|FAIL} | {备注}
|
|
268
|
+
HIGHLIGHTS:
|
|
269
|
+
- {值得肯定的设计决策或实现模式}
|
|
270
|
+
---REVIEW-END---
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### 4. 仲裁合并
|
|
274
|
+
|
|
275
|
+
收集 3 个 Agent 的评审结果后,执行仲裁合并:
|
|
276
|
+
|
|
277
|
+
#### 4.1 解析评审结果
|
|
278
|
+
|
|
279
|
+
从每个 Agent 的输出中提取:
|
|
280
|
+
- 评分(每个维度的分数和论据)
|
|
281
|
+
- 问题清单(严重度、维度、描述、关联文档、代码定位)
|
|
282
|
+
- 合约检查结果
|
|
283
|
+
- 亮点
|
|
284
|
+
|
|
285
|
+
#### 4.2 问题去重与确认
|
|
286
|
+
|
|
287
|
+
1. 比对 3 份报告的问题清单,按语义相似度分组
|
|
288
|
+
2. 确认规则:
|
|
289
|
+
- **≥2 个 Agent 报告的相似问题** → 确认,并提升一级严重度
|
|
290
|
+
- 例:2 个 Agent 都报告 MEDIUM → 升级为 HIGH
|
|
291
|
+
- 例:2 个 Agent 都报告 LOW → 升级为 MEDIUM
|
|
292
|
+
- **仅 1 个 Agent 报告** → 待确认(保持原始严重度,标注发现者)
|
|
293
|
+
|
|
294
|
+
#### 4.3 评分聚合
|
|
295
|
+
|
|
296
|
+
每个维度取对应 Agent 的评分:
|
|
297
|
+
|
|
298
|
+
| 维度 | 主评审 Agent |
|
|
299
|
+
|------|-------------|
|
|
300
|
+
| 功能完整性 | Agent A |
|
|
301
|
+
| 需求一致性 | Agent B |
|
|
302
|
+
| 代码质量 | Agent A |
|
|
303
|
+
| 边界处理 | Agent B |
|
|
304
|
+
| 集成完整性 | Agent C |
|
|
305
|
+
|
|
306
|
+
如同一维度有多个 Agent 在 issues 中间接覆盖到,标注交叉验证信息。
|
|
307
|
+
|
|
308
|
+
#### 4.4 合约检查合并
|
|
309
|
+
|
|
310
|
+
取 3 个 Agent 合约检查结果的**并集**:
|
|
311
|
+
- 任一 Agent FAIL → 合约项 FAIL
|
|
312
|
+
- 所有 Agent PASS → 合约项 PASS
|
|
313
|
+
|
|
314
|
+
### 5. 生成最终评审报告
|
|
315
|
+
|
|
316
|
+
保存到: `.specify/specs/{feature_id}/review-{phase}-r{n}.md`
|
|
317
|
+
|
|
318
|
+
报告格式:
|
|
319
|
+
|
|
320
|
+
```markdown
|
|
321
|
+
# 评审报告
|
|
322
|
+
|
|
323
|
+
> 评审时间: {date}
|
|
324
|
+
> 评审范围: Phase {N} - {阶段名称}
|
|
325
|
+
> 评审轮次: 第 {round} 轮
|
|
326
|
+
> 评审方式: MACE 多Agent竞争评审
|
|
327
|
+
|
|
328
|
+
## 总评
|
|
329
|
+
|
|
330
|
+
**结论: PASS / ITERATE**
|
|
331
|
+
|
|
332
|
+
| 维度 | 分数 | 评审Agent | 说明 |
|
|
333
|
+
|------|------|-----------|------|
|
|
334
|
+
| 功能完整性 | {n}/5 | A-严苛审查员 | {一句话} |
|
|
335
|
+
| 需求一致性 | {n}/5 | B-需求守护者 | {一句话} |
|
|
336
|
+
| 代码质量 | {n}/5 | A-严苛审查员 | {一句话} |
|
|
337
|
+
| 边界处理 | {n}/5 | B-需求守护者 | {一句话} |
|
|
338
|
+
| 集成完整性 | {n}/5 | C-集成检查员 | {一句话} |
|
|
339
|
+
|
|
340
|
+
## 硬阈值检查
|
|
341
|
+
|
|
342
|
+
- [ ] 功能完整性 ≥ 4: {PASS/FAIL}
|
|
343
|
+
- [ ] 需求一致性 ≥ 4: {PASS/FAIL}
|
|
344
|
+
|
|
345
|
+
## 阶段合约检查
|
|
346
|
+
|
|
347
|
+
| # | 合约项 | 状态 | 确认情况 | 备注 |
|
|
348
|
+
|---|--------|------|----------|------|
|
|
349
|
+
| 1 | {合约描述} | ✅/❌ | [A+B+C] | |
|
|
350
|
+
|
|
351
|
+
## 问题清单
|
|
352
|
+
|
|
353
|
+
| # | 维度 | 严重度 | 确认情况 | 问题描述 | 关联文档 | 定位 |
|
|
354
|
+
|---|------|--------|----------|----------|----------|------|
|
|
355
|
+
| 1 | 功能完整性 | HIGH | [A+B确认] | {描述} | spec US-X | {文件:行号} |
|
|
356
|
+
| 2 | 代码质量 | MEDIUM | [仅A发现] | {描述} | constitution | {文件:行号} |
|
|
357
|
+
|
|
358
|
+
## 迭代建议
|
|
359
|
+
|
|
360
|
+
### 必须修复(阻断项 - ≥2个Agent确认)
|
|
361
|
+
- [ ] #1: {修复建议}
|
|
362
|
+
- [ ] #2: {修复建议}
|
|
363
|
+
|
|
364
|
+
### 建议修复(改善项 - 单Agent发现)
|
|
365
|
+
- [ ] #3: {修复建议}
|
|
366
|
+
|
|
367
|
+
## 亮点
|
|
368
|
+
|
|
369
|
+
- {值得肯定的设计决策或实现模式}
|
|
370
|
+
|
|
371
|
+
## Agent 评审详情
|
|
372
|
+
|
|
373
|
+
### Agent A: 严苛审查员
|
|
374
|
+
- 功能完整性: {n}/5 — {论据摘要}
|
|
375
|
+
- 代码质量: {n}/5 — {论据摘要}
|
|
376
|
+
- 发现问题: {N} 个
|
|
377
|
+
|
|
378
|
+
### Agent B: 需求守护者
|
|
379
|
+
- 需求一致性: {n}/5 — {论据摘要}
|
|
380
|
+
- 边界处理: {n}/5 — {论据摘要}
|
|
381
|
+
- 发现问题: {N} 个
|
|
382
|
+
|
|
383
|
+
### Agent C: 集成检查员
|
|
384
|
+
- 集成完整性: {n}/5 — {论据摘要}
|
|
385
|
+
- 架构合规: {n}/5 — {论据摘要}
|
|
386
|
+
- 发现问题: {N} 个
|
|
387
|
+
|
|
388
|
+
## 变更记录
|
|
389
|
+
|
|
390
|
+
### CR-REV-{n}: {简述}
|
|
391
|
+
- **评审轮次**: 第 {round} 轮
|
|
392
|
+
- **发现**: {问题}
|
|
393
|
+
- **建议**: {修复方向}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### 6. 向用户汇报
|
|
397
|
+
|
|
398
|
+
展示评审摘要,等待用户决策:
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
## 评审结论: {PASS/ITERATE}
|
|
402
|
+
|
|
403
|
+
评审方式: MACE 多Agent竞争评审(3个独立Agent并行评审)
|
|
404
|
+
|
|
405
|
+
| 维度 | 分数 | 评审Agent |
|
|
406
|
+
|------|------|-----------|
|
|
407
|
+
| 功能完整性 | {n}/5 | A-严苛审查员 |
|
|
408
|
+
| 需求一致性 | {n}/5 | B-需求守护者 |
|
|
409
|
+
| 代码质量 | {n}/5 | A-严苛审查员 |
|
|
410
|
+
| 边界处理 | {n}/5 | B-需求守护者 |
|
|
411
|
+
| 集成完整性 | {n}/5 | C-集成检查员 |
|
|
412
|
+
|
|
413
|
+
确认问题 {N} 项(≥2个Agent确认):
|
|
414
|
+
1. [HIGH] {问题描述} [{确认Agent列表}]
|
|
415
|
+
|
|
416
|
+
待确认问题 {N} 项(仅1个Agent发现):
|
|
417
|
+
2. [MEDIUM] {问题描述} [仅{Agent}发现]
|
|
418
|
+
|
|
419
|
+
下一步:
|
|
420
|
+
→ 输入 "iterate" 进入迭代修复
|
|
421
|
+
→ 输入 "pass" 忽略问题,标记完成(不推荐)
|
|
422
|
+
→ 输入具体问题编号只修复指定项
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
## 迭代模式
|
|
426
|
+
|
|
427
|
+
用户选择 iterate 后:
|
|
428
|
+
|
|
429
|
+
### 1. 加载评审报告
|
|
430
|
+
|
|
431
|
+
读取最新的评审报告,提取必须修复项和建议修复项。
|
|
432
|
+
|
|
433
|
+
### 2. 逐一修复
|
|
434
|
+
|
|
435
|
+
按严重度从高到低排序,逐一修复问题:
|
|
436
|
+
- **确认问题**(≥2 个 Agent 确认)优先修复
|
|
437
|
+
- 每修复一个问题,更新评审报告中的状态
|
|
438
|
+
- 修复过程中如触发自循环反馈,按 L1/L2/L3 规则处理
|
|
439
|
+
|
|
440
|
+
### 3. 修复后自检
|
|
441
|
+
|
|
442
|
+
对照评审报告检查所有已修复项:
|
|
443
|
+
- 确认问题已解决
|
|
444
|
+
- 确认修复未引入新问题
|
|
445
|
+
|
|
446
|
+
### 4. 重新评审
|
|
447
|
+
|
|
448
|
+
修复完成后,**重新派发 3 个评审 Agent**(回到步骤 3)。
|
|
449
|
+
|
|
450
|
+
**迭代限制**: 最多 3 轮迭代。超过 3 轮后暂停,等待用户决策:
|
|
451
|
+
- 继续迭代(用户确认)
|
|
452
|
+
- 接受当前状态
|
|
453
|
+
- 暂停开发,回溯到 plan/spec
|
|
454
|
+
|
|
455
|
+
## 评审报告存储
|
|
456
|
+
|
|
457
|
+
评审报告按轮次存储:
|
|
458
|
+
|
|
459
|
+
```
|
|
460
|
+
.specify/specs/{feature_id}/
|
|
461
|
+
├── review-phase1-r1.md # Phase 1 第 1 轮评审
|
|
462
|
+
├── review-phase1-r2.md # Phase 1 第 2 轮评审(迭代后)
|
|
463
|
+
├── review-phase2-r1.md # Phase 2 第 1 轮评审
|
|
464
|
+
└── review-final-r1.md # 最终评审
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
## 与其他 SDD 步骤的关系
|
|
468
|
+
|
|
469
|
+
```
|
|
470
|
+
sdd-specify ←── 评审发现需求问题
|
|
471
|
+
sdd-testcases ←── 评审发现测试盲区
|
|
472
|
+
sdd-plan ←── 评审发现设计缺陷
|
|
473
|
+
sdd-implement ──→ sdd-review ──→ iterate/complete
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
评审发现的问题,按照自循环反馈机制回溯到源头:
|
|
477
|
+
|
|
478
|
+
| 评审发现 | 回溯目标 | 反馈级别 |
|
|
479
|
+
|----------|----------|----------|
|
|
480
|
+
| 功能缺失但 spec 中有定义 | implement(未完成) | L1 |
|
|
481
|
+
| 功能缺失且 spec 中未定义 | spec → plan → tasks → implement | L2 |
|
|
482
|
+
| 实现与 plan 设计不一致 | plan → implement | L1/L2 |
|
|
483
|
+
| 代码质量问题 | implement | L1 |
|
|
484
|
+
| 发现新边界条件 | spec → testcases → plan → implement | L2 |
|
|
485
|
+
| 架构设计不合理 | plan → implement | L2/L3 |
|
|
486
|
+
|
|
487
|
+
## 注意事项
|
|
488
|
+
|
|
489
|
+
1. **独立性**: 每个评审 Agent 必须拥有独立上下文,不能看到 Generator 的思考过程
|
|
490
|
+
2. **并行性**: 3 个 Agent 必须在同一条消息中并行派发,不能串行执行
|
|
491
|
+
3. **上下文注入**: 文档内容直接注入 Agent prompt,确保 Agent 独立上下文完整
|
|
492
|
+
4. **具体性**: 每个问题必须关联到具体文档条款和代码位置
|
|
493
|
+
5. **可操作性**: 每个问题必须给出修复建议,不仅仅是指出问题
|
|
494
|
+
6. **建设性**: 评审不仅要发现问题,也要肯定亮点和值得复用的模式
|
|
495
|
+
7. **效率**: 评审应聚焦于合约项和关键质量标准,不做过度审查
|
|
496
|
+
8. **人类主权**: 评审结果由人类审批,AI 不自行决定通过或失败
|
|
497
|
+
9. **共识优先**: ≥2 个 Agent 确认的问题优先级高于单 Agent 发现的问题
|
|
498
|
+
10. **技术栈适配**: 审查标准应结合项目实际技术栈和架构模式(参考 constitution.md)
|