6aspec 2.0.0-dev.10
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/.6aspec/rules/biz/api_rule.md +578 -0
- package/.6aspec/rules/biz/background_job_rule.md +719 -0
- package/.6aspec/rules/biz/c_user_system_rule.md +240 -0
- package/.6aspec/rules/biz/code.md +39 -0
- package/.6aspec/rules/biz/event_subscriber_rule.md +529 -0
- package/.6aspec/rules/biz/project-structure.md +90 -0
- package/.6aspec/rules/biz/scheduled_job_rule.md +850 -0
- package/.6aspec/rules/brown/brown_archive_sop.md +132 -0
- package/.6aspec/rules/brown/brown_constitution.md +20 -0
- package/.6aspec/rules/brown/brown_continue_sop.md +97 -0
- package/.6aspec/rules/brown/brown_design_sop.md +155 -0
- package/.6aspec/rules/brown/brown_ff_sop.md +194 -0
- package/.6aspec/rules/brown/brown_impact_sop.md +293 -0
- package/.6aspec/rules/brown/brown_implement_sop.md +133 -0
- package/.6aspec/rules/brown/brown_list_sop.md +69 -0
- package/.6aspec/rules/brown/brown_new_sop.md +257 -0
- package/.6aspec/rules/brown/brown_proposal_sop.md +160 -0
- package/.6aspec/rules/brown/brown_quick_sop.md +134 -0
- package/.6aspec/rules/brown/brown_review_sop.md +270 -0
- package/.6aspec/rules/brown/brown_rollback_sop.md +188 -0
- package/.6aspec/rules/brown/brown_specs_sop.md +228 -0
- package/.6aspec/rules/brown/brown_status_sop.md +135 -0
- package/.6aspec/rules/brown/brown_tasks_sop.md +202 -0
- package/.6aspec/rules/brown/brown_understand_sop.md +208 -0
- package/.6aspec/rules/brown/brown_verify_sop.md +360 -0
- package/.6aspec/rules/green/6A_archive_sop.md +301 -0
- package/.6aspec/rules/green/6A_clarify_sop.md +238 -0
- package/.6aspec/rules/green/6A_code_implementation_sop.md +110 -0
- package/.6aspec/rules/green/6A_constitution.md +52 -0
- package/.6aspec/rules/green/6A_continue_sop.md +186 -0
- package/.6aspec/rules/green/6A_design_sop.md +228 -0
- package/.6aspec/rules/green/6A_import_model_table_sop.md +120 -0
- package/.6aspec/rules/green/6A_init_event_list_sop.md +62 -0
- package/.6aspec/rules/green/6A_init_map_sop.md +79 -0
- package/.6aspec/rules/green/6A_model_sop.md +210 -0
- package/.6aspec/rules/green/6A_new_sop.md +319 -0
- package/.6aspec/rules/green/6A_rollback_sop.md +198 -0
- package/.6aspec/rules/green/6A_status_sop.md +275 -0
- package/.6aspec/rules/green/6A_tasks_sop.md +181 -0
- package/.6aspec/rules/green/6A_visual_logic_sop.md +121 -0
- package/.6aspec/rules/green/green_status_schema.md +293 -0
- package/.6aspec/script/create_entities_from_markdown.py +688 -0
- package/.claude/commands/6aspec/brown/archive.md +11 -0
- package/.claude/commands/6aspec/brown/continue.md +11 -0
- package/.claude/commands/6aspec/brown/design.md +11 -0
- package/.claude/commands/6aspec/brown/ff.md +11 -0
- package/.claude/commands/6aspec/brown/impact.md +11 -0
- package/.claude/commands/6aspec/brown/implement.md +11 -0
- package/.claude/commands/6aspec/brown/list.md +11 -0
- package/.claude/commands/6aspec/brown/new.md +11 -0
- package/.claude/commands/6aspec/brown/proposal.md +11 -0
- package/.claude/commands/6aspec/brown/quick.md +11 -0
- package/.claude/commands/6aspec/brown/review.md +11 -0
- package/.claude/commands/6aspec/brown/rollback.md +11 -0
- package/.claude/commands/6aspec/brown/specs.md +11 -0
- package/.claude/commands/6aspec/brown/status.md +11 -0
- package/.claude/commands/6aspec/brown/tasks.md +11 -0
- package/.claude/commands/6aspec/brown/understand.md +11 -0
- package/.claude/commands/6aspec/brown/verify.md +11 -0
- package/.claude/commands/6aspec/green/archive.md +8 -0
- package/.claude/commands/6aspec/green/clarify.md +13 -0
- package/.claude/commands/6aspec/green/continue.md +8 -0
- package/.claude/commands/6aspec/green/design.md +8 -0
- package/.claude/commands/6aspec/green/execute-task.md +20 -0
- package/.claude/commands/6aspec/green/import-model-table.md +8 -0
- package/.claude/commands/6aspec/green/init.md +14 -0
- package/.claude/commands/6aspec/green/model.md +12 -0
- package/.claude/commands/6aspec/green/new.md +13 -0
- package/.claude/commands/6aspec/green/rollback.md +8 -0
- package/.claude/commands/6aspec/green/status.md +8 -0
- package/.claude/commands/6aspec/green/tasks.md +8 -0
- package/.claude/commands/6aspec/green/visual-logic.md +9 -0
- package/.claude/settings.local.json +8 -0
- package/.cursor/commands/6aspec/brown/archive.md +9 -0
- package/.cursor/commands/6aspec/brown/continue.md +9 -0
- package/.cursor/commands/6aspec/brown/design.md +9 -0
- package/.cursor/commands/6aspec/brown/ff.md +9 -0
- package/.cursor/commands/6aspec/brown/impact.md +9 -0
- package/.cursor/commands/6aspec/brown/implement.md +9 -0
- package/.cursor/commands/6aspec/brown/list.md +9 -0
- package/.cursor/commands/6aspec/brown/new.md +9 -0
- package/.cursor/commands/6aspec/brown/proposal.md +9 -0
- package/.cursor/commands/6aspec/brown/quick.md +9 -0
- package/.cursor/commands/6aspec/brown/review.md +9 -0
- package/.cursor/commands/6aspec/brown/rollback.md +9 -0
- package/.cursor/commands/6aspec/brown/specs.md +9 -0
- package/.cursor/commands/6aspec/brown/status.md +9 -0
- package/.cursor/commands/6aspec/brown/tasks.md +9 -0
- package/.cursor/commands/6aspec/brown/understand.md +9 -0
- package/.cursor/commands/6aspec/brown/verify.md +9 -0
- package/.cursor/commands/6aspec/green/archive.md +9 -0
- package/.cursor/commands/6aspec/green/clarify.md +14 -0
- package/.cursor/commands/6aspec/green/continue.md +9 -0
- package/.cursor/commands/6aspec/green/design.md +9 -0
- package/.cursor/commands/6aspec/green/execute-task.md +21 -0
- package/.cursor/commands/6aspec/green/import-model-table.md +9 -0
- package/.cursor/commands/6aspec/green/init.md +15 -0
- package/.cursor/commands/6aspec/green/model.md +13 -0
- package/.cursor/commands/6aspec/green/new.md +14 -0
- package/.cursor/commands/6aspec/green/rollback.md +9 -0
- package/.cursor/commands/6aspec/green/status.md +9 -0
- package/.cursor/commands/6aspec/green/tasks.md +9 -0
- package/.cursor/commands/6aspec/green/visual-logic.md +10 -0
- package/README.en.md +36 -0
- package/README.md +146 -0
- package/bin/6a-spec-install +54 -0
- package/bin/6aspec +64 -0
- package/lib/cli.js +451 -0
- package/lib/installer.js +333 -0
- package/package.json +62 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# 棕地需求 - Review SOP
|
|
2
|
+
|
|
3
|
+
Phase 7: 实施后评估
|
|
4
|
+
|
|
5
|
+
**输入**:`/6aspec:brown:review` 后可选需求名称。
|
|
6
|
+
|
|
7
|
+
**注意**:此阶段通常在需求上线后 1 周或 1 个月执行,用于评估实施效果。
|
|
8
|
+
|
|
9
|
+
**步骤**
|
|
10
|
+
|
|
11
|
+
1. **选择需求并检查状态**
|
|
12
|
+
|
|
13
|
+
- 读取 `6aspecdoc/brown/<name>/status.json`
|
|
14
|
+
- 确认 `phases.verify` 为 "done"
|
|
15
|
+
- 如果未完成 Phase 6,提示先运行 `/6aspec:brown:verify`
|
|
16
|
+
|
|
17
|
+
2. **读取历史文档**
|
|
18
|
+
|
|
19
|
+
读取以下文档:
|
|
20
|
+
- `6aspecdoc/brown/<name>/requirement.md` - 原始需求
|
|
21
|
+
- `6aspecdoc/brown/<name>/artifacts/02-impact-analysis.md` - 预期影响
|
|
22
|
+
- `6aspecdoc/brown/<name>/artifacts/03-technical-design.md` - 技术方案
|
|
23
|
+
- `6aspecdoc/brown/<name>/artifacts/ADR-<name>.md` - 架构决策(P0)
|
|
24
|
+
|
|
25
|
+
3. **参考相关归档需求(可选)**
|
|
26
|
+
|
|
27
|
+
如果有相关的归档需求,可以参考其经验教训:
|
|
28
|
+
|
|
29
|
+
**如何参考**:
|
|
30
|
+
- 使用 `@` 手动加载归档需求的 `post-implementation-review.md`
|
|
31
|
+
- 例如:`@6aspecdoc/brown/.archived/2026-02-10-add-business-field/artifacts/06-post-implementation-review.md`
|
|
32
|
+
|
|
33
|
+
**应该参考的内容**:
|
|
34
|
+
- ✅ 经验教训:做得好的地方、需要改进的地方
|
|
35
|
+
- ✅ 最佳实践:可复用的方案和模式
|
|
36
|
+
- ✅ 关键成功因素:什么因素导致了成功或失败
|
|
37
|
+
- ✅ 改进建议:对未来类似需求的建议
|
|
38
|
+
|
|
39
|
+
**不应该参考的内容**:
|
|
40
|
+
- ❌ 技术方案:代码可能已经演进,历史方案可能已过时
|
|
41
|
+
- ❌ 影响面分析:当前代码状态可能已经不同
|
|
42
|
+
- ❌ 具体实现细节:应该基于当前代码,而不是历史文档
|
|
43
|
+
|
|
44
|
+
**为什么这样做**:
|
|
45
|
+
- 代码是唯一的事实来源,会随着需求演进而变化
|
|
46
|
+
- 归档文档是历史快照,不会更新
|
|
47
|
+
- 经验教训是跨时间有效的,但技术方案是时间敏感的
|
|
48
|
+
|
|
49
|
+
4. **收集评估数据**
|
|
50
|
+
|
|
51
|
+
收集以下信息:
|
|
52
|
+
|
|
53
|
+
**技术指标**:
|
|
54
|
+
- 性能是否符合预期?
|
|
55
|
+
- 是否产生新的 bug?
|
|
56
|
+
- 技术债务是否可控?
|
|
57
|
+
|
|
58
|
+
**业务指标**:
|
|
59
|
+
- 是否解决了业务问题?
|
|
60
|
+
- 用户反馈如何?
|
|
61
|
+
- 是否需要调整?
|
|
62
|
+
|
|
63
|
+
**架构决策回顾**(P0 需求):
|
|
64
|
+
- 当初的架构决策是否正确?
|
|
65
|
+
- 有哪些经验教训?
|
|
66
|
+
- 需要更新 ADR 吗?
|
|
67
|
+
|
|
68
|
+
4. **生成评估报告**
|
|
69
|
+
|
|
70
|
+
创建 `6aspecdoc/brown/<name>/artifacts/06-post-implementation-review.md`:
|
|
71
|
+
```markdown
|
|
72
|
+
# Phase 7: 实施后评估
|
|
73
|
+
|
|
74
|
+
> **需求**: <name>
|
|
75
|
+
> **阶段**: Phase 7 - 实施后评估
|
|
76
|
+
> **状态**: ✅ 已完成
|
|
77
|
+
> **评估时间**: <timestamp>
|
|
78
|
+
> **上线时间**: <timestamp>
|
|
79
|
+
> **评估周期**: 上线后 <X> 周/月
|
|
80
|
+
|
|
81
|
+
## 评估概览
|
|
82
|
+
|
|
83
|
+
| 维度 | 评分 | 说明 |
|
|
84
|
+
|------|------|------|
|
|
85
|
+
| 技术指标 | ⭐⭐⭐⭐⭐ | <说明> |
|
|
86
|
+
| 业务指标 | ⭐⭐⭐⭐⭐ | <说明> |
|
|
87
|
+
| 用户满意度 | ⭐⭐⭐⭐⭐ | <说明> |
|
|
88
|
+
| 总体评价 | ⭐⭐⭐⭐⭐ | <说明> |
|
|
89
|
+
|
|
90
|
+
## 1. 技术指标评估
|
|
91
|
+
|
|
92
|
+
### 1.1 性能指标
|
|
93
|
+
|
|
94
|
+
| 指标 | 预期 | 实际 | 评估 |
|
|
95
|
+
|------|------|------|------|
|
|
96
|
+
| 响应时间 | <预期值> | <实际值> | ✅ 符合 / ⚠️ 偏差 / ❌ 不符合 |
|
|
97
|
+
| QPS | <预期值> | <实际值> | ✅ 符合 / ⚠️ 偏差 / ❌ 不符合 |
|
|
98
|
+
| 错误率 | <预期值> | <实际值> | ✅ 符合 / ⚠️ 偏差 / ❌ 不符合 |
|
|
99
|
+
|
|
100
|
+
### 1.2 稳定性
|
|
101
|
+
|
|
102
|
+
- 是否产生新的 bug:✅ 否 / ⚠️ 少量 / ❌ 较多
|
|
103
|
+
- Bug 列表(如有):
|
|
104
|
+
- BUG-001: <描述>
|
|
105
|
+
- BUG-002: <描述>
|
|
106
|
+
|
|
107
|
+
### 1.3 技术债务
|
|
108
|
+
|
|
109
|
+
- 技术债务是否可控:✅ 是 / ⚠️ 部分 / ❌ 否
|
|
110
|
+
- 新增技术债务:
|
|
111
|
+
- DEBT-XXX: <描述>
|
|
112
|
+
- 已偿还技术债务:
|
|
113
|
+
- DEBT-XXX: <描述>
|
|
114
|
+
|
|
115
|
+
## 2. 业务指标评估
|
|
116
|
+
|
|
117
|
+
### 2.1 业务目标达成
|
|
118
|
+
|
|
119
|
+
| 业务目标 | 预期 | 实际 | 评估 |
|
|
120
|
+
|----------|------|------|------|
|
|
121
|
+
| <目标1> | <预期> | <实际> | ✅ 达成 / ⚠️ 部分达成 / ❌ 未达成 |
|
|
122
|
+
| <目标2> | <预期> | <实际> | ✅ 达成 / ⚠️ 部分达成 / ❌ 未达成 |
|
|
123
|
+
|
|
124
|
+
### 2.2 用户反馈
|
|
125
|
+
|
|
126
|
+
- 正面反馈:
|
|
127
|
+
- <反馈1>
|
|
128
|
+
- <反馈2>
|
|
129
|
+
|
|
130
|
+
- 负面反馈:
|
|
131
|
+
- <反馈1>
|
|
132
|
+
- <反馈2>
|
|
133
|
+
|
|
134
|
+
- 改进建议:
|
|
135
|
+
- <建议1>
|
|
136
|
+
- <建议2>
|
|
137
|
+
|
|
138
|
+
### 2.3 是否需要调整
|
|
139
|
+
|
|
140
|
+
- ✅ 不需要调整,符合预期
|
|
141
|
+
- ⚠️ 需要小幅调整
|
|
142
|
+
- ❌ 需要重大调整
|
|
143
|
+
|
|
144
|
+
调整计划(如需要):
|
|
145
|
+
<调整计划>
|
|
146
|
+
|
|
147
|
+
## 3. 架构决策回顾(P0 需求)
|
|
148
|
+
|
|
149
|
+
### 3.1 决策回顾
|
|
150
|
+
|
|
151
|
+
回顾 ADR-<name>.md 中的架构决策:
|
|
152
|
+
|
|
153
|
+
| 决策 | 当时的理由 | 实际效果 | 评估 |
|
|
154
|
+
|------|-----------|----------|------|
|
|
155
|
+
| <决策1> | <理由> | <效果> | ✅ 正确 / ⚠️ 部分正确 / ❌ 错误 |
|
|
156
|
+
|
|
157
|
+
### 3.2 经验教训
|
|
158
|
+
|
|
159
|
+
**做得好的地方**:
|
|
160
|
+
- <经验1>
|
|
161
|
+
- <经验2>
|
|
162
|
+
|
|
163
|
+
**需要改进的地方**:
|
|
164
|
+
- <教训1>
|
|
165
|
+
- <教训2>
|
|
166
|
+
|
|
167
|
+
### 3.3 ADR 更新
|
|
168
|
+
|
|
169
|
+
- ✅ 需要更新 ADR
|
|
170
|
+
- ❌ 不需要更新
|
|
171
|
+
|
|
172
|
+
更新内容(如需要):
|
|
173
|
+
<更新内容>
|
|
174
|
+
|
|
175
|
+
## 4. 知识沉淀
|
|
176
|
+
|
|
177
|
+
### 4.1 最佳实践
|
|
178
|
+
|
|
179
|
+
从本次需求实施中总结的最佳实践:
|
|
180
|
+
- <实践1>
|
|
181
|
+
- <实践2>
|
|
182
|
+
|
|
183
|
+
### 4.2 可复用方案
|
|
184
|
+
|
|
185
|
+
可以在其他需求中复用的方案:
|
|
186
|
+
- <方案1>
|
|
187
|
+
- <方案2>
|
|
188
|
+
|
|
189
|
+
### 4.3 文档更新
|
|
190
|
+
|
|
191
|
+
需要更新的文档:
|
|
192
|
+
- [ ] 架构文档
|
|
193
|
+
- [ ] 开发规范
|
|
194
|
+
- [ ] 最佳实践库
|
|
195
|
+
|
|
196
|
+
### 4.4 知识分享
|
|
197
|
+
|
|
198
|
+
- [ ] 技术分享会
|
|
199
|
+
- [ ] 技术博客
|
|
200
|
+
- [ ] 团队培训
|
|
201
|
+
|
|
202
|
+
## 5. 总结
|
|
203
|
+
|
|
204
|
+
### 5.1 总体评价
|
|
205
|
+
|
|
206
|
+
<总体评价>
|
|
207
|
+
|
|
208
|
+
### 5.2 关键成功因素
|
|
209
|
+
|
|
210
|
+
- <因素1>
|
|
211
|
+
- <因素2>
|
|
212
|
+
|
|
213
|
+
### 5.3 改进建议
|
|
214
|
+
|
|
215
|
+
对未来类似需求的建议:
|
|
216
|
+
- <建议1>
|
|
217
|
+
- <建议2>
|
|
218
|
+
|
|
219
|
+
## 6. 下一步
|
|
220
|
+
|
|
221
|
+
运行 `/6aspec:brown:archive` 归档此需求。
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
5. **更新状态**
|
|
225
|
+
|
|
226
|
+
更新 `status.json`:
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"status": "completed",
|
|
230
|
+
"phases": {
|
|
231
|
+
...
|
|
232
|
+
"review": "done"
|
|
233
|
+
},
|
|
234
|
+
"completedAt": "<timestamp>"
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**输出**
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
## Phase 7 完成:实施后评估
|
|
242
|
+
|
|
243
|
+
**需求**: <name>
|
|
244
|
+
**进度**: 7/7 阶段完成 ✅
|
|
245
|
+
|
|
246
|
+
### 评估结果
|
|
247
|
+
- 技术指标:⭐⭐⭐⭐⭐
|
|
248
|
+
- 业务指标:⭐⭐⭐⭐⭐
|
|
249
|
+
- 用户满意度:⭐⭐⭐⭐⭐
|
|
250
|
+
- 总体评价:⭐⭐⭐⭐⭐
|
|
251
|
+
|
|
252
|
+
### 关键发现
|
|
253
|
+
<列出关键发现>
|
|
254
|
+
|
|
255
|
+
### 经验教训
|
|
256
|
+
<列出经验教训>
|
|
257
|
+
|
|
258
|
+
### 文档位置
|
|
259
|
+
6aspecdoc/brown/<name>/artifacts/06-post-implementation-review.md
|
|
260
|
+
|
|
261
|
+
### 下一步
|
|
262
|
+
所有阶段已完成!运行 `/6aspec:brown:archive` 归档此需求。
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**防护措施**
|
|
266
|
+
- 必须先完成 Phase 6
|
|
267
|
+
- 评估必须基于实际数据,不能主观臆断
|
|
268
|
+
- 必须收集用户反馈
|
|
269
|
+
- P0 需求必须回顾架构决策
|
|
270
|
+
- 必须进行知识沉淀
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# 棕地需求 - Rollback SOP
|
|
2
|
+
|
|
3
|
+
回退到上一个阶段,删除当前阶段生成的文件并更新状态。
|
|
4
|
+
|
|
5
|
+
**输入**:`/6aspec:brown:rollback` 后可选需求名称。
|
|
6
|
+
|
|
7
|
+
**适用场景**:
|
|
8
|
+
- 发现前面阶段的分析有误或不完整
|
|
9
|
+
- 需要修改前面阶段的产出
|
|
10
|
+
- 希望重新执行某个阶段
|
|
11
|
+
|
|
12
|
+
**限制**:
|
|
13
|
+
- 只能一级一级往上退,不允许跨节点
|
|
14
|
+
- 只能回退已完成的阶段(状态为 "done")
|
|
15
|
+
- 不能回退第一个阶段(proposal/understand)
|
|
16
|
+
- 已归档的需求不能回退
|
|
17
|
+
|
|
18
|
+
**步骤**
|
|
19
|
+
|
|
20
|
+
1. **选择需求**
|
|
21
|
+
|
|
22
|
+
如果提供了名称,使用它。否则:
|
|
23
|
+
- 从对话上下文推断
|
|
24
|
+
- 如果模糊,读取 `6aspecdoc/brown/` 目录,让用户选择
|
|
25
|
+
|
|
26
|
+
2. **检查当前状态**
|
|
27
|
+
|
|
28
|
+
读取 `6aspecdoc/brown/<name>/status.json`:
|
|
29
|
+
- 确认需求未归档
|
|
30
|
+
- 确认 `flowDepth`(流程深度)
|
|
31
|
+
- 找到当前已完成的最后一个阶段
|
|
32
|
+
|
|
33
|
+
3. **确定回退目标**
|
|
34
|
+
|
|
35
|
+
根据流程深度和当前阶段,确定上一个阶段:
|
|
36
|
+
|
|
37
|
+
**轻量级流程(lightweight)**:
|
|
38
|
+
- design → proposal
|
|
39
|
+
- tasks → design
|
|
40
|
+
- implement → tasks
|
|
41
|
+
|
|
42
|
+
**标准级流程(standard)**:
|
|
43
|
+
- specs → understand
|
|
44
|
+
- impact → specs
|
|
45
|
+
- design → impact
|
|
46
|
+
- tasks → design
|
|
47
|
+
- implement → tasks
|
|
48
|
+
|
|
49
|
+
**完整级流程(complete)**:
|
|
50
|
+
- specs → understand
|
|
51
|
+
- impact → specs
|
|
52
|
+
- design → impact
|
|
53
|
+
- tasks → design
|
|
54
|
+
- implement → tasks
|
|
55
|
+
- verify → implement
|
|
56
|
+
- review → verify
|
|
57
|
+
|
|
58
|
+
**边界情况**:
|
|
59
|
+
- 如果当前在第一个阶段(proposal/understand),提示无法回退
|
|
60
|
+
- 如果所有阶段都是 pending,提示没有可回退的阶段
|
|
61
|
+
|
|
62
|
+
4. **确认回退操作**
|
|
63
|
+
|
|
64
|
+
询问用户确认:
|
|
65
|
+
```
|
|
66
|
+
问题:"确认回退操作?"
|
|
67
|
+
说明:
|
|
68
|
+
- 当前阶段:<current-phase>
|
|
69
|
+
- 回退到:<previous-phase>
|
|
70
|
+
- 将删除的文件:<files-to-delete>
|
|
71
|
+
|
|
72
|
+
选项:
|
|
73
|
+
- 确认回退
|
|
74
|
+
- 取消
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
如果用户选择"取消",停止执行。
|
|
78
|
+
|
|
79
|
+
5. **删除当前阶段生成的文件**
|
|
80
|
+
|
|
81
|
+
根据当前阶段删除对应的文件:
|
|
82
|
+
|
|
83
|
+
**proposal**:
|
|
84
|
+
- `artifacts/proposal.md`
|
|
85
|
+
|
|
86
|
+
**understand**:
|
|
87
|
+
- `artifacts/understanding.md`
|
|
88
|
+
|
|
89
|
+
**specs**:
|
|
90
|
+
- `artifacts/specs.md`
|
|
91
|
+
|
|
92
|
+
**impact**:
|
|
93
|
+
- `artifacts/impact-analysis.md`
|
|
94
|
+
|
|
95
|
+
**design**:
|
|
96
|
+
- `artifacts/design.md`
|
|
97
|
+
- `artifacts/ADR-*.md`(如果有)
|
|
98
|
+
|
|
99
|
+
**tasks**:
|
|
100
|
+
- `artifacts/tasks.md`
|
|
101
|
+
- `tasks/*.md`(所有任务文件)
|
|
102
|
+
|
|
103
|
+
**verify**:
|
|
104
|
+
- `artifacts/verification-report.md`
|
|
105
|
+
|
|
106
|
+
**review**:
|
|
107
|
+
- `artifacts/post-implementation-review.md`
|
|
108
|
+
|
|
109
|
+
使用 bash 命令删除文件:
|
|
110
|
+
```bash
|
|
111
|
+
rm -f 6aspecdoc/brown/<name>/artifacts/<file>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
6. **更新状态**
|
|
115
|
+
|
|
116
|
+
更新 `6aspecdoc/brown/<name>/status.json`:
|
|
117
|
+
|
|
118
|
+
a. 将当前阶段的状态从 "done" 改为 "pending"
|
|
119
|
+
|
|
120
|
+
b. 将上一个阶段的状态保持 "done"(不变)
|
|
121
|
+
|
|
122
|
+
c. 将当前阶段之后的所有阶段状态保持 "blocked"
|
|
123
|
+
|
|
124
|
+
d. 更新 status 字段为 "<current-phase>_pending"
|
|
125
|
+
|
|
126
|
+
e. 从 artifacts 数组中移除当前阶段的文件名
|
|
127
|
+
|
|
128
|
+
f. 更新 lastModified 时间戳
|
|
129
|
+
|
|
130
|
+
示例(从 tasks 回退,回到 design 完成的状态):
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"name": "example",
|
|
134
|
+
"flowDepth": "standard",
|
|
135
|
+
"status": "tasks_pending",
|
|
136
|
+
"createdAt": "2026-02-15T10:00:00Z",
|
|
137
|
+
"lastModified": "2026-02-15T10:30:00Z",
|
|
138
|
+
"phases": {
|
|
139
|
+
"understand": "done",
|
|
140
|
+
"specs": "done",
|
|
141
|
+
"impact": "done",
|
|
142
|
+
"design": "done",
|
|
143
|
+
"tasks": "pending",
|
|
144
|
+
"implement": "blocked"
|
|
145
|
+
},
|
|
146
|
+
"artifacts": ["understanding.md", "specs.md", "impact-analysis.md", "design.md"]
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
7. **显示回退结果**
|
|
151
|
+
|
|
152
|
+
**输出**
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
## 回退成功:<name>
|
|
156
|
+
|
|
157
|
+
**流程深度**: <flowDepth>
|
|
158
|
+
**回退前阶段**: <current-phase>
|
|
159
|
+
**回退后阶段**: <previous-phase>
|
|
160
|
+
|
|
161
|
+
### 已删除的文件
|
|
162
|
+
- <file1>
|
|
163
|
+
- <file2>
|
|
164
|
+
- ...
|
|
165
|
+
|
|
166
|
+
### 当前状态
|
|
167
|
+
- <previous-phase>: done(已完成)
|
|
168
|
+
- <current-phase>: pending(待重新执行)
|
|
169
|
+
|
|
170
|
+
### 下一步
|
|
171
|
+
运行 `/6aspec:brown:<current-phase>` 重新执行该阶段,或运行 `/6aspec:brown:continue` 自动进入下一阶段。
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**防护措施**
|
|
175
|
+
- 必须确认需求未归档
|
|
176
|
+
- 必须确认当前阶段已完成(状态为 "done")
|
|
177
|
+
- 不能回退第一个阶段
|
|
178
|
+
- 必须用户确认后才能执行回退
|
|
179
|
+
- 删除文件前检查文件是否存在
|
|
180
|
+
- 更新状态时保持一致性
|
|
181
|
+
|
|
182
|
+
**错误处理**
|
|
183
|
+
|
|
184
|
+
- 如果需求不存在,提示创建新需求
|
|
185
|
+
- 如果需求已归档,提示先取消归档
|
|
186
|
+
- 如果当前在第一个阶段,提示无法回退
|
|
187
|
+
- 如果所有阶段都是 pending,提示没有可回退的阶段
|
|
188
|
+
- 如果文件删除失败,提示错误信息但继续更新状态
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# 棕地需求 - Specs SOP
|
|
2
|
+
|
|
3
|
+
Phase 1.5: 需求规格定义
|
|
4
|
+
|
|
5
|
+
**输入**:`/6aspec:brown:specs` 后可选需求名称。
|
|
6
|
+
|
|
7
|
+
**适用流程**:标准级、完整级
|
|
8
|
+
|
|
9
|
+
**步骤**
|
|
10
|
+
|
|
11
|
+
1. **选择需求并检查状态**
|
|
12
|
+
|
|
13
|
+
- 读取 `6aspecdoc/brown/<name>/status.json`
|
|
14
|
+
- 确认 `phases.understand` 为 "done"
|
|
15
|
+
- 如果未完成 Phase 1,提示先运行 `/6aspec:brown:understand`
|
|
16
|
+
- 确认流程深度为 "standard" 或 "complete"
|
|
17
|
+
- 如果是 "lightweight",提示应该使用 `/6aspec:brown:proposal`
|
|
18
|
+
|
|
19
|
+
2. **读取前置文档**
|
|
20
|
+
|
|
21
|
+
- `6aspecdoc/brown/<name>/requirement.md`
|
|
22
|
+
- `6aspecdoc/brown/<name>/artifacts/01-understanding.md`
|
|
23
|
+
|
|
24
|
+
3. **读取问题答案**
|
|
25
|
+
|
|
26
|
+
从 understanding.md 中读取"待明确问题清单"及用户的答案:
|
|
27
|
+
|
|
28
|
+
- 检查问题清单中哪些问题已经有答案(标记为具体值而非"[待确认]")
|
|
29
|
+
- 如果有未回答的问题,提示用户这些问题需要明确,但不阻塞 specs 阶段
|
|
30
|
+
- 基于已有的答案和现状分析,开始定义需求规格
|
|
31
|
+
|
|
32
|
+
注意:specs 阶段不再提出新问题,所有需求问题应该在 understand 阶段提出并收集。
|
|
33
|
+
|
|
34
|
+
4. **定义功能需求**
|
|
35
|
+
|
|
36
|
+
基于需求理解和问题答案,明确定义系统应该具备的能力:
|
|
37
|
+
|
|
38
|
+
**功能需求格式**:
|
|
39
|
+
- FR-001: <功能描述>
|
|
40
|
+
- 输入:<输入内容>
|
|
41
|
+
- 输出:<输出内容>
|
|
42
|
+
- 业务规则:<业务规则>
|
|
43
|
+
- 验收标准:<验收标准>
|
|
44
|
+
|
|
45
|
+
**拆解原则**:
|
|
46
|
+
- 每个功能需求应该是独立的、可验证的
|
|
47
|
+
- 功能需求应该从用户视角描述(做什么,而不是怎么做)
|
|
48
|
+
- 避免技术实现细节(技术细节放在 design 阶段)
|
|
49
|
+
|
|
50
|
+
5. **定义非功能需求**
|
|
51
|
+
|
|
52
|
+
明确系统应该满足的质量标准:
|
|
53
|
+
|
|
54
|
+
- NFR-001: 性能需求(响应时间、并发量等)
|
|
55
|
+
- NFR-002: 安全需求(权限控制、数据加密等)
|
|
56
|
+
- NFR-003: 可用性需求(易用性、可维护性等)
|
|
57
|
+
- NFR-004: 兼容性需求(浏览器、数据库等)
|
|
58
|
+
|
|
59
|
+
6. **定义范围和约束**
|
|
60
|
+
|
|
61
|
+
明确做什么、不做什么:
|
|
62
|
+
|
|
63
|
+
**范围定义**:
|
|
64
|
+
- 包含:<明确包含的功能>
|
|
65
|
+
- 不包含:<明确不包含的功能>
|
|
66
|
+
|
|
67
|
+
**约束条件**:
|
|
68
|
+
- 技术约束:<技术上的限制>
|
|
69
|
+
- 业务约束:<业务上的限制>
|
|
70
|
+
- 时间约束:<时间上的限制>
|
|
71
|
+
|
|
72
|
+
7. **定义验收标准**
|
|
73
|
+
|
|
74
|
+
明确如何验证需求已经实现:
|
|
75
|
+
|
|
76
|
+
- AC-001: <功能验收标准>
|
|
77
|
+
- AC-002: <非功能验收标准>
|
|
78
|
+
- AC-003: <数据验收标准>
|
|
79
|
+
|
|
80
|
+
8. **创建需求规格文档**
|
|
81
|
+
|
|
82
|
+
创建 `6aspecdoc/brown/<name>/artifacts/01.5-specs.md`:
|
|
83
|
+
```markdown
|
|
84
|
+
# Phase 1.5: 需求规格定义
|
|
85
|
+
|
|
86
|
+
> **需求**: <name>
|
|
87
|
+
> **阶段**: Phase 1.5 - 需求规格
|
|
88
|
+
> **状态**: ✅ 已完成
|
|
89
|
+
> **完成时间**: <timestamp>
|
|
90
|
+
|
|
91
|
+
## 1. 需求概述
|
|
92
|
+
|
|
93
|
+
### 1.1 业务目标
|
|
94
|
+
<为什么需要这个功能>
|
|
95
|
+
|
|
96
|
+
### 1.2 使用场景
|
|
97
|
+
<谁用、什么时候用、怎么用>
|
|
98
|
+
|
|
99
|
+
### 1.3 范围定义
|
|
100
|
+
**包含**:
|
|
101
|
+
- <明确包含的功能>
|
|
102
|
+
|
|
103
|
+
**不包含**:
|
|
104
|
+
- <明确不包含的功能>
|
|
105
|
+
|
|
106
|
+
## 2. 功能需求
|
|
107
|
+
|
|
108
|
+
### FR-001: <功能名称>
|
|
109
|
+
**描述**:<功能描述>
|
|
110
|
+
|
|
111
|
+
**输入**:
|
|
112
|
+
- <输入内容>
|
|
113
|
+
|
|
114
|
+
**输出**:
|
|
115
|
+
- <输出内容>
|
|
116
|
+
|
|
117
|
+
**业务规则**:
|
|
118
|
+
- <业务规则1>
|
|
119
|
+
- <业务规则2>
|
|
120
|
+
|
|
121
|
+
**验收标准**:
|
|
122
|
+
- <验收标准1>
|
|
123
|
+
- <验收标准2>
|
|
124
|
+
|
|
125
|
+
### FR-002: <功能名称>
|
|
126
|
+
...
|
|
127
|
+
|
|
128
|
+
## 3. 非功能需求
|
|
129
|
+
|
|
130
|
+
### 3.1 性能需求
|
|
131
|
+
- NFR-001: <性能要求>
|
|
132
|
+
|
|
133
|
+
### 3.2 安全需求
|
|
134
|
+
- NFR-002: <安全要求>
|
|
135
|
+
|
|
136
|
+
### 3.3 可用性需求
|
|
137
|
+
- NFR-003: <可用性要求>
|
|
138
|
+
|
|
139
|
+
### 3.4 兼容性需求
|
|
140
|
+
- NFR-004: <兼容性要求>
|
|
141
|
+
|
|
142
|
+
## 4. 约束条件
|
|
143
|
+
|
|
144
|
+
### 4.1 技术约束
|
|
145
|
+
- <技术上的限制>
|
|
146
|
+
|
|
147
|
+
### 4.2 业务约束
|
|
148
|
+
- <业务上的限制>
|
|
149
|
+
|
|
150
|
+
### 4.3 时间约束
|
|
151
|
+
- <时间上的限制>
|
|
152
|
+
|
|
153
|
+
## 5. 验收标准
|
|
154
|
+
|
|
155
|
+
### 5.1 功能验收
|
|
156
|
+
- AC-001: <功能验收标准>
|
|
157
|
+
- AC-002: <功能验收标准>
|
|
158
|
+
|
|
159
|
+
### 5.2 非功能验收
|
|
160
|
+
- AC-003: <非功能验收标准>
|
|
161
|
+
- AC-004: <非功能验收标准>
|
|
162
|
+
|
|
163
|
+
### 5.3 数据验收
|
|
164
|
+
- AC-005: <数据验收标准>
|
|
165
|
+
|
|
166
|
+
## 6. 下一步
|
|
167
|
+
|
|
168
|
+
运行 `/6aspec:brown:impact` 进行影响面分析。
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
9. **更新状态**
|
|
172
|
+
|
|
173
|
+
更新 `6aspecdoc/brown/<name>/status.json`:
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"status": "impact_pending",
|
|
177
|
+
"phases": {
|
|
178
|
+
"understand": "done",
|
|
179
|
+
"specs": "done",
|
|
180
|
+
"impact": "pending",
|
|
181
|
+
...
|
|
182
|
+
},
|
|
183
|
+
"artifacts": ["01-understanding.md", "01.5-specs.md"]
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**输出**
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
## Phase 1.5 完成:需求规格定义
|
|
191
|
+
|
|
192
|
+
**需求**: <name>
|
|
193
|
+
**进度**: 2/8 阶段完成(标准级)或 2/9 阶段完成(完整级)
|
|
194
|
+
|
|
195
|
+
### 需求概要
|
|
196
|
+
- 功能需求:<数量> 个
|
|
197
|
+
- 非功能需求:<数量> 个
|
|
198
|
+
- 验收标准:<数量> 个
|
|
199
|
+
|
|
200
|
+
### 核心功能
|
|
201
|
+
<列出 2-3 个核心功能需求>
|
|
202
|
+
|
|
203
|
+
### 关键约束
|
|
204
|
+
<列出 1-2 个关键约束>
|
|
205
|
+
|
|
206
|
+
### 文档位置
|
|
207
|
+
6aspecdoc/brown/<name>/artifacts/01.5-specs.md
|
|
208
|
+
|
|
209
|
+
### 下一步
|
|
210
|
+
- 直接回复补充或修正需求规格 → 我会更新本阶段文档(01.5-specs.md)
|
|
211
|
+
- 运行 `/6aspec:brown:impact` → 进入影响面分析阶段
|
|
212
|
+
- 运行 `/6aspec:brown:continue` → 自动进入下一阶段
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**用户补充信息时的处理**
|
|
216
|
+
|
|
217
|
+
当用户补充需求细节、修正功能需求时(未使用阶段命令):
|
|
218
|
+
1. 将用户的补充整合到 `01.5-specs.md` 的对应章节(功能需求、非功能需求、验收标准等)
|
|
219
|
+
2. 展示变更摘要
|
|
220
|
+
3. 再次提示:可以继续补充,或通过命令进入下一阶段
|
|
221
|
+
4. **禁止**:不得自动进入下一阶段
|
|
222
|
+
|
|
223
|
+
**防护措施**
|
|
224
|
+
- 必须先完成 Phase 1(understand)
|
|
225
|
+
- 只适用于标准级和完整级流程
|
|
226
|
+
- 功能需求必须从用户视角描述,避免技术实现细节
|
|
227
|
+
- 验收标准必须具体、可验证
|
|
228
|
+
- 需求问题的答案应该体现在功能需求定义中,而不是单独列出
|