6aspec 2.0.0-dev.2 → 2.0.0-dev.20

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 (88) hide show
  1. package/.6aspec/rules/brown/brown_archive_sop.md +8 -8
  2. package/.6aspec/rules/brown/brown_constitution.md +11 -0
  3. package/.6aspec/rules/brown/brown_continue_sop.md +5 -2
  4. package/.6aspec/rules/brown/brown_design_sop.md +168 -28
  5. package/.6aspec/rules/brown/brown_explore_sop.md +314 -0
  6. package/.6aspec/rules/brown/brown_ff_sop.md +31 -18
  7. package/.6aspec/rules/brown/brown_impact_sop.md +105 -36
  8. package/.6aspec/rules/brown/brown_implement_sop.md +3 -3
  9. package/.6aspec/rules/brown/brown_list_sop.md +12 -12
  10. package/.6aspec/rules/brown/brown_new_sop.md +58 -34
  11. package/.6aspec/rules/brown/brown_proposal_sop.md +293 -75
  12. package/.6aspec/rules/brown/brown_quick_sop.md +5 -5
  13. package/.6aspec/rules/brown/brown_review_sop.md +4 -4
  14. package/.6aspec/rules/brown/brown_rollback_sop.md +29 -19
  15. package/.6aspec/rules/brown/brown_specs_sop.md +370 -120
  16. package/.6aspec/rules/brown/brown_status_sop.md +13 -3
  17. package/.6aspec/rules/brown/brown_tasks_sop.md +18 -5
  18. package/.6aspec/rules/brown/brown_understand_sop.md +111 -40
  19. package/.6aspec/rules/brown/brown_verify_sop.md +1 -1
  20. package/.6aspec/rules/green/{6A_archive_sop.md → green_archive_sop.md} +3 -3
  21. package/.6aspec/rules/green/{6A_clarify_sop.md → green_clarify_sop.md} +1 -1
  22. package/.6aspec/rules/green/{6A_code_implementation_sop.md → green_code_implementation_sop.md} +3 -3
  23. package/.6aspec/rules/green/{6A_continue_sop.md → green_continue_sop.md} +3 -3
  24. package/.6aspec/rules/green/green_status_schema.md +4 -4
  25. package/.6aspec/rules/green/{6A_status_sop.md → green_status_sop.md} +3 -3
  26. package/.6aspec/rules/green/{6A_tasks_sop.md → green_tasks_sop.md} +1 -1
  27. package/.claude/commands/6aspec/brown/explore.md +11 -0
  28. package/.claude/commands/6aspec/green/archive.md +1 -1
  29. package/.claude/commands/6aspec/green/clarify.md +2 -2
  30. package/.claude/commands/6aspec/green/continue.md +1 -1
  31. package/.claude/commands/6aspec/green/design.md +2 -2
  32. package/.claude/commands/6aspec/green/{execute-task.md → implement.md} +1 -1
  33. package/.claude/commands/6aspec/green/import-model-table.md +1 -1
  34. package/.claude/commands/6aspec/green/init.md +2 -2
  35. package/.claude/commands/6aspec/green/model.md +2 -2
  36. package/.claude/commands/6aspec/green/new.md +2 -2
  37. package/.claude/commands/6aspec/green/rollback.md +1 -1
  38. package/.claude/commands/6aspec/green/status.md +1 -1
  39. package/.claude/commands/6aspec/green/tasks.md +2 -2
  40. package/.claude/commands/6aspec/green/visual-logic.md +2 -2
  41. package/.claude/commands/opsx/apply.md +152 -0
  42. package/.claude/commands/opsx/archive.md +157 -0
  43. package/.claude/commands/opsx/bulk-archive.md +242 -0
  44. package/.claude/commands/opsx/continue.md +114 -0
  45. package/.claude/commands/opsx/explore.md +174 -0
  46. package/.claude/commands/opsx/ff.md +94 -0
  47. package/.claude/commands/opsx/new.md +69 -0
  48. package/.claude/commands/opsx/onboard.md +525 -0
  49. package/.claude/commands/opsx/sync.md +134 -0
  50. package/.claude/commands/opsx/verify.md +164 -0
  51. package/.claude/settings.local.json +21 -1
  52. package/.cursor/commands/6aspec/brown/explore.md +11 -0
  53. package/.cursor/commands/6aspec/green/archive.md +1 -1
  54. package/.cursor/commands/6aspec/green/clarify.md +2 -2
  55. package/.cursor/commands/6aspec/green/continue.md +1 -1
  56. package/.cursor/commands/6aspec/green/design.md +2 -2
  57. package/.cursor/commands/6aspec/green/{execute-task.md → implement.md} +1 -1
  58. package/.cursor/commands/6aspec/green/import-model-table.md +1 -1
  59. package/.cursor/commands/6aspec/green/init.md +2 -2
  60. package/.cursor/commands/6aspec/green/model.md +2 -2
  61. package/.cursor/commands/6aspec/green/new.md +2 -2
  62. package/.cursor/commands/6aspec/green/rollback.md +1 -1
  63. package/.cursor/commands/6aspec/green/status.md +1 -1
  64. package/.cursor/commands/6aspec/green/tasks.md +2 -2
  65. package/.cursor/commands/6aspec/green/visual-logic.md +2 -2
  66. package/.cursor/commands/opsx-apply.md +152 -0
  67. package/.cursor/commands/opsx-archive.md +157 -0
  68. package/.cursor/commands/opsx-bulk-archive.md +242 -0
  69. package/.cursor/commands/opsx-continue.md +114 -0
  70. package/.cursor/commands/opsx-explore.md +174 -0
  71. package/.cursor/commands/opsx-ff.md +94 -0
  72. package/.cursor/commands/opsx-new.md +69 -0
  73. package/.cursor/commands/opsx-onboard.md +525 -0
  74. package/.cursor/commands/opsx-sync.md +134 -0
  75. package/.cursor/commands/opsx-verify.md +164 -0
  76. package/README.md +1 -1
  77. package/bin/6aspec +17 -1
  78. package/lib/cli.js +178 -45
  79. package/package.json +1 -1
  80. /package/.6aspec/rules/green/{6A_constitution.md → green_constitution.md} +0 -0
  81. /package/.6aspec/rules/green/{6A_design_sop.md → green_design_sop.md} +0 -0
  82. /package/.6aspec/rules/green/{6A_import_model_table_sop.md → green_import_model_table_sop.md} +0 -0
  83. /package/.6aspec/rules/green/{6A_init_event_list_sop.md → green_init_event_list_sop.md} +0 -0
  84. /package/.6aspec/rules/green/{6A_init_map_sop.md → green_init_map_sop.md} +0 -0
  85. /package/.6aspec/rules/green/{6A_model_sop.md → green_model_sop.md} +0 -0
  86. /package/.6aspec/rules/green/{6A_new_sop.md → green_new_sop.md} +0 -0
  87. /package/.6aspec/rules/green/{6A_rollback_sop.md → green_rollback_sop.md} +0 -0
  88. /package/.6aspec/rules/green/{6A_visual_logic_sop.md → green_visual_logic_sop.md} +0 -0
@@ -36,6 +36,9 @@
36
36
 
37
37
  c. **更新归档状态**
38
38
  在归档目录中创建 `archive-info.json`:
39
+
40
+ **注意**:所有时间戳必须使用东八区(北京时间)格式:`yyyy-MM-dd HH:mm:ss`(例如:`2026-02-20 12:36:23`)
41
+
39
42
  ```json
40
43
  {
41
44
  "name": "<name>",
@@ -44,8 +47,7 @@
44
47
  "originalPath": "6aspecdoc/brown/<name>",
45
48
  "archivePath": "6aspecdoc/brown/.archived/<timestamp>-<name>",
46
49
  "completedPhases": 7,
47
- "totalTasks": 8,
48
- "priority": "P0/P1/P2"
50
+ "totalTasks": 8
49
51
  }
50
52
  ```
51
53
 
@@ -56,7 +58,6 @@
56
58
  # 归档摘要:<name>
57
59
 
58
60
  > **归档时间**: <timestamp>
59
- > **优先级**: P0/P1/P2
60
61
  > **完成阶段**: 7/7
61
62
  > **总任务数**: 8
62
63
  > **总工时**: <工时>
@@ -74,13 +75,13 @@
74
75
 
75
76
  ## 关键文档
76
77
 
77
- - 01-understanding.md - 需求理解与现状分析
78
- - 02-impact-analysis.md - 影响面分析
79
- - 03-technical-design.md - 技术方案设计
78
+ - understanding.md - 需求理解与现状分析
79
+ - impact-analysis.md - 影响面分析
80
+ - design.md - 技术方案设计
80
81
  - 04-tasks-overview.md - 任务拆解
81
82
  - 05-verification-report.md - 验证报告
82
83
  - 06-post-implementation-review.md - 实施后评估
83
- - ADR-<name>.md - 架构决策记录(P0)
84
+ - ADR-<name>.md - 架构决策记录(如有)
84
85
 
85
86
  ## 经验教训
86
87
 
@@ -104,7 +105,6 @@
104
105
  **归档位置**: 6aspecdoc/brown/.archived/<timestamp>-<name>/
105
106
 
106
107
  ### 需求统计
107
- - 优先级:P0/P1/P2
108
108
  - 完成阶段:7/7
109
109
  - 总任务数:8
110
110
  - 总工时:<工时>
@@ -6,6 +6,17 @@
6
6
 
7
7
  **所有生成的文档内容必须使用中文**,包括标题、字段名、描述等所有文本内容。
8
8
 
9
+ ## 时间格式规范
10
+
11
+ **所有时间戳必须使用东八区(北京时间)格式**:`yyyy-MM-dd HH:mm:ss`
12
+
13
+ 示例:`2026-02-20 12:36:23`
14
+
15
+ 适用范围:
16
+ - status.json 中的 `createdAt`、`lastModified`、`completedAt` 等字段
17
+ - 所有 artifacts 文档中的时间戳(创建时间、完成时间、评估时间等)
18
+ - 归档时使用的时间戳
19
+
9
20
  ## 核心行为规则
10
21
 
11
22
  1. **阶段化推进**:每个阶段完成后必须停止,等待用户通过显式命令推进
@@ -39,22 +39,25 @@
39
39
 
40
40
  **轻量级流程(lightweight)**:
41
41
  - `proposal` → 调用 `/6aspec:brown:proposal`
42
+ - `specs` → 调用 `/6aspec:brown:specs`
42
43
  - `design` → 调用 `/6aspec:brown:design`
43
44
  - `tasks` → 调用 `/6aspec:brown:tasks`
44
45
  - `implement` → 调用 `/6aspec:brown:implement`
45
46
 
46
47
  **标准级流程(standard)**:
47
48
  - `understand` → 调用 `/6aspec:brown:understand`
48
- - `specs` → 调用 `/6aspec:brown:specs`
49
49
  - `impact` → 调用 `/6aspec:brown:impact`
50
+ - `proposal` → 调用 `/6aspec:brown:proposal`
51
+ - `specs` → 调用 `/6aspec:brown:specs`
50
52
  - `design` → 调用 `/6aspec:brown:design`
51
53
  - `tasks` → 调用 `/6aspec:brown:tasks`
52
54
  - `implement` → 调用 `/6aspec:brown:implement`
53
55
 
54
56
  **完整级流程(complete)**:
55
57
  - `understand` → 调用 `/6aspec:brown:understand`
56
- - `specs` → 调用 `/6aspec:brown:specs`
57
58
  - `impact` → 调用 `/6aspec:brown:impact`
59
+ - `proposal` → 调用 `/6aspec:brown:proposal`
60
+ - `specs` → 调用 `/6aspec:brown:specs`
58
61
  - `design` → 调用 `/6aspec:brown:design`
59
62
  - `tasks` → 调用 `/6aspec:brown:tasks`
60
63
  - `implement` → 调用 `/6aspec:brown:implement`
@@ -1,6 +1,6 @@
1
1
  # 棕地需求 - Design SOP
2
2
 
3
- Phase 3: 技术方案设计
3
+ 技术方案设计 - 适用于所有流程级别
4
4
 
5
5
  **输入**:`/6aspec:brown:design` 后可选需求名称。
6
6
 
@@ -9,46 +9,99 @@ Phase 3: 技术方案设计
9
9
  1. **选择需求并检查状态**
10
10
 
11
11
  - 读取 `6aspecdoc/brown/<name>/status.json`
12
- - 确认 `phases.impact` 为 "done"
13
- - 如果未完成 Phase 2,提示先运行 `/6aspec:brown:impact`
12
+ - 根据 `flowDepth` 检查前置阶段:
13
+ - **轻量级**:确认 `phases.specs` "done",如果未完成提示先运行 `/6aspec:brown:specs`
14
+ - **标准级/完整级**:确认 `phases.specs` 为 "done",如果未完成提示先运行 `/6aspec:brown:specs`
14
15
 
15
16
  2. **读取前置文档**
16
17
 
17
- - `6aspecdoc/brown/<name>/requirement.md`
18
- - `6aspecdoc/brown/<name>/artifacts/01-understanding.md`
19
- - `6aspecdoc/brown/<name>/artifacts/01.5-specs.md`(标准级/完整级)
20
- - `6aspecdoc/brown/<name>/artifacts/02-impact-analysis.md`
18
+ 根据 `flowDepth` 读取不同的前置文档:
21
19
 
22
- 3. **设计数据库变更方案**
20
+ **轻量级流程**:
21
+ - `6aspecdoc/brown/<name>/artifacts/proposal.md`
22
+ - `6aspecdoc/brown/<name>/artifacts/specs.md`
23
+
24
+ **标准级/完整级流程**:
25
+ - `6aspecdoc/brown/<name>/artifacts/specs.md`
26
+ - `6aspecdoc/brown/<name>/artifacts/understanding.md`
27
+ - `6aspecdoc/brown/<name>/artifacts/impact-analysis.md`
28
+
29
+ 3. **按需探索代码库(可选)**
30
+
31
+ **触发条件**:
32
+ - 需要了解现有架构模式、技术选型
33
+ - 需要了解现有的数据库设计模式(如字段类型、索引策略)
34
+ - 需要了解现有的前端组件和交互模式
35
+ - 需要了解现有的测试框架和测试模式
36
+ - 用户明确要求探索(例如:"先了解一下现有架构")
37
+ - 信息不足,需要参考现有代码才能设计准确的技术方案
38
+
39
+ **探索方式**:
40
+
41
+ a. **简单搜索**(使用Grep/Glob工具):
42
+ ```bash
43
+ # 搜索相关Service类的实现模式
44
+ rg "class.*Service" --type java -g "*Service.java"
45
+
46
+ # 搜索相关Controller类的实现模式
47
+ rg "class.*Controller" --type java -g "*Controller.java"
48
+
49
+ # 搜索配置文件
50
+ rg "spring.datasource|mybatis" --type yaml -g "*.yml"
51
+
52
+ # 搜索测试框架使用
53
+ rg "@Test|@SpringBootTest" --type java -g "*Test.java"
54
+
55
+ # 搜索前端组件
56
+ rg "export.*component" --type typescript -g "*.tsx"
57
+ ```
58
+
59
+ b. **复杂探索**(使用Task工具调用Explore agent):
60
+ - 当需要深入理解现有架构模式时
61
+ - 当需要跨多个文件理解技术选型时
62
+ - 当需要了解复杂的集成方案时
63
+
64
+ **探索结果处理**:
65
+ - 探索发现直接用于技术方案设计
66
+ - 不生成独立文档
67
+ - 在design.md中可以标注"参考现有实现:<文件路径>"
68
+
69
+ **注意**:
70
+ - 探索是可选的,不是强制的
71
+ - 如果前置文档(specs、understanding、impact)已经提供了足够信息,可以跳过探索
72
+ - 探索应该聚焦、快速,避免过度探索
73
+ - 重点关注架构模式、技术选型、实现风格,而不是具体业务逻辑
74
+
75
+ 4. **设计数据库变更方案**
23
76
 
24
77
  - 字段名、类型、约束
25
78
  - 默认值和历史数据处理
26
79
  - 索引建议
27
80
  - 数据迁移脚本(如需要)
28
81
 
29
- 4. **设计代码实现方案**
82
+ 5. **设计代码实现方案**
30
83
 
31
84
  - 实体类字段添加(含注解)
32
85
  - 业务逻辑实现(含关键代码示例)
33
86
  - 校验逻辑(必填、值域、约束)
34
87
  - 错误提示(使用多语言资源)
35
88
 
36
- 5. **设计前端 UI 方案**
89
+ 6. **设计前端 UI 方案**
37
90
 
38
91
  - 各页面字段状态(可编辑/只读/隐藏)
39
92
  - 交互逻辑(下拉选择、提示信息)
40
93
  - 错误提示
41
94
  - 多语言支持
42
95
 
43
- 6. **设计测试方案**
96
+ 7. **设计测试方案**
44
97
 
45
98
  - 单元测试(函数级别)
46
99
  - 集成测试(流程级别)
47
100
  - 数据一致性验证(SQL 验证)
48
101
 
49
- 7. **架构决策记录(P0 需求必须)**
102
+ 8. **架构决策记录(涉及架构决策时创建)**
50
103
 
51
- 如果是 P0 级需求,创建 ADR:
104
+ 如果需求涉及重要的架构决策(如技术选型、数据模型设计、集成方案等),创建 ADR:
52
105
 
53
106
  创建 `6aspecdoc/brown/<name>/artifacts/ADR-<name>.md`:
54
107
  ```markdown
@@ -82,7 +135,7 @@ Phase 3: 技术方案设计
82
135
  <如何验证这个决策是正确的>
83
136
  ```
84
137
 
85
- 8. **技术债务识别**
138
+ 9. **技术债务识别**
86
139
 
87
140
  识别实现过程中可能引入的技术债务:
88
141
 
@@ -90,33 +143,118 @@ Phase 3: 技术方案设计
90
143
  |--------|------|------|------|----------|--------|
91
144
  | DEBT-001 | 临时的硬编码逻辑 | 代码质量 | 中 | 2人日 | P1 |
92
145
 
93
- 9. **创建技术方案文档**
146
+ 10. **创建技术方案文档**
94
147
 
95
- 创建 `6aspecdoc/brown/<name>/artifacts/03-technical-design.md`
148
+ 创建 `6aspecdoc/brown/<name>/artifacts/design.md`
96
149
 
97
150
  10. **更新状态**
98
151
 
99
152
  更新 `6aspecdoc/brown/<name>/status.json`:
153
+
154
+ **轻量级流程**:
155
+ ```json
156
+ {
157
+ "status": "tasks_pending",
158
+ "flowDepth": "lightweight",
159
+ "phases": {
160
+ "proposal": "done",
161
+ "design": "done",
162
+ "tasks": "pending",
163
+ "implement": "blocked"
164
+ },
165
+ "artifacts": ["proposal.md", "design.md"]
166
+ }
167
+ ```
168
+
169
+ **标准级/完整级流程**:
100
170
  ```json
101
171
  {
102
172
  "status": "tasks_pending",
173
+ "flowDepth": "standard",
103
174
  "phases": {
104
175
  "understand": "done",
176
+ "specs": "done",
105
177
  "impact": "done",
106
178
  "design": "done",
107
179
  "tasks": "pending",
108
- ...
109
- }
180
+ "implement": "blocked"
181
+ },
182
+ "artifacts": ["understanding.md", "specs.md", "impact-analysis.md", "design.md"]
110
183
  }
111
184
  ```
112
185
 
186
+ 同时更新 `6aspecdoc/brown/<name>/requirement.md`:
187
+ - 更新"状态"字段为 `📋 Tasks 待开始`
188
+ - 更新"最后修改"时间戳为 `<timestamp>`
189
+ - 更新"当前阶段"为 `Design - 技术方案设计(已完成)`
190
+ - 更新"下一步操作"为 `运行 /6aspec:brown:tasks 继续下一阶段`
191
+ - 在"进度概览"中标记 Design 阶段为已完成 `[x]`
192
+
113
193
  **输出**
114
194
 
195
+ 根据 `flowDepth` 显示不同的输出信息:
196
+
197
+ **轻量级流程**:
198
+ ```
199
+ ## Design 完成:<name>
200
+
201
+ **流程**: 轻量级
202
+ **进度**: 2/4 阶段完成
203
+
204
+ ### 方案概要
205
+ - 数据库变更:<数量> 个表
206
+ - 代码变更:<数量> 个类
207
+ - 前端变更:<数量> 个页面
208
+ - 测试用例:<数量> 个
209
+
210
+ ### 关键设计决策
211
+ <列出 2-3 个关键决策>
212
+
213
+ ### 文档位置
214
+ - 6aspecdoc/brown/<name>/artifacts/design.md
215
+ - 6aspecdoc/brown/<name>/artifacts/ADR-<name>.md (如涉及架构决策)
216
+
217
+ ### 下一步
218
+ - 直接回复修正设计方案或补充细节 → 我会更新本阶段文档(design.md)
219
+ - 运行 `/6aspec:brown:tasks` → 进入任务拆解阶段
220
+ - 运行 `/6aspec:brown:continue` → 自动进入下一阶段
221
+ ```
222
+
223
+ **标准级流程**:
224
+ ```
225
+ ## Design 完成:<name>
226
+
227
+ **流程**: 标准级
228
+ **进度**: 4/6 阶段完成
229
+
230
+ ### 方案概要
231
+ - 数据库变更:<数量> 个表
232
+ - 代码变更:<数量> 个类
233
+ - 前端变更:<数量> 个页面
234
+ - 测试用例:<数量> 个
235
+
236
+ ### 关键设计决策
237
+ <列出 2-3 个关键决策>
238
+
239
+ ### 技术债务
240
+ <列出识别的技术债务>
241
+
242
+ ### 文档位置
243
+ - 6aspecdoc/brown/<name>/artifacts/design.md
244
+ - 6aspecdoc/brown/<name>/artifacts/ADR-<name>.md (如涉及架构决策)
245
+
246
+ ### 下一步
247
+ - 直接回复修正设计方案或补充细节 → 我会更新本阶段文档(design.md)
248
+ - 运行 `/6aspec:brown:tasks` → 进入任务拆解阶段
249
+ - 运行 `/6aspec:brown:continue` → 自动进入下一阶段
250
+ ```
251
+
252
+ **完整级流程**:
115
253
  ```
116
- ## Phase 3 完成:技术方案设计
254
+ ## Design 完成:<name>
117
255
 
118
- **需求**: <name>
119
- **进度**: 4/5 阶段完成(标准级)或 4/6 阶段完成(完整级)
256
+ **流程**: 完整级
257
+ **进度**: 4/8 阶段完成
120
258
 
121
259
  ### 方案概要
122
260
  - 数据库变更:<数量> 个表
@@ -131,11 +269,11 @@ Phase 3: 技术方案设计
131
269
  <列出识别的技术债务>
132
270
 
133
271
  ### 文档位置
134
- - 6aspecdoc/brown/<name>/artifacts/03-technical-design.md
135
- - 6aspecdoc/brown/<name>/artifacts/ADR-<name>.md (P0)
272
+ - 6aspecdoc/brown/<name>/artifacts/design.md
273
+ - 6aspecdoc/brown/<name>/artifacts/ADR-<name>.md (如涉及架构决策)
136
274
 
137
275
  ### 下一步
138
- - 直接回复修正设计方案或补充细节 → 我会更新本阶段文档(03-technical-design.md)
276
+ - 直接回复修正设计方案或补充细节 → 我会更新本阶段文档(design.md)
139
277
  - 运行 `/6aspec:brown:tasks` → 进入任务拆解阶段
140
278
  - 运行 `/6aspec:brown:continue` → 自动进入下一阶段
141
279
  ```
@@ -143,13 +281,15 @@ Phase 3: 技术方案设计
143
281
  **用户补充信息时的处理**
144
282
 
145
283
  当用户修正设计方案、补充技术细节、或对设计决策提出异议时(未使用阶段命令):
146
- 1. 将用户的修正/补充整合到 `03-technical-design.md` 的对应章节
284
+ 1. 将用户的修正/补充整合到 `design.md` 的对应章节
147
285
  2. 展示变更摘要
148
286
  3. 再次提示:可以继续补充,或通过命令进入下一阶段
149
287
  4. **禁止**:不得自动进入下一阶段
150
288
 
151
289
  **防护措施**
152
- - 必须先完成 Phase 2
153
- - P0 需求必须创建 ADR
290
+ - 根据 `flowDepth` 检查前置阶段:
291
+ - **轻量级**:必须先完成 proposal 阶段
292
+ - **标准级/完整级**:必须先完成 impact 阶段
293
+ - 涉及架构决策时必须创建 ADR(如技术选型、数据模型设计、集成方案等)
154
294
  - 代码示例必须完整可用
155
- - 技术债务必须明确标注
295
+ - 技术债务必须明确标注(标准级/完整级)
@@ -0,0 +1,314 @@
1
+ # 棕地需求 - Explore SOP
2
+
3
+ 进入探索模式 - 深入思考、自由探索、澄清需求
4
+
5
+ **流程定位**:这是一种探索姿态(stance),而非固定工作流。可以在任何阶段使用,帮助理解问题、探索方案、挑战假设。
6
+
7
+ **输入**:`/6aspec:brown:explore` 后可选需求名称或探索主题。可以是:
8
+ - 需求名称:"user-permission-refactor"
9
+ - 模糊想法:"权限系统重构"
10
+ - 具体问题:"现有的权限检查逻辑为什么这么慢"
11
+ - 方案比较:"Redis vs 内存缓存"
12
+ - 或者什么都不提供(进入开放探索)
13
+
14
+ **核心理念**:
15
+ - 你是思考伙伴,不是执行工具
16
+ - 没有固定步骤,没有时间限制,没有强制输出
17
+ - 探索本身就是价值,thinking IS the value
18
+ - 默认不生成文档,除非用户明确要求
19
+
20
+ ---
21
+
22
+ ## 探索姿态
23
+
24
+ **好奇而非指令式**
25
+ - 提出自然涌现的问题,不遵循脚本
26
+ - 开放多个有趣的方向,让用户选择感兴趣的
27
+ - 不要把用户引导到单一路径
28
+
29
+ **可视化优先**
30
+ - 自由使用 ASCII 图表帮助澄清思考
31
+ - 系统架构图、状态机、数据流、依赖关系、对比表格
32
+ ```
33
+ 示例:
34
+ ┌─────────────┐ ┌─────────────┐
35
+ │ 现有方案 │────────▶│ 新方案 │
36
+ │ (问题点) │ │ (改进点) │
37
+ └─────────────┘ └─────────────┘
38
+ ```
39
+
40
+ **适应性强**
41
+ - 跟随有趣的线索
42
+ - 当新信息出现时及时调整方向
43
+ - 不急于得出结论,让问题的形状自然浮现
44
+
45
+ **扎根现实**
46
+ - 探索实际代码库,不只是理论推测
47
+ - 理解现有模式和架构
48
+ - 识别隐藏的复杂性
49
+
50
+ **挑战假设**
51
+ - 质疑用户的假设(也质疑自己的)
52
+ - 重新框定问题
53
+ - 寻找类比和替代视角
54
+
55
+ ---
56
+
57
+ ## 探索方式
58
+
59
+ 根据用户带来的内容,你可能会:
60
+
61
+ ### 探索问题空间
62
+ - 提出澄清性问题
63
+ - 挑战假设
64
+ - 重新框定问题
65
+ - 寻找类比
66
+
67
+ ### 调查代码库
68
+ - 映射与讨论相关的现有架构
69
+ - 找到集成点
70
+ - 识别已使用的模式
71
+ - 发现隐藏的复杂性
72
+
73
+ ### 比较方案
74
+ - 头脑风暴多种方法
75
+ - 构建对比表格
76
+ - 勾勒权衡
77
+ - 推荐路径(如果被问到)
78
+
79
+ ### 可视化思考
80
+ - 使用 ASCII 图表展示架构、流程、状态转换
81
+ - 绘制依赖关系图
82
+ - 创建对比表格
83
+
84
+ ### 识别风险和未知
85
+ - 识别可能出错的地方
86
+ - 找到理解上的空白
87
+ - 建议尖峰调查或深入研究
88
+
89
+ ---
90
+
91
+ ## 与 Brown 流程的集成
92
+
93
+ ### 启动探索
94
+
95
+ 1. **识别上下文**
96
+
97
+ 如果用户提供了需求名称,读取现有内容:
98
+ ```bash
99
+ # 检查需求是否存在
100
+ ls 6aspecdoc/brown/<name>/
101
+ ```
102
+
103
+ 读取相关文件获取上下文:
104
+ - `requirement.md` - 原始需求
105
+ - `proposal.md` - 需求提案(如果存在)
106
+ - `design.md` - 技术方案(如果存在)
107
+ - 其他已有的工件
108
+
109
+ 2. **自然引用现有内容**
110
+
111
+ 在对话中自然引用已有的决策和内容:
112
+ - "你的 proposal 提到要支持角色继承,但我们现在发现..."
113
+ - "design 中选择了 Redis,但考虑到..."
114
+ - "原始需求说要支持 1000 并发,这意味着..."
115
+
116
+ ### 探索过程中
117
+
118
+ **自由探索,不受限制**
119
+ - 可以深入代码库
120
+ - 可以绘制架构图
121
+ - 可以比较多个方案
122
+ - 可以质疑需求本身
123
+ - 可以发现新的问题
124
+
125
+ **提供捕获建议(但不强制)**
126
+
127
+ 当有重要洞察时,可以提议捕获:
128
+
129
+ | 洞察类型 | 建议捕获位置 |
130
+ |---------|------------|
131
+ | 发现新需求 | "这是个新需求,要加到 requirement.md 吗?" |
132
+ | 需求变更 | "这改变了原始需求,要更新 requirement.md 吗?" |
133
+ | 设计决策 | "这是个设计决策,要记录到 design.md 吗?" |
134
+ | 范围变化 | "这改变了范围,要更新 proposal 吗?" |
135
+ | 识别新任务 | "这是新的工作项,要加到 tasks.md 吗?" |
136
+ | 假设失效 | "这个假设不成立,要更新相关文档吗?" |
137
+
138
+ **用户决定** - 只是提议,不施压,不自动捕获。
139
+
140
+ ### 结束探索
141
+
142
+ 探索没有固定的结束方式,可能:
143
+
144
+ **流入行动**
145
+ - "思路清晰了,要开始 `/6aspec:brown:proposal` 吗?"
146
+ - "要继续下一阶段吗?"
147
+
148
+ **生成探索摘要(可选)**
149
+ - 用户可以要求:"生成探索摘要"
150
+ - 创建 `6aspecdoc/brown/<name>/explore-summary.md`
151
+ - 内容根据实际探索过程动态生成,不是固定模板
152
+ - 可用于后续的 proposal、design 或其他阶段
153
+
154
+ **仅提供澄清**
155
+ - 用户获得了需要的理解,继续其他工作
156
+ - 不需要任何文档或后续行动
157
+
158
+ **稍后继续**
159
+ - "我们随时可以继续探索"
160
+ - 探索可以暂停,随时恢复
161
+
162
+ ---
163
+
164
+ ## 生成探索摘要
165
+
166
+ **触发条件**:用户明确要求"生成探索摘要"或类似表达
167
+
168
+ **生成位置**:`6aspecdoc/brown/<name>/explore-summary.md`
169
+
170
+ **更新策略**:
171
+
172
+ 1. **第一次生成**:
173
+ - 如果 explore-summary.md 不存在,创建新文件
174
+ - 包含当前探索的发现
175
+
176
+ 2. **后续探索**:
177
+ - 如果 explore-summary.md 已存在,询问用户:
178
+ ```
179
+ 问题:"explore-summary.md 已存在,如何处理?"
180
+ 选项:
181
+ - 更新(整合新发现到现有内容)(推荐)
182
+ - 重新生成(替换全部内容)
183
+ ```
184
+ - **更新模式**(推荐):
185
+ - 整合新发现到"当前理解"部分
186
+ - 更新"关键决策"和"未解问题"
187
+ - 在"探索历史"部分添加新的探索记录
188
+ - 更新"最后更新"时间戳
189
+ - **重新生成模式**:
190
+ - 替换整个文件内容
191
+ - 只包含当前探索的发现
192
+
193
+ **文件结构**:
194
+
195
+ ```markdown
196
+ # Explore Summary: <需求标题>
197
+
198
+ > **需求**: <name>
199
+ > **最后更新**: <timestamp>
200
+
201
+ ## 当前理解
202
+
203
+ <最新的、综合的理解和发现>
204
+ <整合所有探索的核心洞察>
205
+
206
+ ## 关键决策
207
+
208
+ <已做出的重要决策及其理由>
209
+ - 决策1:<描述及理由>
210
+ - 决策2:<描述及理由>
211
+
212
+ ## 未解问题
213
+
214
+ <仍需进一步调查的问题>
215
+ - 问题1:<描述>
216
+ - 问题2:<描述>
217
+
218
+ ## 架构洞察
219
+
220
+ <可选:ASCII 图表展示架构理解>
221
+
222
+ ```
223
+ ┌─────────────┐ ┌─────────────┐
224
+ │ 组件 A │────────▶│ 组件 B │
225
+ └─────────────┘ └─────────────┘
226
+ ```
227
+
228
+ ---
229
+
230
+ ## 探索历史
231
+
232
+ ### 探索 #1 - <日期> - <探索主题>
233
+
234
+ **探索时间**: <timestamp>
235
+
236
+ **探索内容**:
237
+ <这次探索的具体内容>
238
+
239
+ **关键发现**:
240
+ - 发现1
241
+ - 发现2
242
+
243
+ **决策**:
244
+ - 决策1
245
+
246
+ ### 探索 #2 - <日期> - <探索主题>
247
+
248
+ **探索时间**: <timestamp>
249
+
250
+ **探索内容**:
251
+ <这次探索的具体内容>
252
+
253
+ **关键发现**:
254
+ - 发现1
255
+ - 发现2
256
+
257
+ **决策**:
258
+ - 决策1
259
+ ```
260
+
261
+ **内容原则**:
262
+ - 根据实际探索过程动态生成
263
+ - 不使用固定模板,内容应反映真实的探索路径
264
+ - "当前理解"部分应该是综合的、最新的结论
265
+ - "探索历史"部分按时间顺序记录每次探索
266
+ - 可以包含 ASCII 图表
267
+ - 简洁但完整
268
+
269
+ ---
270
+
271
+ ## 你不必做的事
272
+
273
+ - 遵循脚本
274
+ - 每次问相同的问题
275
+ - 产生特定的工件
276
+ - 得出结论
277
+ - 如果有价值的话题出现就保持主题
278
+ - 保持简短(这是思考时间)
279
+ - 快速完成(没有时间限制)
280
+
281
+ ---
282
+
283
+ ## 防护措施
284
+
285
+ **不要实施代码**
286
+ - 永远不要编写应用代码或实现功能
287
+ - 创建 6aspec 工件(proposal、design、specs)是可以的
288
+ - 探索代码库、阅读文件、搜索代码都可以
289
+ - 但不要修改应用代码
290
+
291
+ **不要伪装理解**
292
+ - 如果不清楚,深入挖掘
293
+ - 承认不确定性
294
+
295
+ **不要急于求成**
296
+ - 探索是思考时间,不是任务时间
297
+ - 让理解自然浮现
298
+
299
+ **不要强加结构**
300
+ - 让模式自然涌现
301
+ - 不要强制套用模板
302
+
303
+ **不要自动捕获**
304
+ - 提议保存洞察,但不要自动执行
305
+ - 让用户决定
306
+
307
+ **要可视化**
308
+ - 好的图表胜过千言万语
309
+
310
+ **要探索代码库**
311
+ - 让讨论扎根于现实
312
+
313
+ **要质疑假设**
314
+ - 包括用户的和你自己的