6aspec 2.0.0-dev.9 → 3.0.0-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.
- package/.6aspec/rules/biz/code.md +122 -28
- package/.6aspec/rules/biz/code_implementation_sop.md +77 -0
- package/.6aspec/rules/brown/brown_analyze_sop.md +289 -0
- package/.6aspec/rules/brown/brown_archive_sop.md +43 -78
- package/.6aspec/rules/brown/brown_constitution.md +11 -0
- package/.6aspec/rules/brown/brown_continue_sop.md +6 -13
- package/.6aspec/rules/brown/brown_design_sop.md +210 -95
- package/.6aspec/rules/brown/brown_explore_sop.md +314 -0
- package/.6aspec/rules/brown/brown_ff_sop.md +27 -64
- package/.6aspec/rules/brown/brown_impact_sop.md +101 -45
- package/.6aspec/rules/brown/brown_implement_sop.md +90 -58
- package/.6aspec/rules/brown/brown_list_sop.md +12 -12
- package/.6aspec/rules/brown/brown_new_sop.md +56 -77
- package/.6aspec/rules/brown/brown_proposal_sop.md +243 -76
- package/.6aspec/rules/brown/brown_quick_sop.md +5 -5
- package/.6aspec/rules/brown/brown_review_sop.md +4 -4
- package/.6aspec/rules/brown/brown_rollback_sop.md +27 -45
- package/.6aspec/rules/brown/brown_specs_sop.md +364 -120
- package/.6aspec/rules/brown/brown_status_sop.md +16 -32
- package/.6aspec/rules/brown/brown_tasks_sop.md +205 -87
- package/.6aspec/rules/brown/brown_understand_sop.md +97 -23
- package/.6aspec/rules/brown/brown_update_sop.md +283 -0
- package/.6aspec/rules/brown/brown_verify_sop.md +71 -309
- package/.6aspec/rules/brown/subagents/implementer.md +68 -0
- package/.6aspec/rules/brown/subagents/spec-compliance-reviewer.md +65 -0
- package/.6aspec/rules/green/{6A_archive_sop.md → green_archive_sop.md} +3 -3
- package/.6aspec/rules/green/{6A_clarify_sop.md → green_clarify_sop.md} +1 -1
- package/.6aspec/rules/green/{6A_code_implementation_sop.md → green_code_implementation_sop.md} +18 -3
- package/.6aspec/rules/green/{6A_continue_sop.md → green_continue_sop.md} +3 -3
- package/.6aspec/rules/green/{6A_new_sop.md → green_new_sop.md} +90 -11
- package/.6aspec/rules/green/green_status_schema.md +4 -4
- package/.6aspec/rules/green/{6A_status_sop.md → green_status_sop.md} +3 -3
- package/.6aspec/rules/green/{6A_tasks_sop.md → green_tasks_sop.md} +1 -1
- package/.claude/agents/implementer.md +6 -0
- package/.claude/agents/spec-compliance-reviewer.md +6 -0
- package/.claude/commands/6aspec/brown/analyze.md +11 -0
- package/.claude/commands/6aspec/brown/archive.md +11 -11
- package/.claude/commands/6aspec/brown/continue.md +11 -11
- package/.claude/commands/6aspec/brown/design.md +11 -11
- package/.claude/commands/6aspec/brown/explore.md +11 -0
- package/.claude/commands/6aspec/brown/ff.md +11 -11
- package/.claude/commands/6aspec/brown/impact.md +11 -11
- package/.claude/commands/6aspec/brown/implement.md +11 -11
- package/.claude/commands/6aspec/brown/list.md +11 -11
- package/.claude/commands/6aspec/brown/new.md +11 -11
- package/.claude/commands/6aspec/brown/proposal.md +11 -11
- package/.claude/commands/6aspec/brown/quick.md +11 -11
- package/.claude/commands/6aspec/brown/review.md +11 -11
- package/.claude/commands/6aspec/brown/status.md +11 -11
- package/.claude/commands/6aspec/brown/tasks.md +11 -11
- package/.claude/commands/6aspec/brown/understand.md +11 -11
- package/.claude/commands/6aspec/brown/update.md +11 -0
- package/.claude/commands/6aspec/brown/verify.md +11 -11
- package/.claude/commands/6aspec/code.md +10 -0
- package/.claude/commands/6aspec/green/archive.md +1 -1
- package/.claude/commands/6aspec/green/clarify.md +2 -2
- package/.claude/commands/6aspec/green/continue.md +1 -1
- package/.claude/commands/6aspec/green/design.md +2 -2
- package/.claude/commands/6aspec/green/{execute-task.md → implement.md} +1 -1
- package/.claude/commands/6aspec/green/import-model-table.md +1 -1
- package/.claude/commands/6aspec/green/init.md +2 -2
- package/.claude/commands/6aspec/green/model.md +2 -2
- package/.claude/commands/6aspec/green/new.md +2 -2
- package/.claude/commands/6aspec/green/rollback.md +1 -1
- package/.claude/commands/6aspec/green/status.md +1 -1
- package/.claude/commands/6aspec/green/tasks.md +2 -2
- package/.claude/commands/6aspec/green/visual-logic.md +2 -2
- package/.claude/settings.local.json +21 -1
- package/.cursor/commands/6aspec/brown/explore.md +11 -0
- package/.cursor/commands/6aspec/brown/update.md +9 -0
- package/.cursor/commands/6aspec/code.md +8 -0
- package/.cursor/commands/6aspec/green/archive.md +1 -1
- package/.cursor/commands/6aspec/green/clarify.md +2 -2
- package/.cursor/commands/6aspec/green/continue.md +1 -1
- package/.cursor/commands/6aspec/green/design.md +2 -2
- package/.cursor/commands/6aspec/green/{execute-task.md → implement.md} +1 -1
- package/.cursor/commands/6aspec/green/import-model-table.md +1 -1
- package/.cursor/commands/6aspec/green/init.md +2 -2
- package/.cursor/commands/6aspec/green/model.md +2 -2
- package/.cursor/commands/6aspec/green/new.md +2 -2
- package/.cursor/commands/6aspec/green/rollback.md +1 -1
- package/.cursor/commands/6aspec/green/status.md +1 -1
- package/.cursor/commands/6aspec/green/tasks.md +2 -2
- package/.cursor/commands/6aspec/green/visual-logic.md +2 -2
- package/README.md +1 -1
- package/lib/cli.js +2 -2
- package/lib/installer.js +19 -2
- package/package.json +1 -1
- /package/.6aspec/rules/green/{6A_constitution.md → green_constitution.md} +0 -0
- /package/.6aspec/rules/green/{6A_design_sop.md → green_design_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_import_model_table_sop.md → green_import_model_table_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_init_event_list_sop.md → green_init_event_list_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_init_map_sop.md → green_init_map_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_model_sop.md → green_model_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_rollback_sop.md → green_rollback_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_visual_logic_sop.md → green_visual_logic_sop.md} +0 -0
|
@@ -30,31 +30,25 @@
|
|
|
30
30
|
```
|
|
31
31
|
问题:"请选择适合的流程深度:"
|
|
32
32
|
选项:
|
|
33
|
-
- 轻量级 -
|
|
34
|
-
- 标准级 - 深入分析(
|
|
35
|
-
- 完整级 - 全生命周期(understand → specs → impact → design → tasks → verify → review)(推荐用于关键变更)
|
|
33
|
+
- 轻量级 - 无需分析现有系统(proposal → specs → design → tasks)(推荐用于与现有业务低耦合的需求)
|
|
34
|
+
- 标准级 - 深入分析(analyze → proposal → specs → design → tasks)(推荐用于需要分析现有业务影响面的需求)
|
|
36
35
|
- 快速通道 - 简单修复(直接实现,适用于Bug修复、单文件改动)
|
|
37
36
|
```
|
|
38
37
|
|
|
39
38
|
**流程深度说明**:
|
|
40
39
|
|
|
41
40
|
**轻量级(Lightweight)**:
|
|
42
|
-
- 阶段:proposal →
|
|
43
|
-
- 产出:proposal.md, design.md, tasks.md
|
|
44
|
-
-
|
|
45
|
-
-
|
|
41
|
+
- 阶段:proposal → specs → design → tasks
|
|
42
|
+
- 产出:proposal.md, specs.md, design.md, tasks-overview.md
|
|
43
|
+
- 适用:与现有业务低耦合,无需深入分析现有系统(但可参考现有实现模式)
|
|
44
|
+
- 典型场景:新增独立业务模块/包/Maven模块、新增简单功能、UI调整、配置变更
|
|
45
|
+
- 注意:业务本身可以有一定复杂度,关键是不需要分析现有业务的影响面
|
|
46
46
|
|
|
47
47
|
**标准级(Standard)**:
|
|
48
|
-
- 阶段:
|
|
49
|
-
- 产出:
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
**完整级(Complete)**:
|
|
54
|
-
- 阶段:understand → specs → impact → design → tasks → implement → verify → review
|
|
55
|
-
- 产出:understanding.md, specs.md, impact-analysis.md, design.md, tasks.md, verification-report.md, post-implementation-review.md
|
|
56
|
-
- 适用:关键变更、需要完整追踪和评估
|
|
57
|
-
- 示例:核心业务逻辑变更、重要功能重构
|
|
48
|
+
- 阶段:analyze → proposal → specs → design → tasks
|
|
49
|
+
- 产出:analysis.md, proposal.md, specs.md, design.md, tasks-overview.md
|
|
50
|
+
- 适用:与现有业务高耦合,需要深入理解现有系统并评估影响面
|
|
51
|
+
- 典型场景:修改/扩展现有功能、新增业务字段(多表联动)、复杂报表、工作流改造
|
|
58
52
|
|
|
59
53
|
**快速通道(Quick)**:
|
|
60
54
|
- 阶段:直接实现
|
|
@@ -73,8 +67,39 @@
|
|
|
73
67
|
mkdir -p "6aspecdoc/brown/<name>/tasks"
|
|
74
68
|
```
|
|
75
69
|
|
|
70
|
+
创建原始需求文件 `6aspecdoc/brown/<name>/artifacts/original-requirement.md`:
|
|
71
|
+
|
|
72
|
+
**情况A:直接文字描述(inputSource.type = "text")**:
|
|
73
|
+
```markdown
|
|
74
|
+
# 原始需求
|
|
75
|
+
|
|
76
|
+
<用户输入的原始需求描述,原文记录,不做加工>
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
> **需求来源**: text
|
|
81
|
+
> **创建时间**: <timestamp>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**情况B:文件引用(inputSource.type = "file")**:
|
|
85
|
+
```markdown
|
|
86
|
+
# 原始需求
|
|
87
|
+
|
|
88
|
+
> **需求来源文件**: `<文件路径>`
|
|
89
|
+
>
|
|
90
|
+
> 完整需求内容请参考上述文件。
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
> **需求来源**: file
|
|
95
|
+
> **来源文件**: <文件路径>
|
|
96
|
+
> **创建时间**: <timestamp>
|
|
97
|
+
```
|
|
98
|
+
|
|
76
99
|
创建状态文件 `6aspecdoc/brown/<name>/status.json`:
|
|
77
100
|
|
|
101
|
+
**注意**:所有时间戳必须使用东八区(北京时间)格式:`yyyy-MM-dd HH:mm:ss`(例如:`2026-02-20 12:36:23`)
|
|
102
|
+
|
|
78
103
|
**轻量级**:
|
|
79
104
|
```json
|
|
80
105
|
{
|
|
@@ -89,6 +114,7 @@
|
|
|
89
114
|
},
|
|
90
115
|
"phases": {
|
|
91
116
|
"proposal": "pending",
|
|
117
|
+
"specs": "blocked",
|
|
92
118
|
"design": "blocked",
|
|
93
119
|
"tasks": "blocked",
|
|
94
120
|
"implement": "blocked"
|
|
@@ -102,7 +128,7 @@
|
|
|
102
128
|
{
|
|
103
129
|
"name": "<name>",
|
|
104
130
|
"flowDepth": "standard",
|
|
105
|
-
"status": "
|
|
131
|
+
"status": "analyze_pending",
|
|
106
132
|
"createdAt": "<timestamp>",
|
|
107
133
|
"lastModified": "<timestamp>",
|
|
108
134
|
"inputSource": {
|
|
@@ -110,9 +136,9 @@
|
|
|
110
136
|
"filePath": "<仅 type=file 时填写>"
|
|
111
137
|
},
|
|
112
138
|
"phases": {
|
|
113
|
-
"
|
|
139
|
+
"analyze": "pending",
|
|
140
|
+
"proposal": "blocked",
|
|
114
141
|
"specs": "blocked",
|
|
115
|
-
"impact": "blocked",
|
|
116
142
|
"design": "blocked",
|
|
117
143
|
"tasks": "blocked",
|
|
118
144
|
"implement": "blocked"
|
|
@@ -121,32 +147,6 @@
|
|
|
121
147
|
}
|
|
122
148
|
```
|
|
123
149
|
|
|
124
|
-
**完整级**:
|
|
125
|
-
```json
|
|
126
|
-
{
|
|
127
|
-
"name": "<name>",
|
|
128
|
-
"flowDepth": "complete",
|
|
129
|
-
"status": "understanding_pending",
|
|
130
|
-
"createdAt": "<timestamp>",
|
|
131
|
-
"lastModified": "<timestamp>",
|
|
132
|
-
"inputSource": {
|
|
133
|
-
"type": "text | file",
|
|
134
|
-
"filePath": "<仅 type=file 时填写>"
|
|
135
|
-
},
|
|
136
|
-
"phases": {
|
|
137
|
-
"understand": "pending",
|
|
138
|
-
"specs": "blocked",
|
|
139
|
-
"impact": "blocked",
|
|
140
|
-
"design": "blocked",
|
|
141
|
-
"tasks": "blocked",
|
|
142
|
-
"implement": "blocked",
|
|
143
|
-
"verify": "blocked",
|
|
144
|
-
"review": "blocked"
|
|
145
|
-
},
|
|
146
|
-
"artifacts": []
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
150
|
创建需求索引文件 `6aspecdoc/brown/<name>/requirement.md`:
|
|
151
151
|
```markdown
|
|
152
152
|
# <需求标题>
|
|
@@ -159,25 +159,14 @@
|
|
|
159
159
|
|
|
160
160
|
## 原始需求
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
<!-- 情况A:直接文字描述(inputSource.type = "text") -->
|
|
165
|
-
<用户输入的原始需求描述,原文记录,不做加工>
|
|
166
|
-
|
|
167
|
-
<!-- 情况B:文件引用(inputSource.type = "file") -->
|
|
168
|
-
> **需求来源文件**:`<文件路径>`
|
|
169
|
-
>
|
|
170
|
-
> 完整需求内容请参考上述文件。
|
|
162
|
+
详见:[artifacts/original-requirement.md](artifacts/original-requirement.md)
|
|
171
163
|
|
|
172
|
-
##
|
|
164
|
+
## 当前阶段
|
|
173
165
|
|
|
174
|
-
|
|
175
|
-
- 轻量级流程:[proposal.md](artifacts/proposal.md) - 需求提案(Why、What、Impact)
|
|
176
|
-
- 标准级/完整级流程:[understanding.md](artifacts/understanding.md) - 需求理解与现状分析
|
|
166
|
+
<当前阶段名称>
|
|
177
167
|
|
|
178
|
-
|
|
168
|
+
## 下一步操作
|
|
179
169
|
|
|
180
|
-
**下一步操作**:
|
|
181
170
|
- 运行 `/6aspec:brown:<next-command>` 继续下一阶段
|
|
182
171
|
- 或运行 `/6aspec:brown:continue` 自动进入下一阶段
|
|
183
172
|
|
|
@@ -187,25 +176,16 @@
|
|
|
187
176
|
|
|
188
177
|
**轻量级流程(4阶段)**:
|
|
189
178
|
- [ ] Proposal - 需求提案
|
|
179
|
+
- [ ] Specs - 需求规格定义
|
|
190
180
|
- [ ] Design - 技术方案设计
|
|
191
181
|
- [ ] Tasks - 任务拆解
|
|
192
|
-
- [ ] Implement - 执行实现
|
|
193
182
|
|
|
194
183
|
**标准级流程(5阶段)**:
|
|
195
|
-
- [ ]
|
|
196
|
-
- [ ]
|
|
197
|
-
- [ ]
|
|
198
|
-
- [ ] Tasks - 任务拆解
|
|
199
|
-
- [ ] Implement - 执行实现
|
|
200
|
-
|
|
201
|
-
**完整级流程(7阶段)**:
|
|
202
|
-
- [ ] Understand - 需求理解与现状分析
|
|
203
|
-
- [ ] Impact - 影响面分析
|
|
184
|
+
- [ ] Analyze - 需求澄清与影响面分析
|
|
185
|
+
- [ ] Proposal - 需求提案
|
|
186
|
+
- [ ] Specs - 需求规格定义
|
|
204
187
|
- [ ] Design - 技术方案设计
|
|
205
188
|
- [ ] Tasks - 任务拆解
|
|
206
|
-
- [ ] Implement - 执行实现
|
|
207
|
-
- [ ] Verify - 验证实现
|
|
208
|
-
- [ ] Review - 实施后评估
|
|
209
189
|
|
|
210
190
|
## 查看详细信息
|
|
211
191
|
|
|
@@ -243,9 +223,8 @@
|
|
|
243
223
|
|
|
244
224
|
### 下一步
|
|
245
225
|
- 轻量级: 运行 `/6aspec:brown:proposal` 创建需求提案
|
|
246
|
-
- 标准级/完整级: 运行 `/6aspec:brown:
|
|
226
|
+
- 标准级/完整级: 运行 `/6aspec:brown:analyze` 进行需求澄清与影响面分析
|
|
247
227
|
- 快速通道: 运行 `/6aspec:brown:quick` 直接实现
|
|
248
|
-
- 或运行 `/6aspec:brown:ff` 快速完成分析阶段
|
|
249
228
|
- 或运行 `/6aspec:brown:continue` 自动进入下一阶段
|
|
250
229
|
```
|
|
251
230
|
|
|
@@ -254,4 +233,4 @@
|
|
|
254
233
|
- 不要超出初始化范围
|
|
255
234
|
- 如果名称无效(非 kebab-case),要求提供有效名称
|
|
256
235
|
- 如果同名需求已存在,建议使用 `/6aspec:brown:continue` 或选择新名称
|
|
257
|
-
- 必须让用户选择流程深度
|
|
236
|
+
- 必须让用户选择流程深度
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# 棕地需求 - Proposal SOP
|
|
2
2
|
|
|
3
|
-
创建需求提案
|
|
3
|
+
创建需求提案
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**适用流程**:轻量级、标准级、完整级
|
|
6
|
+
|
|
7
|
+
**流程定位**:
|
|
8
|
+
- **轻量级**:第一阶段,基于需求描述(如果之前使用了探索模式并生成了 explore-summary.md,也会参考探索发现)
|
|
9
|
+
- **标准级/完整级**:第二阶段,基于 analyze 的分析结果
|
|
6
10
|
|
|
7
11
|
**输入**:`/6aspec:brown:proposal` 后可选需求名称。
|
|
8
12
|
|
|
@@ -11,106 +15,181 @@
|
|
|
11
15
|
1. **选择需求并检查状态**
|
|
12
16
|
|
|
13
17
|
- 读取 `6aspecdoc/brown/<name>/status.json`
|
|
14
|
-
-
|
|
15
|
-
|
|
18
|
+
- 根据 `flowDepth` 检查前置阶段:
|
|
19
|
+
- **轻量级**:确认 `phases.proposal` 为 "pending"
|
|
20
|
+
- **标准级/完整级**:确认 `phases.analyze` 为 "done",如果未完成提示先运行 `/6aspec:brown:analyze`
|
|
21
|
+
- 如果proposal已完成,提示使用 `/6aspec:brown:continue` 进入下一阶段
|
|
16
22
|
|
|
17
|
-
2.
|
|
23
|
+
2. **读取前置文档**
|
|
18
24
|
|
|
19
|
-
|
|
20
|
-
- 如果 `inputSource.type = "text"`:直接使用其中记录的需求描述。
|
|
21
|
-
- 如果 `inputSource.type = "file"`:读取记录的来源文件路径,获取完整需求内容。
|
|
25
|
+
根据 `flowDepth` 读取不同的前置文档:
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- 预期影响是什么?(Impact)
|
|
27
|
+
**轻量级流程**:
|
|
28
|
+
- `6aspecdoc/brown/<name>/artifacts/original-requirement.md` - 原始需求
|
|
29
|
+
- `6aspecdoc/brown/<name>/explore-summary.md` - 探索摘要(如果存在)
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
**标准级/完整级流程**:
|
|
32
|
+
- `6aspecdoc/brown/<name>/artifacts/original-requirement.md` - 原始需求
|
|
33
|
+
- `6aspecdoc/brown/<name>/artifacts/analysis.md` - 需求澄清与影响面分析
|
|
29
34
|
|
|
30
|
-
|
|
31
|
-
```markdown
|
|
32
|
-
# 需求提案:<需求标题>
|
|
35
|
+
3. **执行轻量级探索并识别待明确问题**(仅轻量级流程)
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
**触发条件**:`flowDepth` 为 "lightweight" **且满足以下任一条件**:
|
|
38
|
+
- 不存在 `explore-summary.md` **且** 对话上下文中没有探索内容
|
|
39
|
+
- 用户明确要求探索(例如:"先了解一下现有实现"、"需要探索代码库")
|
|
40
|
+
|
|
41
|
+
**上下文识别**:
|
|
42
|
+
|
|
43
|
+
在执行探索前,先检查是否已有探索内容:
|
|
44
|
+
|
|
45
|
+
a. **检查explore-summary.md**:
|
|
46
|
+
- 如果存在 `6aspecdoc/brown/<name>/explore-summary.md`,读取它
|
|
47
|
+
- 除非用户明确要求重新探索,否则使用已有的探索摘要
|
|
48
|
+
|
|
49
|
+
b. **检查对话上下文**:
|
|
50
|
+
- 检查对话历史中是否包含探索内容(用户之前执行了 `/6aspec:brown:explore` 命令)
|
|
51
|
+
- 即使没有生成explore-summary.md文件,探索内容仍在对话上下文中
|
|
52
|
+
- 如果发现对话上下文中有探索内容,可以直接利用这些信息,不需要重新探索
|
|
53
|
+
|
|
54
|
+
c. **判断是否需要执行新的探索**:
|
|
55
|
+
- 如果既没有explore-summary.md,也没有对话上下文中的探索内容 → 执行轻量级探索
|
|
56
|
+
- 如果用户明确要求探索(即使已有探索内容) → 执行轻量级探索
|
|
57
|
+
- 如果已有探索内容(explore-summary.md或对话上下文)且用户未明确要求 → 跳过探索,直接使用已有内容
|
|
58
|
+
|
|
59
|
+
**步骤**:
|
|
60
|
+
|
|
61
|
+
a. **执行轻量级探索**(如果需要)
|
|
62
|
+
|
|
63
|
+
从需求描述中提取关键词(实体名、功能名、业务术语),然后执行快速搜索:
|
|
64
|
+
|
|
65
|
+
- 搜索相关实体类:pattern = `class.*<关键词>.*Entity`,type = `java`,glob = `*Entity.java`
|
|
66
|
+
- 搜索相关服务类:pattern = `class.*<关键词>.*Service`,type = `java`,glob = `*Service.java`
|
|
67
|
+
- 搜索相关 Controller 类:pattern = `class.*<关键词>.*Controller`,type = `java`,glob = `*Controller.java`
|
|
68
|
+
- 搜索关键业务逻辑:pattern = `<关键方法名>`,type = `java`
|
|
69
|
+
|
|
70
|
+
识别受影响的核心文件(3-5 个),快速阅读关键代码片段。
|
|
71
|
+
|
|
72
|
+
b. **识别待明确问题**
|
|
73
|
+
|
|
74
|
+
基于探索结果(explore-summary.md、对话上下文中的探索内容、或刚刚执行的轻量级探索)和需求描述,识别不清楚的地方,生成待明确问题清单:
|
|
39
75
|
|
|
40
|
-
|
|
76
|
+
**问题类型**:
|
|
77
|
+
- 字段设计问题(名称、类型、必填、默认值、值域)
|
|
78
|
+
- 业务规则问题(是否可修改、是否继承、是否同步)
|
|
79
|
+
- 权限和统计问题(权限控制、统计报表)
|
|
80
|
+
- 集成和兼容问题(与其他模块的集成、数据迁移)
|
|
41
81
|
|
|
42
|
-
|
|
43
|
-
<业务背景描述>
|
|
82
|
+
**问题数量**:2-5个最重要的问题(保持轻量)
|
|
44
83
|
|
|
45
|
-
|
|
46
|
-
<要解决的问题>
|
|
84
|
+
c. **询问用户**
|
|
47
85
|
|
|
48
|
-
|
|
49
|
-
<预期收益>
|
|
86
|
+
如果有待明确问题,展示问题清单并等待用户回答:
|
|
50
87
|
|
|
51
|
-
|
|
88
|
+
```
|
|
89
|
+
## 需要明确的问题
|
|
90
|
+
|
|
91
|
+
基于代码库探索,发现以下问题需要明确:
|
|
52
92
|
|
|
53
|
-
###
|
|
54
|
-
|
|
93
|
+
### 字段设计
|
|
94
|
+
1. <问题1>
|
|
95
|
+
2. <问题2>
|
|
55
96
|
|
|
56
|
-
###
|
|
97
|
+
### 业务规则
|
|
98
|
+
3. <问题3>
|
|
99
|
+
4. <问题4>
|
|
57
100
|
|
|
58
|
-
|
|
59
|
-
|
|
101
|
+
请回答上述问题,我会基于你的回答生成proposal。
|
|
102
|
+
```
|
|
60
103
|
|
|
61
|
-
|
|
62
|
-
- <验收标准1>
|
|
63
|
-
- <验收标准2>
|
|
104
|
+
**等待用户回答**,不要自动进入下一步。
|
|
64
105
|
|
|
65
|
-
|
|
66
|
-
**描述**:<功能描述>
|
|
106
|
+
d. **处理用户回答**
|
|
67
107
|
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
108
|
+
当用户回答问题后:
|
|
109
|
+
- 记录用户的回答(用于proposal生成)
|
|
110
|
+
- 继续执行步骤4(创建提案文档)
|
|
71
111
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
-
|
|
112
|
+
**注意**:
|
|
113
|
+
- 探索结果和用户回答不生成独立文档,直接用于proposal生成
|
|
114
|
+
- 如果没有待明确问题,直接跳过询问步骤,继续生成proposal
|
|
115
|
+
- 优先使用explore-summary.md(如果存在且用户未明确要求重新探索)
|
|
116
|
+
- 其次利用对话上下文中的探索内容(如果用户之前执行了explore命令)
|
|
117
|
+
- 最后才执行新的轻量级探索(如果既没有explore-summary.md也没有对话上下文中的探索内容)
|
|
118
|
+
- 即使已有探索内容,如果用户明确要求探索,也应该执行新的探索
|
|
75
119
|
|
|
76
|
-
|
|
77
|
-
|
|
120
|
+
4. **创建提案文档(OpenSpec 格式)**
|
|
121
|
+
|
|
122
|
+
创建 `6aspecdoc/brown/<name>/artifacts/proposal.md`:
|
|
123
|
+
```markdown
|
|
124
|
+
# Proposal: <需求标题>
|
|
78
125
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
126
|
+
> **需求**: <name>
|
|
127
|
+
> **流程**: <flowDepth>
|
|
128
|
+
> **阶段**: Proposal
|
|
129
|
+
> **状态**: ✅ 已完成
|
|
130
|
+
> **创建时间**: <timestamp>
|
|
82
131
|
|
|
83
|
-
##
|
|
132
|
+
## Why
|
|
84
133
|
|
|
85
|
-
|
|
86
|
-
- 数据库:<影响描述>
|
|
87
|
-
- 后端代码:<影响描述>
|
|
88
|
-
- 前端代码:<影响描述>
|
|
89
|
-
- API接口:<影响描述>
|
|
134
|
+
<1-2 sentences explaining the problem/opportunity>
|
|
90
135
|
|
|
91
|
-
|
|
92
|
-
- 用户体验:<影响描述>
|
|
93
|
-
- 业务流程:<影响描述>
|
|
136
|
+
## What Changes
|
|
94
137
|
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
138
|
+
<Bullet points of what will be different>
|
|
139
|
+
- <变更点1>
|
|
140
|
+
- <变更点2>
|
|
141
|
+
- <变更点3>
|
|
98
142
|
|
|
99
|
-
##
|
|
143
|
+
## Capabilities
|
|
100
144
|
|
|
101
|
-
|
|
145
|
+
### New Capabilities
|
|
146
|
+
- `<capability-name>`: <brief description>
|
|
147
|
+
- `<capability-name>`: <brief description>
|
|
148
|
+
|
|
149
|
+
### Modified Capabilities
|
|
150
|
+
<!-- If modifying existing behavior -->
|
|
151
|
+
- `<capability-name>`: <brief description>
|
|
152
|
+
|
|
153
|
+
## Impact(范围影响)
|
|
154
|
+
|
|
155
|
+
> 只描述「范围影响」而非实现细节:不写代码/类/数据库表层面的改动。
|
|
156
|
+
|
|
157
|
+
- **业务影响**:<影响哪些业务流程/指标/体验>
|
|
158
|
+
- **用户与角色影响**:<影响哪些角色/人群/是否需要公告或培训>
|
|
159
|
+
- **系统模块影响**:<影响哪些系统/领域模块(模块级即可)>
|
|
160
|
+
- **兼容性影响**:<行为/接口是否向后兼容;对现有流程是否有行为变化>
|
|
161
|
+
- **数据影响(业务口径)**:<业务字段含义/口径变化;是否需要补数据/迁移(不写表结构)>
|
|
162
|
+
- **运营/流程影响**:<运营配置、审批链路、权限策略是否变化>
|
|
163
|
+
- **风险与回滚影响**:<主要风险点;是否可灰度;回滚对业务的影响>
|
|
164
|
+
|
|
165
|
+
## Next Steps
|
|
166
|
+
|
|
167
|
+
- 轻量级流程:运行 `/6aspec:brown:specs` 进行需求规格定义
|
|
168
|
+
- 标准级/完整级流程:运行 `/6aspec:brown:specs` 进行需求规格定义
|
|
102
169
|
```
|
|
103
170
|
|
|
104
|
-
|
|
171
|
+
**注意**:
|
|
172
|
+
- Proposal 格式遵循 OpenSpec 规范,保持简洁
|
|
173
|
+
- Why 部分:1-2 句话说明问题或机会
|
|
174
|
+
- What Changes 部分:列出主要变更点
|
|
175
|
+
- Capabilities 部分:列出新增或修改的系统能力(每个 capability 将对应一个 spec 文件)
|
|
176
|
+
- Impact(范围影响)部分:只写业务/系统范围影响、兼容性、数据口径、风险与回滚等,不写代码/类/数据库表等实现细节
|
|
177
|
+
- Impact 内容基于:原始需求描述、(如有)explore 摘要、以及标准级/完整级流程中的 understanding / impact-analysis 结论进行归纳
|
|
178
|
+
- 如果轻量级流程在步骤3中询问了用户问题,基于用户的回答生成proposal
|
|
179
|
+
|
|
180
|
+
5. **更新状态**
|
|
105
181
|
|
|
106
182
|
更新 `6aspecdoc/brown/<name>/status.json`:
|
|
183
|
+
|
|
184
|
+
**轻量级流程**:
|
|
107
185
|
```json
|
|
108
186
|
{
|
|
109
|
-
"status": "
|
|
187
|
+
"status": "specs_pending",
|
|
110
188
|
"flowDepth": "lightweight",
|
|
111
189
|
"phases": {
|
|
112
190
|
"proposal": "done",
|
|
113
|
-
"
|
|
191
|
+
"specs": "pending",
|
|
192
|
+
"design": "blocked",
|
|
114
193
|
"tasks": "blocked",
|
|
115
194
|
"implement": "blocked"
|
|
116
195
|
},
|
|
@@ -118,10 +197,68 @@
|
|
|
118
197
|
}
|
|
119
198
|
```
|
|
120
199
|
|
|
121
|
-
|
|
200
|
+
**标准级流程**:
|
|
201
|
+
```json
|
|
202
|
+
{
|
|
203
|
+
"status": "specs_pending",
|
|
204
|
+
"flowDepth": "standard",
|
|
205
|
+
"phases": {
|
|
206
|
+
"analyze": "done",
|
|
207
|
+
"proposal": "done",
|
|
208
|
+
"specs": "pending",
|
|
209
|
+
"design": "blocked",
|
|
210
|
+
"tasks": "blocked",
|
|
211
|
+
"implement": "blocked"
|
|
212
|
+
},
|
|
213
|
+
"artifacts": ["analysis.md", "proposal.md"]
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
同时更新 `6aspecdoc/brown/<name>/requirement.md`:
|
|
218
|
+
- 更新"状态"字段为 `📋 Specs 待开始`
|
|
219
|
+
- 更新"最后修改"时间戳为 `<timestamp>`
|
|
220
|
+
- 更新"当前阶段"为 `Proposal - 需求提案(已完成)`
|
|
221
|
+
- 更新"下一步操作"为 `运行 /6aspec:brown:specs 继续下一阶段`
|
|
222
|
+
- 在"进度概览"中标记 Proposal 阶段为已完成 `[x]`
|
|
223
|
+
|
|
224
|
+
6. **停止并等待用户指令**
|
|
122
225
|
|
|
123
226
|
**输出**
|
|
124
227
|
|
|
228
|
+
根据 `flowDepth` 和执行阶段显示不同的输出信息:
|
|
229
|
+
|
|
230
|
+
**轻量级流程 - 待明确问题阶段**(如果步骤3中发现有待明确问题):
|
|
231
|
+
```
|
|
232
|
+
## 需要明确的问题:<name>
|
|
233
|
+
|
|
234
|
+
**流程**: 轻量级
|
|
235
|
+
**阶段**: Proposal(探索中)
|
|
236
|
+
|
|
237
|
+
### 代码库探索结果
|
|
238
|
+
- 相关实体类:<数量>
|
|
239
|
+
- 相关服务类:<数量>
|
|
240
|
+
- 受影响文件:<数量>
|
|
241
|
+
|
|
242
|
+
### 待明确问题
|
|
243
|
+
|
|
244
|
+
基于代码库探索,发现以下问题需要明确:
|
|
245
|
+
|
|
246
|
+
#### 字段设计
|
|
247
|
+
1. <问题1>
|
|
248
|
+
2. <问题2>
|
|
249
|
+
|
|
250
|
+
#### 业务规则
|
|
251
|
+
3. <问题3>
|
|
252
|
+
4. <问题4>
|
|
253
|
+
|
|
254
|
+
#### 其他
|
|
255
|
+
5. <问题5>
|
|
256
|
+
|
|
257
|
+
### 下一步
|
|
258
|
+
请回答上述问题,我会基于你的回答生成proposal。
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**轻量级流程 - Proposal完成**:
|
|
125
262
|
```
|
|
126
263
|
## Proposal 完成:<name>
|
|
127
264
|
|
|
@@ -129,19 +266,37 @@
|
|
|
129
266
|
**进度**: 1/4 阶段完成
|
|
130
267
|
|
|
131
268
|
### 提案概要
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
-
|
|
269
|
+
- Why: <简述>
|
|
270
|
+
- What Changes: <数量> 项变更
|
|
271
|
+
- Capabilities: <数量> 个能力
|
|
135
272
|
|
|
136
|
-
###
|
|
137
|
-
|
|
273
|
+
### 文档位置
|
|
274
|
+
6aspecdoc/brown/<name>/artifacts/proposal.md
|
|
275
|
+
|
|
276
|
+
### 下一步
|
|
277
|
+
- 直接回复补充或修正提案内容 → 我会更新本阶段文档(proposal.md)
|
|
278
|
+
- 运行 `/6aspec:brown:specs` → 进入需求规格定义阶段
|
|
279
|
+
- 运行 `/6aspec:brown:continue` → 自动进入下一阶段
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**标准级流程**:
|
|
283
|
+
```
|
|
284
|
+
## Proposal 完成:<name>
|
|
285
|
+
|
|
286
|
+
**流程**: 标准级
|
|
287
|
+
**进度**: 2/5 阶段完成
|
|
288
|
+
|
|
289
|
+
### 提案概要
|
|
290
|
+
- Why: <简述>
|
|
291
|
+
- What Changes: <数量> 项变更
|
|
292
|
+
- Capabilities: <数量> 个能力
|
|
138
293
|
|
|
139
294
|
### 文档位置
|
|
140
295
|
6aspecdoc/brown/<name>/artifacts/proposal.md
|
|
141
296
|
|
|
142
297
|
### 下一步
|
|
143
298
|
- 直接回复补充或修正提案内容 → 我会更新本阶段文档(proposal.md)
|
|
144
|
-
- 运行 `/6aspec:brown:
|
|
299
|
+
- 运行 `/6aspec:brown:specs` → 进入需求规格定义阶段
|
|
145
300
|
- 运行 `/6aspec:brown:continue` → 自动进入下一阶段
|
|
146
301
|
```
|
|
147
302
|
|
|
@@ -154,7 +309,19 @@
|
|
|
154
309
|
4. **禁止**:不得自动进入下一阶段
|
|
155
310
|
|
|
156
311
|
**防护措施**
|
|
157
|
-
-
|
|
312
|
+
- 适用于所有流程(轻量级、标准级、完整级)
|
|
158
313
|
- 如果需求信息不明确,必须询问用户
|
|
159
|
-
- 提案必须包含Why、What、Impact三个核心部分
|
|
314
|
+
- 提案必须包含 Why、What、Impact(范围影响) 三个核心部分
|
|
315
|
+
- 提案应聚焦高层次的业务目标和核心能力,不包含详细的功能需求(FR)和验收标准(AC)
|
|
316
|
+
- 详细的功能需求和验收标准应该在specs阶段定义
|
|
160
317
|
- 风险评估不能省略
|
|
318
|
+
|
|
319
|
+
**轻量级流程的特殊防护措施**:
|
|
320
|
+
- 如果没有explore-summary.md,必须执行轻量级探索(步骤3)
|
|
321
|
+
- 轻量级探索应该快速、聚焦,只搜索关键实体类、服务类和受影响文件
|
|
322
|
+
- 轻量级探索不生成独立文档,探索结果直接用于proposal生成
|
|
323
|
+
- 如果探索过程中发现待明确问题,必须询问用户,不能基于假设生成proposal
|
|
324
|
+
- 待明确问题数量应该控制在2-5个,保持轻量(与标准级/完整级的5-10个问题相比)
|
|
325
|
+
- 如果没有待明确问题,可以直接生成proposal
|
|
326
|
+
- 不要在轻量级流程中执行过于深入的分析(如绘制ERD图、流程图等),这些应该在标准级/完整级流程中完成
|
|
327
|
+
- 轻量级探索的目标是"快速理解现有实现",而不是"深入分析系统架构"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 棕地需求 - Quick SOP
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
快速通道 - 适用于简单修复和小改动。
|
|
4
4
|
|
|
5
5
|
**输入**:`/6aspec:brown:quick` 后的参数是需求名称(kebab-case)或需求描述。
|
|
6
6
|
|
|
@@ -27,10 +27,12 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
创建状态文件 `6aspecdoc/brown/<name>/status.json`:
|
|
30
|
+
|
|
31
|
+
**注意**:所有时间戳必须使用东八区(北京时间)格式:`yyyy-MM-dd HH:mm:ss`(例如:`2026-02-20 12:36:23`)
|
|
32
|
+
|
|
30
33
|
```json
|
|
31
34
|
{
|
|
32
35
|
"name": "<name>",
|
|
33
|
-
"priority": "P2",
|
|
34
36
|
"status": "quick_track",
|
|
35
37
|
"createdAt": "<timestamp>",
|
|
36
38
|
"lastModified": "<timestamp>",
|
|
@@ -43,7 +45,6 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
43
45
|
# <需求标题>
|
|
44
46
|
|
|
45
47
|
> **需求ID**: <name>
|
|
46
|
-
> **优先级**: P2(快速通道)
|
|
47
48
|
> **状态**: 🚀 快速处理中
|
|
48
49
|
> **创建时间**: <timestamp>
|
|
49
50
|
|
|
@@ -102,7 +103,6 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
102
103
|
```
|
|
103
104
|
## 快速处理完成:<name>
|
|
104
105
|
|
|
105
|
-
**优先级**: P2(快速通道)
|
|
106
106
|
**处理时间**: <时间戳>
|
|
107
107
|
|
|
108
108
|
### 修改内容
|
|
@@ -118,7 +118,7 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
118
118
|
- 或归档:运行 `/6aspec:brown:archive` 归档此需求
|
|
119
119
|
|
|
120
120
|
### 注意
|
|
121
|
-
|
|
121
|
+
快速通道跳过了详细的分析和设计阶段。
|
|
122
122
|
如果发现需求比预期复杂,建议使用完整流程(/6aspec:brown:new)。
|
|
123
123
|
```
|
|
124
124
|
|