6aspec 2.0.0-dev.2 → 2.0.0-dev.22
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/brown/brown_archive_sop.md +8 -8
- package/.6aspec/rules/brown/brown_constitution.md +11 -0
- package/.6aspec/rules/brown/brown_continue_sop.md +5 -2
- package/.6aspec/rules/brown/brown_design_sop.md +168 -28
- package/.6aspec/rules/brown/brown_explore_sop.md +314 -0
- package/.6aspec/rules/brown/brown_ff_sop.md +31 -18
- package/.6aspec/rules/brown/brown_impact_sop.md +101 -45
- package/.6aspec/rules/brown/brown_implement_sop.md +3 -3
- package/.6aspec/rules/brown/brown_list_sop.md +12 -12
- package/.6aspec/rules/brown/brown_new_sop.md +58 -34
- package/.6aspec/rules/brown/brown_proposal_sop.md +293 -75
- 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 +29 -19
- package/.6aspec/rules/brown/brown_specs_sop.md +370 -120
- package/.6aspec/rules/brown/brown_status_sop.md +13 -3
- package/.6aspec/rules/brown/brown_tasks_sop.md +18 -5
- package/.6aspec/rules/brown/brown_understand_sop.md +111 -40
- package/.6aspec/rules/brown/brown_verify_sop.md +1 -1
- 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} +3 -3
- package/.6aspec/rules/green/{6A_continue_sop.md → green_continue_sop.md} +3 -3
- 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/commands/6aspec/brown/explore.md +11 -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/commands/opsx/apply.md +152 -0
- package/.claude/commands/opsx/archive.md +157 -0
- package/.claude/commands/opsx/bulk-archive.md +242 -0
- package/.claude/commands/opsx/continue.md +114 -0
- package/.claude/commands/opsx/explore.md +174 -0
- package/.claude/commands/opsx/ff.md +94 -0
- package/.claude/commands/opsx/new.md +69 -0
- package/.claude/commands/opsx/onboard.md +525 -0
- package/.claude/commands/opsx/sync.md +134 -0
- package/.claude/commands/opsx/verify.md +164 -0
- package/.claude/settings.local.json +21 -1
- package/.cursor/commands/6aspec/brown/explore.md +11 -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/.cursor/commands/opsx-apply.md +152 -0
- package/.cursor/commands/opsx-archive.md +157 -0
- package/.cursor/commands/opsx-bulk-archive.md +242 -0
- package/.cursor/commands/opsx-continue.md +114 -0
- package/.cursor/commands/opsx-explore.md +174 -0
- package/.cursor/commands/opsx-ff.md +94 -0
- package/.cursor/commands/opsx-new.md +69 -0
- package/.cursor/commands/opsx-onboard.md +525 -0
- package/.cursor/commands/opsx-sync.md +134 -0
- package/.cursor/commands/opsx-verify.md +164 -0
- package/README.md +1 -1
- package/bin/6aspec +17 -1
- package/lib/cli.js +178 -45
- 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_new_sop.md → green_new_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
|
@@ -1,227 +1,477 @@
|
|
|
1
1
|
# 棕地需求 - Specs SOP
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
需求规格定义
|
|
4
4
|
|
|
5
5
|
**输入**:`/6aspec:brown:specs` 后可选需求名称。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**适用流程**:轻量级、标准级、完整级
|
|
8
8
|
|
|
9
9
|
**步骤**
|
|
10
10
|
|
|
11
11
|
1. **选择需求并检查状态**
|
|
12
12
|
|
|
13
13
|
- 读取 `6aspecdoc/brown/<name>/status.json`
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- 如果是 "lightweight",提示应该使用 `/6aspec:brown:proposal`
|
|
14
|
+
- 根据 `flowDepth` 检查前置阶段:
|
|
15
|
+
- **轻量级**:确认 `phases.proposal` 为 "done",如果未完成提示先运行 `/6aspec:brown:proposal`
|
|
16
|
+
- **标准级/完整级**:确认 `phases.impact` 为 "done",如果未完成提示先运行 `/6aspec:brown:impact`
|
|
18
17
|
|
|
19
18
|
2. **读取前置文档**
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
- `6aspecdoc/brown/<name>/artifacts/01-understanding.md`
|
|
20
|
+
根据 `flowDepth` 读取不同的前置文档:
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
**轻量级流程**:
|
|
23
|
+
- `6aspecdoc/brown/<name>/artifacts/proposal.md`
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
**标准级/完整级流程**:
|
|
26
|
+
- `6aspecdoc/brown/<name>/artifacts/proposal.md`
|
|
27
|
+
- `6aspecdoc/brown/<name>/artifacts/understanding.md`
|
|
28
|
+
- `6aspecdoc/brown/<name>/artifacts/impact-analysis.md`
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
3. **读取问题答案(仅标准级/完整级)**
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
如果是标准级或完整级流程,从 understanding.md 中读取"待明确问题清单"及用户的答案:
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
- 检查问题清单中哪些问题已经有答案(标记为具体值而非"[待确认]")
|
|
35
|
+
- 如果有未回答的问题,提示用户这些问题需要明确,但不阻塞 specs 阶段
|
|
36
|
+
- 基于已有的答案和现状分析,开始定义需求规格
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
- FR-001: <功能描述>
|
|
36
|
-
- 输入:<输入内容>
|
|
37
|
-
- 输出:<输出内容>
|
|
38
|
-
- 业务规则:<业务规则>
|
|
39
|
-
- 验收标准:<验收标准>
|
|
38
|
+
注意:specs 阶段不再提出新问题,所有需求问题应该在 understand 阶段提出并收集。
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
4. **按需探索代码库(可选)**
|
|
41
|
+
|
|
42
|
+
**触发条件**:
|
|
43
|
+
- 需要了解现有字段定义、验证逻辑、Scenario实现方式
|
|
44
|
+
- 需要了解现有的非功能需求实现(如权限控制、性能优化)
|
|
45
|
+
- 用户明确要求探索(例如:"先了解一下现有实现")
|
|
46
|
+
- 信息不足,需要参考现有代码才能定义准确的需求规格
|
|
47
|
+
|
|
48
|
+
**探索方式**:
|
|
49
|
+
|
|
50
|
+
a. **简单搜索**(使用Grep/Glob工具):
|
|
51
|
+
```bash
|
|
52
|
+
# 搜索相关Entity类的字段定义
|
|
53
|
+
rg "private.*<字段名>" --type java -g "*Entity.java" -C 3
|
|
54
|
+
|
|
55
|
+
# 搜索相关验证注解
|
|
56
|
+
rg "@NotNull|@NotEmpty|@Valid" --type java -g "*Entity.java"
|
|
57
|
+
|
|
58
|
+
# 搜索现有的测试场景
|
|
59
|
+
rg "test.*<功能名>" --type java -g "*Test.java"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
b. **复杂探索**(使用Task工具调用Explore agent):
|
|
63
|
+
- 当需要深入理解现有架构模式时
|
|
64
|
+
- 当需要跨多个文件理解业务逻辑时
|
|
65
|
+
|
|
66
|
+
**探索结果处理**:
|
|
67
|
+
- 探索发现直接用于需求规格定义
|
|
68
|
+
- 不生成独立文档
|
|
69
|
+
- 在specs.md中可以标注"基于现有实现:<文件路径>"
|
|
70
|
+
|
|
71
|
+
**注意**:
|
|
72
|
+
- 探索是可选的,不是强制的
|
|
73
|
+
- 如果前置文档(proposal、understanding、impact)已经提供了足够信息,可以跳过探索
|
|
74
|
+
- 探索应该聚焦、快速,避免过度探索
|
|
75
|
+
|
|
76
|
+
5. **基于 Capabilities 定义功能需求**
|
|
77
|
+
|
|
78
|
+
从 proposal.md 中读取 Capabilities 列表,按 Capability 组织功能需求:
|
|
79
|
+
|
|
80
|
+
**功能需求格式**(按 Capability 组织):
|
|
81
|
+
```markdown
|
|
82
|
+
### Capability: <capability-name> [ADD/MODIFY/REMOVE]
|
|
83
|
+
|
|
84
|
+
<Capability 描述,说明这个能力是做什么的>
|
|
85
|
+
|
|
86
|
+
#### Requirement: <需求名称>
|
|
87
|
+
|
|
88
|
+
<需求描述,使用 SHALL/MUST 关键字表示强制性要求>
|
|
89
|
+
|
|
90
|
+
##### Scenario: <场景名称>
|
|
91
|
+
|
|
92
|
+
- **WHEN** <触发条件>
|
|
93
|
+
- **THEN** <预期结果>
|
|
94
|
+
- **AND** <额外的预期结果>(可选)
|
|
95
|
+
|
|
96
|
+
##### Scenario: <另一个场景名称>
|
|
97
|
+
|
|
98
|
+
- **WHEN** <触发条件>
|
|
99
|
+
- **THEN** <预期结果>
|
|
100
|
+
|
|
101
|
+
#### Requirement: <另一个需求名称>
|
|
102
|
+
|
|
103
|
+
<需求描述>
|
|
104
|
+
|
|
105
|
+
##### Scenario: <场景名称>
|
|
106
|
+
|
|
107
|
+
- **WHEN** <触发条件>
|
|
108
|
+
- **THEN** <预期结果>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
5. **基于 Capabilities 定义功能需求**
|
|
112
|
+
|
|
113
|
+
从 proposal.md 中读取 Capabilities 列表,按 Capability 组织功能需求:
|
|
114
|
+
|
|
115
|
+
**功能需求格式**(按 Capability 组织):
|
|
116
|
+
```markdown
|
|
117
|
+
### Capability: <capability-name> [ADD/MODIFY/REMOVE]
|
|
118
|
+
|
|
119
|
+
<Capability 描述,说明这个能力是做什么的>
|
|
120
|
+
|
|
121
|
+
#### Requirement: <需求名称>
|
|
122
|
+
|
|
123
|
+
<需求描述,使用 SHALL/MUST 关键字表示强制性要求>
|
|
124
|
+
|
|
125
|
+
##### Scenario: <场景名称>
|
|
126
|
+
|
|
127
|
+
- **WHEN** <触发条件>
|
|
128
|
+
- **THEN** <预期结果>
|
|
129
|
+
- **AND** <额外的预期结果>(可选)
|
|
130
|
+
|
|
131
|
+
##### Scenario: <另一个场景名称>
|
|
132
|
+
|
|
133
|
+
- **WHEN** <触发条件>
|
|
134
|
+
- **THEN** <预期结果>
|
|
135
|
+
|
|
136
|
+
#### Requirement: <另一个需求名称>
|
|
137
|
+
|
|
138
|
+
<需求描述>
|
|
139
|
+
|
|
140
|
+
##### Scenario: <场景名称>
|
|
141
|
+
|
|
142
|
+
- **WHEN** <触发条件>
|
|
143
|
+
- **THEN** <预期结果>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**组织原则**:
|
|
147
|
+
- 每个 Capability 对应 proposal.md 中的一个能力
|
|
148
|
+
- 在 Capability 级别标识变更类型:[ADD](新增)、[MODIFY](修改)、[REMOVE](移除)
|
|
149
|
+
- 每个 Capability 下包含多个 Requirements
|
|
150
|
+
- 每个 Requirement 应该是独立的、可验证的
|
|
151
|
+
- 每个 Scenario 使用 WHEN/THEN 格式,天然可测试
|
|
152
|
+
- 使用 SHALL/MUST 关键字表示强制性要求,SHOULD 表示推荐性要求
|
|
43
153
|
- 功能需求应该从用户视角描述(做什么,而不是怎么做)
|
|
44
154
|
- 避免技术实现细节(技术细节放在 design 阶段)
|
|
45
155
|
|
|
46
|
-
|
|
156
|
+
6. **定义非功能需求(可选)**
|
|
157
|
+
|
|
158
|
+
明确系统应该满足的质量标准。**注意:只写有明确要求的项,不要为了完整性而写空泛内容。**
|
|
159
|
+
|
|
160
|
+
**非功能需求格式**:
|
|
161
|
+
```markdown
|
|
162
|
+
### 性能需求
|
|
163
|
+
- 响应时间 SHALL < 200ms
|
|
164
|
+
- 并发量 SHALL 支持 1000+ QPS
|
|
165
|
+
|
|
166
|
+
### 安全需求
|
|
167
|
+
- 权限控制:只有管理员 SHALL 可以修改
|
|
168
|
+
- 数据加密:敏感数据 SHALL 加密存储
|
|
169
|
+
|
|
170
|
+
### 可用性需求
|
|
171
|
+
- 易用性:界面 SHOULD 符合团队 UI 规范
|
|
172
|
+
- 可维护性:代码 SHOULD 遵循现有架构模式
|
|
47
173
|
|
|
48
|
-
|
|
174
|
+
### 兼容性需求
|
|
175
|
+
- 浏览器:SHALL 支持 Chrome/Firefox/Safari 最新版本
|
|
176
|
+
- 数据库:SHALL 兼容现有数据库版本
|
|
177
|
+
```
|
|
49
178
|
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
179
|
+
**注意事项**:
|
|
180
|
+
- 使用 SHALL/MUST 表示强制性要求,SHOULD 表示推荐性要求
|
|
181
|
+
- 如果某个类别(如性能、安全)没有明确要求,可以省略该小节
|
|
182
|
+
- 避免写"遵循最佳实践"等空泛描述
|
|
54
183
|
|
|
55
|
-
|
|
184
|
+
7. **定义范围边界(可选)**
|
|
56
185
|
|
|
57
|
-
|
|
186
|
+
明确做什么、不做什么,以及关键约束:
|
|
58
187
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
188
|
+
**范围边界格式**:
|
|
189
|
+
```markdown
|
|
190
|
+
## 1. 范围边界
|
|
62
191
|
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
- 时间约束:<时间上的限制>
|
|
192
|
+
**本次实现**:
|
|
193
|
+
- <明确包含的核心功能>
|
|
194
|
+
- <明确包含的核心功能>
|
|
67
195
|
|
|
68
|
-
|
|
196
|
+
**明确不包含**:
|
|
197
|
+
- <明确排除的功能或场景>
|
|
198
|
+
- <明确排除的功能或场景>
|
|
69
199
|
|
|
70
|
-
|
|
200
|
+
**关键约束**(可选):
|
|
201
|
+
- <技术约束:如必须使用某技术栈、兼容某版本>
|
|
202
|
+
- <业务约束:如必须满足某业务规则>
|
|
203
|
+
- <时间约束:如必须在某时间前完成>
|
|
204
|
+
```
|
|
71
205
|
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
206
|
+
**注意事项**:
|
|
207
|
+
- 范围边界用于明确需求边界,避免范围蔓延
|
|
208
|
+
- "本次实现"应该简洁列出核心功能点
|
|
209
|
+
- "明确不包含"用于排除容易混淆的功能
|
|
210
|
+
- "关键约束"只写有实际影响的约束,如果没有可以省略
|
|
211
|
+
- 如果范围已经很明确(如简单的 bug 修复),整个章节可以省略
|
|
75
212
|
|
|
76
213
|
8. **创建需求规格文档**
|
|
77
214
|
|
|
78
|
-
|
|
215
|
+
注意:使用 WHEN/THEN 格式定义的 Scenario 本身就是验证标准,无需单独定义验收标准。
|
|
216
|
+
|
|
217
|
+
创建 `6aspecdoc/brown/<name>/artifacts/specs.md`:
|
|
79
218
|
```markdown
|
|
80
|
-
#
|
|
219
|
+
# 需求规格定义
|
|
81
220
|
|
|
82
221
|
> **需求**: <name>
|
|
83
|
-
>
|
|
222
|
+
> **基于提案**: proposal.md
|
|
223
|
+
> **流程**: <flowDepth>
|
|
224
|
+
> **阶段**: Specs
|
|
84
225
|
> **状态**: ✅ 已完成
|
|
85
226
|
> **完成时间**: <timestamp>
|
|
86
227
|
|
|
87
|
-
## 1.
|
|
88
|
-
|
|
89
|
-
### 1.1 业务目标
|
|
90
|
-
<为什么需要这个功能>
|
|
228
|
+
## 1. 范围边界
|
|
91
229
|
|
|
92
|
-
|
|
93
|
-
|
|
230
|
+
**本次实现**:
|
|
231
|
+
- <明确包含的核心功能>
|
|
232
|
+
- <明确包含的核心功能>
|
|
94
233
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-
|
|
234
|
+
**明确不包含**:
|
|
235
|
+
- <明确排除的功能或场景>
|
|
236
|
+
- <明确排除的功能或场景>
|
|
98
237
|
|
|
99
|
-
|
|
100
|
-
-
|
|
238
|
+
**关键约束**(可选):
|
|
239
|
+
- <技术约束:如必须使用某技术栈、兼容某版本>
|
|
240
|
+
- <业务约束:如必须满足某业务规则>
|
|
241
|
+
- <时间约束:如必须在某时间前完成>
|
|
101
242
|
|
|
102
243
|
## 2. 功能需求
|
|
103
244
|
|
|
104
|
-
###
|
|
105
|
-
**描述**:<功能描述>
|
|
245
|
+
### Capability: <capability-name> [ADD]
|
|
106
246
|
|
|
107
|
-
|
|
108
|
-
- <输入内容>
|
|
247
|
+
<Capability 描述,说明这个能力是做什么的>
|
|
109
248
|
|
|
110
|
-
|
|
111
|
-
- <输出内容>
|
|
249
|
+
#### Requirement: <需求名称>
|
|
112
250
|
|
|
113
|
-
|
|
114
|
-
- <业务规则1>
|
|
115
|
-
- <业务规则2>
|
|
251
|
+
<需求描述,使用 SHALL/MUST 关键字表示强制性要求>
|
|
116
252
|
|
|
117
|
-
|
|
118
|
-
- <验收标准1>
|
|
119
|
-
- <验收标准2>
|
|
253
|
+
##### Scenario: <场景名称>
|
|
120
254
|
|
|
121
|
-
|
|
122
|
-
|
|
255
|
+
- **WHEN** <触发条件>
|
|
256
|
+
- **THEN** <预期结果>
|
|
257
|
+
- **AND** <额外的预期结果>(可选)
|
|
123
258
|
|
|
124
|
-
|
|
259
|
+
##### Scenario: <另一个场景名称>
|
|
260
|
+
|
|
261
|
+
- **WHEN** <触发条件>
|
|
262
|
+
- **THEN** <预期结果>
|
|
125
263
|
|
|
126
|
-
|
|
127
|
-
- NFR-001: <性能要求>
|
|
264
|
+
#### Requirement: <另一个需求名称>
|
|
128
265
|
|
|
129
|
-
|
|
130
|
-
- NFR-002: <安全要求>
|
|
266
|
+
<需求描述>
|
|
131
267
|
|
|
132
|
-
|
|
133
|
-
- NFR-003: <可用性要求>
|
|
268
|
+
##### Scenario: <场景名称>
|
|
134
269
|
|
|
135
|
-
|
|
136
|
-
-
|
|
270
|
+
- **WHEN** <触发条件>
|
|
271
|
+
- **THEN** <预期结果>
|
|
137
272
|
|
|
138
|
-
|
|
273
|
+
### Capability: <another-capability-name> [MODIFY]
|
|
139
274
|
|
|
140
|
-
|
|
141
|
-
- <技术上的限制>
|
|
275
|
+
<Capability 描述>
|
|
142
276
|
|
|
143
|
-
|
|
144
|
-
- <业务上的限制>
|
|
277
|
+
#### Requirement: <需求名称>
|
|
145
278
|
|
|
146
|
-
|
|
147
|
-
- <时间上的限制>
|
|
279
|
+
<需求描述>
|
|
148
280
|
|
|
149
|
-
|
|
281
|
+
##### Scenario: <场景名称>
|
|
282
|
+
|
|
283
|
+
- **WHEN** <触发条件>
|
|
284
|
+
- **THEN** <预期结果>
|
|
285
|
+
|
|
286
|
+
## 3. 非功能需求
|
|
150
287
|
|
|
151
|
-
|
|
152
|
-
- AC-001: <功能验收标准>
|
|
153
|
-
- AC-002: <功能验收标准>
|
|
288
|
+
> **注意**:只写有明确要求的项,如果某个类别没有明确要求,可以省略该小节。
|
|
154
289
|
|
|
155
|
-
###
|
|
156
|
-
-
|
|
157
|
-
-
|
|
290
|
+
### 性能需求
|
|
291
|
+
- 响应时间 SHALL < <具体值>
|
|
292
|
+
- 并发量 SHALL 支持 <具体值>
|
|
158
293
|
|
|
159
|
-
###
|
|
160
|
-
-
|
|
294
|
+
### 安全需求
|
|
295
|
+
- 权限控制:<具体要求>
|
|
296
|
+
- 数据加密:<具体要求>
|
|
161
297
|
|
|
162
|
-
|
|
298
|
+
### 可用性需求
|
|
299
|
+
- 易用性:<具体要求>
|
|
300
|
+
- 可维护性:<具体要求>
|
|
163
301
|
|
|
164
|
-
|
|
302
|
+
### 兼容性需求
|
|
303
|
+
- 浏览器:SHALL 支持 <具体版本>
|
|
304
|
+
- 数据库:SHALL 兼容 <具体版本>
|
|
165
305
|
|
|
166
|
-
##
|
|
306
|
+
## 4. 下一步
|
|
167
307
|
|
|
168
|
-
运行 `/6aspec:brown:
|
|
308
|
+
运行 `/6aspec:brown:design` 进行技术方案设计
|
|
169
309
|
```
|
|
170
310
|
|
|
171
311
|
9. **更新状态**
|
|
172
312
|
|
|
173
313
|
更新 `6aspecdoc/brown/<name>/status.json`:
|
|
314
|
+
|
|
315
|
+
**轻量级流程**:
|
|
316
|
+
```json
|
|
317
|
+
{
|
|
318
|
+
"status": "design_pending",
|
|
319
|
+
"flowDepth": "lightweight",
|
|
320
|
+
"phases": {
|
|
321
|
+
"proposal": "done",
|
|
322
|
+
"specs": "done",
|
|
323
|
+
"design": "pending",
|
|
324
|
+
"tasks": "blocked",
|
|
325
|
+
"implement": "blocked"
|
|
326
|
+
},
|
|
327
|
+
"artifacts": ["proposal.md", "specs.md"]
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**标准级流程**:
|
|
332
|
+
```json
|
|
333
|
+
{
|
|
334
|
+
"status": "design_pending",
|
|
335
|
+
"flowDepth": "standard",
|
|
336
|
+
"phases": {
|
|
337
|
+
"proposal": "done",
|
|
338
|
+
"understand": "done",
|
|
339
|
+
"impact": "done",
|
|
340
|
+
"specs": "done",
|
|
341
|
+
"design": "pending",
|
|
342
|
+
"tasks": "blocked",
|
|
343
|
+
"implement": "blocked"
|
|
344
|
+
},
|
|
345
|
+
"artifacts": ["proposal.md", "understanding.md", "impact-analysis.md", "specs.md"]
|
|
346
|
+
}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**完整级流程**:
|
|
174
350
|
```json
|
|
175
351
|
{
|
|
176
|
-
"status": "
|
|
352
|
+
"status": "design_pending",
|
|
353
|
+
"flowDepth": "complete",
|
|
177
354
|
"phases": {
|
|
355
|
+
"proposal": "done",
|
|
178
356
|
"understand": "done",
|
|
357
|
+
"impact": "done",
|
|
179
358
|
"specs": "done",
|
|
180
|
-
"
|
|
181
|
-
|
|
359
|
+
"design": "pending",
|
|
360
|
+
"tasks": "blocked",
|
|
361
|
+
"implement": "blocked",
|
|
362
|
+
"verify": "blocked",
|
|
363
|
+
"review": "blocked"
|
|
182
364
|
},
|
|
183
|
-
"artifacts": ["
|
|
365
|
+
"artifacts": ["proposal.md", "understanding.md", "impact-analysis.md", "specs.md"]
|
|
184
366
|
}
|
|
185
367
|
```
|
|
186
368
|
|
|
369
|
+
同时更新 `6aspecdoc/brown/<name>/requirement.md`:
|
|
370
|
+
- 更新"状态"字段为 `📋 Design 待开始`
|
|
371
|
+
- 更新"最后修改"时间戳为 `<timestamp>`
|
|
372
|
+
- 更新"当前阶段"为 `Specs - 需求规格定义(已完成)`
|
|
373
|
+
- 更新"下一步操作"为 `运行 /6aspec:brown:design 继续下一阶段`
|
|
374
|
+
- 在"进度概览"中标记 Specs 阶段为已完成 `[x]`
|
|
375
|
+
|
|
187
376
|
**输出**
|
|
188
377
|
|
|
378
|
+
根据 `flowDepth` 显示不同的输出信息:
|
|
379
|
+
|
|
380
|
+
**轻量级流程**:
|
|
189
381
|
```
|
|
190
|
-
##
|
|
382
|
+
## Specs 完成:<name>
|
|
191
383
|
|
|
192
|
-
|
|
193
|
-
**进度**: 2/
|
|
384
|
+
**流程**: 轻量级
|
|
385
|
+
**进度**: 2/5 阶段完成
|
|
194
386
|
|
|
195
387
|
### 需求概要
|
|
196
|
-
-
|
|
197
|
-
-
|
|
198
|
-
-
|
|
388
|
+
- Capabilities:<数量> 个能力
|
|
389
|
+
- Requirements:<数量> 个需求
|
|
390
|
+
- Scenarios:<数量> 个测试场景
|
|
391
|
+
- 非功能需求:<数量> 项
|
|
199
392
|
|
|
200
|
-
###
|
|
201
|
-
<列出 2-3
|
|
393
|
+
### 核心 Capabilities
|
|
394
|
+
<列出 2-3 个核心 Capability 及其变更类型(ADD/MODIFY/REMOVE)>
|
|
395
|
+
|
|
396
|
+
### 文档位置
|
|
397
|
+
6aspecdoc/brown/<name>/artifacts/specs.md
|
|
398
|
+
|
|
399
|
+
### 下一步
|
|
400
|
+
- 直接回复补充或修正需求规格 → 我会更新本阶段文档(specs.md)
|
|
401
|
+
- 运行 `/6aspec:brown:design` → 进入技术方案设计阶段
|
|
402
|
+
- 运行 `/6aspec:brown:continue` → 自动进入下一阶段
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
**标准级流程**:
|
|
406
|
+
```
|
|
407
|
+
## Specs 完成:<name>
|
|
408
|
+
|
|
409
|
+
**流程**: 标准级
|
|
410
|
+
**进度**: 4/6 阶段完成
|
|
411
|
+
|
|
412
|
+
### 需求概要
|
|
413
|
+
- Capabilities:<数量> 个能力
|
|
414
|
+
- Requirements:<数量> 个需求
|
|
415
|
+
- Scenarios:<数量> 个测试场景
|
|
416
|
+
- 非功能需求:<数量> 项
|
|
417
|
+
|
|
418
|
+
### 核心 Capabilities
|
|
419
|
+
<列出 2-3 个核心 Capability 及其变更类型(ADD/MODIFY/REMOVE)>
|
|
420
|
+
|
|
421
|
+
### 文档位置
|
|
422
|
+
6aspecdoc/brown/<name>/artifacts/specs.md
|
|
423
|
+
|
|
424
|
+
### 下一步
|
|
425
|
+
- 直接回复补充或修正需求规格 → 我会更新本阶段文档(specs.md)
|
|
426
|
+
- 运行 `/6aspec:brown:design` → 进入技术方案设计阶段
|
|
427
|
+
- 运行 `/6aspec:brown:continue` → 自动进入下一阶段
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
**完整级流程**:
|
|
431
|
+
```
|
|
432
|
+
## Specs 完成:<name>
|
|
433
|
+
|
|
434
|
+
**流程**: 完整级
|
|
435
|
+
**进度**: 4/8 阶段完成
|
|
436
|
+
|
|
437
|
+
### 需求概要
|
|
438
|
+
- Capabilities:<数量> 个能力
|
|
439
|
+
- Requirements:<数量> 个需求
|
|
440
|
+
- Scenarios:<数量> 个测试场景
|
|
441
|
+
- 非功能需求:<数量> 项
|
|
202
442
|
|
|
203
|
-
###
|
|
204
|
-
<列出
|
|
443
|
+
### 核心 Capabilities
|
|
444
|
+
<列出 2-3 个核心 Capability 及其变更类型(ADD/MODIFY/REMOVE)>
|
|
205
445
|
|
|
206
446
|
### 文档位置
|
|
207
|
-
6aspecdoc/brown/<name>/artifacts/
|
|
447
|
+
6aspecdoc/brown/<name>/artifacts/specs.md
|
|
208
448
|
|
|
209
449
|
### 下一步
|
|
210
|
-
- 直接回复补充或修正需求规格 → 我会更新本阶段文档(
|
|
211
|
-
- 运行 `/6aspec:brown:
|
|
450
|
+
- 直接回复补充或修正需求规格 → 我会更新本阶段文档(specs.md)
|
|
451
|
+
- 运行 `/6aspec:brown:design` → 进入技术方案设计阶段
|
|
212
452
|
- 运行 `/6aspec:brown:continue` → 自动进入下一阶段
|
|
213
453
|
```
|
|
214
454
|
|
|
215
455
|
**用户补充信息时的处理**
|
|
216
456
|
|
|
217
|
-
|
|
218
|
-
1. 将用户的补充整合到 `
|
|
457
|
+
当用户补充需求细节、修正功能需求时(未使用阶段命令):
|
|
458
|
+
1. 将用户的补充整合到 `specs.md` 的对应章节(功能需求、非功能需求、验收标准等)
|
|
219
459
|
2. 展示变更摘要
|
|
220
460
|
3. 再次提示:可以继续补充,或通过命令进入下一阶段
|
|
221
461
|
4. **禁止**:不得自动进入下一阶段
|
|
222
462
|
|
|
223
463
|
**防护措施**
|
|
224
|
-
-
|
|
225
|
-
-
|
|
464
|
+
- 适用于所有流程(轻量级、标准级、完整级)
|
|
465
|
+
- 根据flowDepth检查不同的前置阶段:
|
|
466
|
+
- 轻量级:必须先完成proposal阶段
|
|
467
|
+
- 标准级/完整级:必须先完成impact阶段
|
|
468
|
+
- 功能需求必须按 Capability 组织,结构为:Capability > Requirement > Scenario
|
|
469
|
+
- 每个 Capability 必须标识变更类型:[ADD](新增)、[MODIFY](修改)、[REMOVE](移除)
|
|
470
|
+
- 每个 Capability 应该对应 proposal.md 中的一个能力
|
|
471
|
+
- 功能需求必须使用 Requirement + Scenario (WHEN/THEN) 格式
|
|
472
|
+
- 使用 SHALL/MUST 表示强制性要求,SHOULD 表示推荐性要求
|
|
473
|
+
- 每个 Scenario 必须可测试、可验证
|
|
226
474
|
- 功能需求必须从用户视角描述,避免技术实现细节
|
|
227
|
-
-
|
|
475
|
+
- 需求问题的答案应该体现在功能需求定义中,而不是单独列出
|
|
476
|
+
- 非功能需求和范围边界只写有明确要求的内容,避免空泛描述
|
|
477
|
+
- specs的详细程度保持一致,不区分流程深度
|
|
@@ -31,28 +31,33 @@
|
|
|
31
31
|
|
|
32
32
|
### 阶段进度
|
|
33
33
|
|
|
34
|
-
**轻量级流程(
|
|
34
|
+
**轻量级流程(5阶段)**:
|
|
35
35
|
| 阶段 | 状态 | 完成时间 |
|
|
36
36
|
|------|------|----------|
|
|
37
37
|
| Proposal | ✅ 已完成 / 🔄 进行中 / 📋 待开始 / 🔒 阻塞 | <timestamp> |
|
|
38
|
+
| Specs | ... | ... |
|
|
38
39
|
| Design | ... | ... |
|
|
39
40
|
| Tasks | ... | ... |
|
|
40
41
|
| Implement | ... | ... |
|
|
41
42
|
|
|
42
|
-
**标准级流程(
|
|
43
|
+
**标准级流程(7阶段)**:
|
|
43
44
|
| 阶段 | 状态 | 完成时间 |
|
|
44
45
|
|------|------|----------|
|
|
45
46
|
| Understand | ✅ 已完成 / 🔄 进行中 / 📋 待开始 / 🔒 阻塞 | <timestamp> |
|
|
46
47
|
| Impact | ... | ... |
|
|
48
|
+
| Proposal | ... | ... |
|
|
49
|
+
| Specs | ... | ... |
|
|
47
50
|
| Design | ... | ... |
|
|
48
51
|
| Tasks | ... | ... |
|
|
49
52
|
| Implement | ... | ... |
|
|
50
53
|
|
|
51
|
-
**完整级流程(
|
|
54
|
+
**完整级流程(9阶段)**:
|
|
52
55
|
| 阶段 | 状态 | 完成时间 |
|
|
53
56
|
|------|------|----------|
|
|
54
57
|
| Understand | ✅ 已完成 / 🔄 进行中 / 📋 待开始 / 🔒 阻塞 | <timestamp> |
|
|
55
58
|
| Impact | ... | ... |
|
|
59
|
+
| Proposal | ... | ... |
|
|
60
|
+
| Specs | ... | ... |
|
|
56
61
|
| Design | ... | ... |
|
|
57
62
|
| Tasks | ... | ... |
|
|
58
63
|
| Implement | ... | ... |
|
|
@@ -70,18 +75,23 @@
|
|
|
70
75
|
|
|
71
76
|
**轻量级**:
|
|
72
77
|
- [ ] proposal.md
|
|
78
|
+
- [ ] specs.md
|
|
73
79
|
- [ ] design.md
|
|
74
80
|
- [ ] tasks.md
|
|
75
81
|
|
|
76
82
|
**标准级**:
|
|
77
83
|
- [ ] understanding.md
|
|
78
84
|
- [ ] impact-analysis.md
|
|
85
|
+
- [ ] proposal.md
|
|
86
|
+
- [ ] specs.md
|
|
79
87
|
- [ ] design.md
|
|
80
88
|
- [ ] tasks.md
|
|
81
89
|
|
|
82
90
|
**完整级**:
|
|
83
91
|
- [ ] understanding.md
|
|
84
92
|
- [ ] impact-analysis.md
|
|
93
|
+
- [ ] proposal.md
|
|
94
|
+
- [ ] specs.md
|
|
85
95
|
- [ ] design.md
|
|
86
96
|
- [ ] tasks.md
|
|
87
97
|
- [ ] verification-report.md
|