6a-spec-install 1.0.7 → 1.0.8-dev.2

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.
Files changed (70) hide show
  1. package/.6aspec/rules/green/6A_archive_sop.md +301 -0
  2. package/.6aspec/rules/green/6A_clarify_sop.md +229 -0
  3. package/.6aspec/rules/green/6A_code_implementation_sop.md +110 -0
  4. package/.6aspec/rules/green/6A_continue_sop.md +186 -0
  5. package/.6aspec/rules/{6A/6A_new_feature_sop.md → green/6A_design_sop.md} +50 -22
  6. package/.6aspec/rules/{6A → green}/6A_import_model_table_sop.md +5 -5
  7. package/.6aspec/rules/{6A → green}/6A_init_event_list_sop.md +1 -1
  8. package/.6aspec/rules/{6A → green}/6A_init_map_sop.md +2 -2
  9. package/.6aspec/rules/{6A → green}/6A_model_sop.md +54 -9
  10. package/.6aspec/rules/green/6A_new_sop.md +319 -0
  11. package/.6aspec/rules/green/6A_status_sop.md +275 -0
  12. package/.6aspec/rules/{6A/6A_task_sop.md → green/6A_tasks_sop.md} +37 -16
  13. package/.6aspec/rules/{6A → green}/6A_visual_logic_sop.md +7 -7
  14. package/.6aspec/rules/green/green_status_schema.md +280 -0
  15. package/.claude/commands/6aspec/green/archive.md +8 -0
  16. package/.claude/commands/6aspec/green/clarify.md +13 -0
  17. package/.claude/commands/6aspec/green/continue.md +8 -0
  18. package/.claude/commands/6aspec/green/design.md +8 -0
  19. package/.claude/commands/{6A/6A-execute-task.md → 6aspec/green/execute-task.md} +3 -3
  20. package/.claude/commands/6aspec/green/import-model-table.md +8 -0
  21. package/.claude/commands/{6A/6A-init.md → 6aspec/green/init.md} +2 -2
  22. package/.claude/commands/{6A/6A-model.md → 6aspec/green/model.md} +4 -4
  23. package/.claude/commands/6aspec/green/new.md +13 -0
  24. package/.claude/commands/6aspec/green/status.md +8 -0
  25. package/.claude/commands/6aspec/green/tasks.md +8 -0
  26. package/.claude/commands/6aspec/green/visual-logic.md +9 -0
  27. package/.claude/commands/opsx/apply.md +152 -0
  28. package/.claude/commands/opsx/archive.md +157 -0
  29. package/.claude/commands/opsx/bulk-archive.md +242 -0
  30. package/.claude/commands/opsx/continue.md +114 -0
  31. package/.claude/commands/opsx/explore.md +174 -0
  32. package/.claude/commands/opsx/ff.md +94 -0
  33. package/.claude/commands/opsx/new.md +69 -0
  34. package/.claude/commands/opsx/onboard.md +525 -0
  35. package/.claude/commands/opsx/sync.md +134 -0
  36. package/.claude/commands/opsx/verify.md +164 -0
  37. package/.claude/settings.local.json +8 -0
  38. package/.claude/skills/openspec-apply-change/SKILL.md +156 -0
  39. package/.claude/skills/openspec-archive-change/SKILL.md +114 -0
  40. package/.claude/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  41. package/.claude/skills/openspec-continue-change/SKILL.md +118 -0
  42. package/.claude/skills/openspec-explore/SKILL.md +290 -0
  43. package/.claude/skills/openspec-ff-change/SKILL.md +101 -0
  44. package/.claude/skills/openspec-new-change/SKILL.md +74 -0
  45. package/.claude/skills/openspec-onboard/SKILL.md +529 -0
  46. package/.claude/skills/openspec-sync-specs/SKILL.md +138 -0
  47. package/.claude/skills/openspec-verify-change/SKILL.md +168 -0
  48. package/.cursor/commands/6aspec/green/archive.md +9 -0
  49. package/.cursor/commands/6aspec/green/clarify.md +14 -0
  50. package/.cursor/commands/6aspec/green/continue.md +9 -0
  51. package/.cursor/commands/6aspec/green/design.md +9 -0
  52. package/.cursor/commands/{6A-execute-task.md → 6aspec/green/execute-task.md} +3 -3
  53. package/.cursor/commands/6aspec/green/import-model-table.md +9 -0
  54. package/.cursor/commands/{6A-init.md → 6aspec/green/init.md} +2 -2
  55. package/.cursor/commands/{6A-model.md → 6aspec/green/model.md} +4 -4
  56. package/.cursor/commands/6aspec/green/new.md +14 -0
  57. package/.cursor/commands/6aspec/green/status.md +9 -0
  58. package/.cursor/commands/6aspec/green/tasks.md +9 -0
  59. package/.cursor/commands/6aspec/green/visual-logic.md +10 -0
  60. package/package.json +1 -1
  61. package/.6aspec/rules/6A/6A_code_implementation_sop.md +0 -89
  62. package/.claude/commands/6A/6A-import-model-table.md +0 -8
  63. package/.claude/commands/6A/6A-new.md +0 -8
  64. package/.claude/commands/6A/6A-task.md +0 -8
  65. package/.claude/commands/6A/6A-visual-logic.md +0 -10
  66. package/.cursor/commands/6A-import-model-table.md +0 -9
  67. package/.cursor/commands/6A-new.md +0 -9
  68. package/.cursor/commands/6A-task.md +0 -9
  69. package/.cursor/commands/6A-visual-logic.md +0 -11
  70. /package/.6aspec/rules/{6A → green}/6A_constitution.md +0 -0
@@ -0,0 +1,301 @@
1
+ # 绿地需求归档 SOP
2
+
3
+ ## 目标
4
+
5
+ 归档已完成的绿地需求,将需求目录移动到归档位置,并更新状态。
6
+
7
+ ## 前置条件
8
+
9
+ - 需求的所有工件已完成
10
+ - 需求的所有任务已完成
11
+ - 需求状态为 `completed`
12
+
13
+ ## 执行步骤
14
+
15
+ ### Step 1: 检测当前需求
16
+
17
+ **1.1 检查是否在需求目录下**
18
+
19
+ 检查当前工作目录是否在 `6aspec/green/<feature-name>/` 下:
20
+
21
+ ```bash
22
+ pwd
23
+ ```
24
+
25
+ 如果在需求目录下,自动识别需求名称(从路径中提取)。
26
+
27
+ **1.2 如果不在需求目录下,列出所有可归档的需求**
28
+
29
+ ```bash
30
+ find 6aspec/green -maxdepth 2 -name ".green-status.json" -type f
31
+ ```
32
+
33
+ 读取每个状态文件,筛选出状态为 `completed` 的需求。
34
+
35
+ 如果找到多个可归档的需求,使用 **AskUserQuestion** 让用户选择要归档的需求。
36
+
37
+ 选项应该显示:
38
+ - 需求名称
39
+ - 完成时间
40
+ - 任务完成情况(如:8/8 任务已完成)
41
+
42
+ 如果没有找到任何可归档的需求,输出:
43
+ ```
44
+ 未找到可归档的需求。
45
+
46
+ 只有状态为 "completed" 的需求才能归档。
47
+
48
+ 运行 /6aspec:green:status 查看当前需求状态。
49
+ ```
50
+
51
+ ### Step 2: 读取状态文件
52
+
53
+ 读取 `6aspec/green/<feature-name>/.green-status.json` 文件。
54
+
55
+ 如果文件不存在或格式错误,输出错误信息并退出。
56
+
57
+ ### Step 3: 检查归档条件
58
+
59
+ **3.1 检查工件完成状态**
60
+
61
+ 检查状态文件中的 `artifacts` 字段,确认所有工件的状态都是 `done`:
62
+
63
+ ```json
64
+ {
65
+ "artifacts": {
66
+ "requirement": { "status": "done" },
67
+ "models": { "status": "done" },
68
+ "design": { "status": "done" },
69
+ "tasks": { "status": "done" }
70
+ }
71
+ }
72
+ ```
73
+
74
+ 如果有任何工件状态不是 `done`,**拒绝归档**,停止并提示:
75
+
76
+ ```
77
+ ❌ 未通过依赖检查,不允许归档
78
+
79
+ 存在未完成的工件:
80
+ - <artifact-name>: <status>
81
+
82
+ 请先完成主流程中对应步骤(new → model → design → tasks),待所有工件状态为 done 后再运行 /6aspec:green:archive。
83
+ ```
84
+
85
+ **3.2 检查任务完成状态**
86
+
87
+ 检查状态文件中的 `tasks` 字段:
88
+
89
+ ```json
90
+ {
91
+ "tasks": {
92
+ "total": 8,
93
+ "completed": 8,
94
+ "remaining": 0
95
+ }
96
+ }
97
+ ```
98
+
99
+ 如果 `completed` < `total`,**拒绝归档**,停止并提示:
100
+
101
+ ```
102
+ ❌ 未通过依赖检查,不允许归档
103
+
104
+ 任务进度:<completed>/<total> 已完成,剩余 <remaining> 个任务未完成。
105
+
106
+ 请先运行 /6aspec:green:execute-task 完成所有任务,待状态变为 completed 后再运行 /6aspec:green:archive。
107
+ ```
108
+
109
+ **3.3 检查状态(硬性门禁)**
110
+
111
+ 如果状态不是 `completed`,**拒绝归档**,不得提供“仍要继续”选项,直接停止并提示:
112
+
113
+ ```
114
+ ❌ 未通过依赖检查,不允许归档
115
+
116
+ 当前状态:<current-status>
117
+ 要求状态:completed(所有任务已完成)
118
+
119
+ 归档前必须完成主流程至“所有任务已完成”。请先运行 /6aspec:green:execute-task 完成剩余任务,待状态变为 completed 后再运行 /6aspec:green:archive。
120
+ ```
121
+
122
+ ### Step 4: 执行归档
123
+
124
+ **4.1 创建归档目录**
125
+
126
+ 如果归档目录不存在,创建它:
127
+
128
+ ```bash
129
+ mkdir -p 6aspec/green/archive
130
+ ```
131
+
132
+ **4.2 生成归档目标名称**
133
+
134
+ 使用当前日期和需求名称生成归档目标名称:
135
+
136
+ 格式:`YYYY-MM-DD-<feature-name>`
137
+
138
+ 例如:`2026-02-16-user-authentication`
139
+
140
+ **4.3 检查目标是否已存在**
141
+
142
+ 检查归档目标目录是否已存在:
143
+
144
+ ```bash
145
+ ls -d 6aspec/green/archive/YYYY-MM-DD-<feature-name> 2>/dev/null
146
+ ```
147
+
148
+ 如果已存在,输出错误并停止:
149
+
150
+ ```
151
+ ❌ 归档失败
152
+
153
+ 目标目录已存在:6aspec/green/archive/YYYY-MM-DD-<feature-name>
154
+
155
+ 可能的原因:
156
+ 1. 今天已经归档过同名需求
157
+ 2. 归档目录中存在重复
158
+
159
+ 建议:
160
+ 1. 重命名现有归档目录
161
+ 2. 删除现有归档(如果是重复的)
162
+ 3. 等到明天再归档
163
+ ```
164
+
165
+ **4.4 移动需求目录**
166
+
167
+ 将需求目录移动到归档位置:
168
+
169
+ ```bash
170
+ mv 6aspec/green/<feature-name> 6aspec/green/archive/YYYY-MM-DD-<feature-name>
171
+ ```
172
+
173
+ **4.5 更新状态文件**
174
+
175
+ 读取归档后的状态文件,更新状态:
176
+
177
+ ```json
178
+ {
179
+ "status": "archived",
180
+ "lastModified": "<current-timestamp>"
181
+ }
182
+ ```
183
+
184
+ 写回状态文件:
185
+
186
+ ```bash
187
+ # 更新 6aspec/green/archive/YYYY-MM-DD-<feature-name>/.green-status.json
188
+ ```
189
+
190
+ ### Step 5: 显示归档摘要
191
+
192
+ 输出归档完成的摘要信息:
193
+
194
+ ```
195
+ ✅ 归档完成
196
+
197
+ 需求:<feature-name>
198
+ 归档位置:6aspec/green/archive/YYYY-MM-DD-<feature-name>/
199
+ 归档时间:<current-timestamp>
200
+
201
+ 工件完成情况:
202
+ ✓ 需求澄清文档
203
+ ✓ 领域模型
204
+ ✓ 技术方案
205
+ ✓ 任务列表
206
+
207
+ 任务完成情况:
208
+ ✓ 所有任务已完成 (<total>/<total>)
209
+
210
+ 状态:已归档
211
+ ```
212
+
213
+ 如果有警告(如未完成的工件或任务),在摘要中显示:
214
+
215
+ ```
216
+ ✅ 归档完成(带警告)
217
+
218
+ 需求:<feature-name>
219
+ 归档位置:6aspec/green/archive/YYYY-MM-DD-<feature-name>/
220
+ 归档时间:<current-timestamp>
221
+
222
+ ⚠️ 警告:
223
+ - 归档时有 <N> 个工件未完成
224
+ - 归档时有 <M> 个任务未完成
225
+
226
+ 请检查归档内容是否符合预期。
227
+ ```
228
+
229
+ ## 错误处理
230
+
231
+ ### 错误 1: 状态文件不存在
232
+
233
+ ```
234
+ 错误:未找到状态文件
235
+
236
+ 路径:6aspec/green/<feature-name>/.green-status.json
237
+
238
+ 无法归档没有状态文件的需求。
239
+
240
+ 建议:
241
+ 1. 检查需求目录是否正确
242
+ 2. 手动创建状态文件(参考 green_status_schema.md)
243
+ ```
244
+
245
+ ### 错误 2: 归档目录已存在
246
+
247
+ ```
248
+ 错误:归档目标已存在
249
+
250
+ 目标:6aspec/green/archive/YYYY-MM-DD-<feature-name>/
251
+
252
+ 建议:
253
+ 1. 重命名现有归档目录
254
+ 2. 删除现有归档(如果是重复的)
255
+ 3. 等到明天再归档
256
+ ```
257
+
258
+ ### 错误 3: 移动失败
259
+
260
+ ```
261
+ 错误:无法移动需求目录
262
+
263
+ 源:6aspec/green/<feature-name>
264
+ 目标:6aspec/green/archive/YYYY-MM-DD-<feature-name>
265
+
266
+ 错误信息:<error-message>
267
+
268
+ 请检查文件权限和磁盘空间。
269
+ ```
270
+
271
+ ## 注意事项
272
+
273
+ 1. **不可逆操作**:归档是移动操作,不是复制。归档后原位置的需求目录将不存在
274
+ 2. **状态检查**:归档前会检查工件和任务完成状态,但允许用户强制归档
275
+ 3. **日期命名**:使用日期前缀可以方便地按时间排序归档
276
+ 4. **状态更新**:归档后状态文件会被更新为 `archived`
277
+ 5. **保留结构**:归档时保留完整的需求目录结构,包括所有文件和子目录
278
+
279
+ ## 归档后的目录结构
280
+
281
+ ```
282
+ 6aspec/green/
283
+ ├── archive/
284
+ │ ├── 2026-02-15-feature-a/
285
+ │ │ ├── .green-status.json
286
+ │ │ ├── requirement.md
287
+ │ │ ├── domain-model.md
288
+ │ │ ├── tech-design.md
289
+ │ │ ├── api-definition.md
290
+ │ │ ├── tasks/
291
+ │ │ └── ...
292
+ │ └── 2026-02-16-feature-b/
293
+ │ └── ...
294
+ └── active-feature/
295
+ └── ...
296
+ ```
297
+
298
+ ## 参考文档
299
+
300
+ - 状态文件结构定义:`.6aspec/rules/green/green_status_schema.md`
301
+ - 状态查询SOP:`.6aspec/rules/green/6A_status_sop.md`
@@ -0,0 +1,229 @@
1
+ # clarify: 需求深化澄清标准操作流程 (Requirement Clarification SOP)
2
+
3
+ ## 角色
4
+ 你现在的角色是【需求分析师 + 业务架构师】,负责对已有的需求澄清文档进行深化、补充和细化。你善于发现隐藏的业务复杂性,通过反向提问帮助团队在编码前消除认知盲区。
5
+
6
+ ## 目标
7
+ - 基于已有的 `requirement.md`,进一步深化需求的细节和边界
8
+ - 解决上一轮遗留的"待确认项"
9
+ - 识别新的风险点和模糊地带
10
+ - 补充用户提供的新信息或补充文档
11
+ - 确保需求文档达到可支撑领域建模的质量
12
+
13
+ ## 规则
14
+ 1. **增量更新**:在现有 `requirement.md` 基础上增补,不重写已确认的内容
15
+ 2. **反向提问**:每轮必须主动提出 3-5 个新的或更深入的问题
16
+ 3. **深度递进**:比 `new` 阶段的提问更加深入和具体,聚焦在实现层面的细节
17
+ 4. **可迭代**:`clarify` 命令可以多次执行,逐步深化
18
+
19
+ ## 前置条件
20
+ - 已通过 `/6aspec:green:new` 创建了需求目录和初始 `requirement.md`
21
+ - 状态文件 `.green-status.json` 存在
22
+
23
+ ## 输入要求
24
+ - **自动读取**:现有的 `requirement.md` 和 `.green-status.json`
25
+ - **可选输入**:用户提供的补充文档、业务确认结果、新的需求变更等
26
+
27
+ ## 执行步骤
28
+
29
+ ### Step 1: 读取现有状态和文档
30
+
31
+ **1.1 检测需求目录**
32
+
33
+ 检查当前活跃的需求:
34
+
35
+ ```bash
36
+ find 6aspec/green -maxdepth 2 -name ".green-status.json" -type f
37
+ ```
38
+
39
+ 如果有多个需求,使用 **AskUserQuestion** 让用户选择要澄清的需求。
40
+
41
+ **1.2 读取状态文件和需求文档**
42
+
43
+ - 读取 `6aspec/green/<feature-name>/.green-status.json`
44
+ - 读取 `6aspec/green/<feature-name>/requirement.md`
45
+
46
+ **1.3 状态检查**
47
+
48
+ 允许的状态:`created` 或 `requirement_clarified`
49
+
50
+ 如果状态不符合,输出:
51
+ ```
52
+ ⚠️ 当前状态为 <status>,通常在 "created" 或 "requirement_clarified" 阶段执行 clarify。
53
+
54
+ 是否继续?(在后续阶段执行 clarify 会更新需求文档但不会回退状态)
55
+ ```
56
+
57
+ ### Step 2: 分析现有文档的薄弱环节
58
+
59
+ 阅读现有 `requirement.md`,按以下维度评估文档质量:
60
+
61
+ | 评估维度 | 检查项 | 评级 |
62
+ | :--- | :--- | :--- |
63
+ | **完整性** | 功能清单是否覆盖 PRD 所有要求 | 🟢充分 / 🟡部分 / 🔴缺失 |
64
+ | **精确性** | 业务规则是否足够具体可实现 | 🟢充分 / 🟡部分 / 🔴缺失 |
65
+ | **一致性** | 各章节描述是否存在矛盾 | 🟢一致 / 🟡有疑问 / 🔴矛盾 |
66
+ | **可建模性** | 是否具备领域建模所需的信息 | 🟢就绪 / 🟡接近 / 🔴不足 |
67
+ | **待确认项** | 遗留的 TBD 项是否已解决 | 🟢全部解决 / 🟡部分解决 / 🔴未解决 |
68
+
69
+ 输出评估结果:
70
+
71
+ ```markdown
72
+ ## 📋 需求文档质量评估
73
+
74
+ | 维度 | 评级 | 说明 |
75
+ | :--- | :--- | :--- |
76
+ | 完整性 | 🟢/🟡/🔴 | <说明> |
77
+ | 精确性 | 🟢/🟡/🔴 | <说明> |
78
+ | 一致性 | 🟢/🟡/🔴 | <说明> |
79
+ | 可建模性 | 🟢/🟡/🔴 | <说明> |
80
+ | 待确认项 | 🟢/🟡/🔴 | <N 个 TBD 项中已解决 M 个> |
81
+
82
+ **总体评估**:<就绪 / 接近就绪 / 需要继续澄清>
83
+ ```
84
+
85
+ ### Step 3: 反向提问(深化版)
86
+
87
+ 基于 Step 2 的评估结果,AI 必须主动提出 **3-5 个更深入的问题**。
88
+
89
+ #### 深化提问的聚焦方向
90
+
91
+ | 方向 | 说明 | 示例 |
92
+ | :--- | :--- | :--- |
93
+ | **状态机细化** | 业务对象的状态流转细节 | "合同从'待审批'到'已生效'之间,是否有'审批中'的中间态?审批需要几级?" |
94
+ | **边界值明确** | 业务规则的精确边界 | "优惠金额的计算精度是保留几位小数?四舍五入还是向下取整?" |
95
+ | **异常流程补全** | 异常场景的处理方式 | "如果支付超时,订单状态如何处理?是否需要自动取消?取消后的退款策略是?" |
96
+ | **数据生命周期** | 数据的创建、变更和归档 | "历史评价数据保留多久?是否需要定期归档?归档后是否可查询?" |
97
+ | **权限粒度** | 操作权限的细节 | "管理员是否可以修改已提交的评价?修改后是否需要留痕?" |
98
+ | **并发与冲突** | 多人操作的冲突处理 | "如果两人同时编辑同一条记录,以谁的为准?是否需要乐观锁?" |
99
+
100
+ #### 提问格式
101
+
102
+ ```markdown
103
+ ---
104
+
105
+ ## 🔍 需求深化确认(第 N 轮)
106
+
107
+ 基于对现有需求文档的分析,以下问题需要进一步确认:
108
+
109
+ ### Q1: [问题标题]
110
+ **聚焦方向**:状态机细化 / 边界值明确 / 异常流程补全 / 数据生命周期 / 权限粒度 / 并发与冲突
111
+ **关联章节**:requirement.md 第X章
112
+ **当前描述**:<现有文档中的相关描述>
113
+ **深化问题**:<具体问题>
114
+ **AI 建议**:<基于业界最佳实践的建议,供参考>
115
+
116
+ ### Q2: [问题标题]
117
+ ...
118
+
119
+ ---
120
+
121
+ 请确认以上问题。对于暂时无法确认的,可标记为"待确认"。
122
+ ```
123
+
124
+ **重要**:必须等待用户回复后再继续。
125
+
126
+ ### Step 4: 更新需求澄清文档
127
+
128
+ 根据用户的回答,**增量更新** `requirement.md`:
129
+
130
+ 1. **补充已确认的内容**:将用户的确认结果更新到对应章节
131
+ 2. **更新待确认项**:
132
+ - 已确认的 TBD 项:状态改为"已确认",并将结论写入对应章节
133
+ - 新增的 TBD 项:追加到待确认项列表
134
+ 3. **追加澄清记录**:在"9.2 需求澄清记录"中追加本轮的问答记录
135
+
136
+ ### Step 5: 更新状态文件
137
+
138
+ 根据当前文档质量,更新 `.green-status.json`:
139
+
140
+ **情况 A:需求已充分澄清(无核心 TBD 项,可建模性评估为"就绪")**
141
+
142
+ ```json
143
+ {
144
+ "status": "requirement_clarified",
145
+ "lastModified": "<ISO8601-now>",
146
+ "artifacts": {
147
+ "requirement": {
148
+ "status": "done",
149
+ "completedAt": "<ISO8601-now>"
150
+ },
151
+ "models": {
152
+ "status": "ready"
153
+ }
154
+ },
155
+ "nextAction": {
156
+ "command": "model",
157
+ "description": "开始领域建模"
158
+ }
159
+ }
160
+ ```
161
+
162
+ **情况 B:仍需继续澄清(有核心 TBD 项未解决)**
163
+
164
+ ```json
165
+ {
166
+ "status": "created",
167
+ "lastModified": "<ISO8601-now>",
168
+ "artifacts": {
169
+ "requirement": {
170
+ "status": "pending"
171
+ }
172
+ },
173
+ "nextAction": {
174
+ "command": "clarify",
175
+ "description": "继续需求澄清(有 N 个核心待确认项)"
176
+ }
177
+ }
178
+ ```
179
+
180
+ ## 输出要求
181
+ 1. 格式:Markdown 源码格式
182
+ 2. 文档位置:`6aspec/green/<feature-name>/requirement.md`(原地更新)
183
+ 3. 必须保留已有内容,仅做增量更新
184
+ 4. 更新后检查文档格式是否符合 `new` SOP 中的模板规范
185
+
186
+ ## 注意
187
+ - **不可覆盖**:绝不可覆盖用户之前已确认的结论,只能追加新信息
188
+ - **递进深入**:每一轮 clarify 的问题应该比上一轮更深入、更具体
189
+ - **适时收敛**:如果评估所有维度都是 🟢,应主动建议用户进入下一步(领域建模),而不是无限制地继续澄清
190
+ - **溯源标注**:新增内容必须标注来源("第N轮 clarify 确认")
191
+
192
+ ## 流程完成提示 (Workflow Progress)
193
+
194
+ **重要提示**:本节内容仅用于向用户输出流程进度提示,**不要写入任何文档文件**。
195
+
196
+ ### 情况 A:需求已充分澄清
197
+
198
+ ---
199
+
200
+ ✅ **已完成:需求深化澄清 (clarify)**
201
+
202
+ 📊 **进度:0/4 (主流程)**
203
+
204
+ **需求文档已就绪,建议进入下一步:**
205
+ - 【主流程】领域建模:命令 `model`
206
+ 基于需求澄清文档进行领域模型和数据库设计
207
+
208
+ **完整流程图:**
209
+ ```
210
+ 主流程:需求澄清 ✅ → 领域建模 → 技术方案 → 任务生成 → 执行任务 (0/4)
211
+ ```
212
+
213
+ ---
214
+
215
+ ### 情况 B:仍需继续澄清
216
+
217
+ ---
218
+
219
+ ⏳ **需求澄清进行中 (clarify)**
220
+
221
+ 📊 **进度:0/4 (主流程)**
222
+
223
+ **待确认项:N 个**(其中核心项 M 个)
224
+
225
+ **下一步建议:**
226
+ - 与产品/业务方确认待确认项后,再次运行 `clarify`
227
+ - 如果评估风险可控,也可以直接进入 `model`
228
+
229
+ ---
@@ -0,0 +1,110 @@
1
+ ---
2
+ description: 任务代码实现标准操作流程 (Code Implementation SOP)
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # execute-task: 任务代码实现标准操作流程
7
+
8
+ 你现在是 **Senior Developer**,负责执行具体的开发任务。你的核心职责是将 `6aspec/green/<feature-name>/tasks/task_xxx.md` 转化为高质量、可运行的业务代码。
9
+
10
+ ## 前置条件(依赖门禁,必须首先执行)
11
+
12
+ 在执行任务代码实现前,**必须**先完成依赖检查,不通过则**立即停止**并提示,不得继续:
13
+
14
+ 1. **确定当前需求**:根据用户指定的任务文件路径(如 `6aspec/green/<feature-name>/tasks/task-xxx.md`)确定 feature-name;若用户未指定任务文件,则根据当前工作目录或让用户选择需求。
15
+ 2. **读取状态文件**:读取 `6aspec/green/<feature-name>/.green-status.json`。若文件不存在,停止并提示先运行 `/6aspec:green:new` 创建需求。
16
+ 3. **检查上一流程已完成**:
17
+ - 若 `status` 不是 `tasks_created` 且不是 `implementing`,停止并提示:
18
+ ```
19
+ ❌ 未通过依赖检查,无法执行开发任务
20
+
21
+ 当前状态:<status>
22
+ 要求状态:tasks_created 或 implementing(任务已拆解或实施中)
23
+
24
+ 请先完成任务拆解:运行 /6aspec:green:tasks,并确保生成 tasks/ 下的任务文件及 README.md,且状态已更新为 tasks_created。
25
+ ```
26
+ - 若 `artifacts.tasks.status` 不是 `done`,停止并提示先运行 `/6aspec:green:tasks` 完成任务拆解。
27
+ 4. **检查任务目录存在**:若 `6aspec/green/<feature-name>/tasks/` 下无任务文件或无 `README.md`,停止并提示先完成 `/6aspec:green:tasks`。
28
+
29
+ **只有以上检查全部通过后,才允许继续执行本 SOP 的编码步骤。**
30
+
31
+ ## 0. 执行协议 (Protocol) - 拒绝盲目编码
32
+
33
+ 在开始编写代码前,**必须**执行以下上下文加载步骤(Context Loading):
34
+
35
+ 1. **加载任务上下文**:读取用户指定的 `task-xxx.md` 文件。
36
+ 2. **加载设计上下文**:
37
+ * 必须寻找并读取该任务所属功能的 **技术设计主文档** (`tech-design.md`),位于同需求目录下 `artifacts/`:`6aspec/green/<feature-name>/artifacts/tech-design.md`。
38
+ * 必须读取 **API 定义文档** (`api-definition.md`)(如果是 API 任务),位于 `6aspec/green/<feature-name>/artifacts/api-definition.md`。
39
+ * *Rationale*: 任务文件中只包含摘要,核心逻辑和 JSON 结构都在技术设计文档中,不读技术设计文档必写错。
40
+ 3. **加载规范上下文**:
41
+ * 读取任务文件中指定的“规则文件”(如 `api_rule.md`)。
42
+ * 读取公共代码规约 `.6aspec/rules/biz/code.md` 和 `.6aspec/rules/biz/project-structure.md`。
43
+
44
+ ## 1. 实现策略 (Implementation Strategy)
45
+
46
+ 请严格按照 **自底向上 (Bottom-Up)** 的顺序进行编码,以减少依赖错误:
47
+
48
+ ### Step 1: 领域对象与数据传输对象 (DTO/VO/Enum)
49
+ - 优先定义 Request/Response DTO、Enums、Events。
50
+ - **约束**:字段名称和类型必须严格匹配 `api-definition.md` 和技术设计文档。
51
+
52
+ ### Step 2: 基础设施层 (Repository/Gateway)
53
+ - 检查所需的 Repository 接口是否存在。
54
+ - 如果需要调用外部服务,实现对应的 Facade/Gateway。
55
+
56
+ ### Step 3: 核心业务逻辑 (Service/Domain)
57
+ - 实现 Service 方法。
58
+ - **关键**:严格翻译技术设计文档中的"执行逻辑"和"核心技术决策"。
59
+ - 如果技术设计文档说要加锁,必须加锁。
60
+ - 如果技术设计文档说要抛特定异常,必须抛出。
61
+
62
+ ### Step 4: 接口层 (Controller/Listener/Job)
63
+ - 组装 Service,暴露对外的入口。
64
+ - 添加必要的注解(Swagger, Auth, Validation)。
65
+
66
+ ## 2. 质量控制 (Quality Control)
67
+
68
+ 在输出代码后,必须进行自我审查:
69
+ 1. **Lint 检查**:运行 `read_lints` 检查新文件,修复所有 Import 错误和语法错误。
70
+ 2. **不写测试**:严禁编写 `src/test` 下的单元测试代码(除非用户明确要求)。
71
+ 3. **不修改无关文件**:严禁修改与本任务无关的现有代码(除非是必要的 Entity 关联更新)。
72
+
73
+ ## 3. 任务收尾 (Task Closure)
74
+
75
+ 代码实现完成后,**必须**更新文档状态:
76
+
77
+ 1. **更新任务文件** (`task-xxx.md`):
78
+ - 将状态改为 `[已完成]`。
79
+ - 更新 `最后更新时间`。
80
+ 2. **更新总览文件** (`tasks/README.md`):
81
+ - 寻找该任务在列表中的行,将状态图标改为 ✅。
82
+ - 更新进度条和已完成工时统计。
83
+
84
+ ## 异常处理
85
+ - 如果发现技术设计文档在代码层面无法实现(如循环依赖、技术设计文档参数缺失),**停止编码**,向用户报告并建议修改技术设计文档。
86
+
87
+ ## 流程完成提示 (Workflow Progress)
88
+
89
+ **重要提示**:本节内容仅用于向用户输出流程进度提示,**不要写入任何文档文件**。
90
+
91
+ 当完成本 SOP 流程后,必须向用户输出以下流程进度提示:
92
+
93
+ ---
94
+
95
+ ✅ **已完成:执行开发任务 (execute-task)**
96
+
97
+ 📊 **进度:4/4 (主流程) - 全部完成!🎉**
98
+
99
+ **任务状态:**
100
+ - 当前任务已完成,请检查 `tasks/README.md` 查看整体进度
101
+ - 如还有未完成的任务,继续执行 `execute-task` 命令
102
+ - 如所有任务已完成,恭喜!整个开发流程已完成
103
+
104
+ **完整流程图:**
105
+ ```
106
+ 主流程:领域建模 ✅ → 技术方案 ✅ → 任务生成 ✅ → 执行任务 ✅ (4/4)
107
+ ```
108
+
109
+ ---
110
+