6a-spec-install 1.0.9-dev.0 → 1.0.9-dev.1

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.
@@ -1,104 +1,20 @@
1
1
  # 棕地需求工作流总纲(Brown Field Constitution)
2
2
 
3
- ## 核心原则
3
+ 本文件定义适用于**所有阶段**的全局规则,当与具体 SOP 冲突时以本文件为准。各阶段的具体流程、产出模板、防护措施见对应的 SOP 文件。
4
4
 
5
- ### 语言要求
6
- **重要:所有生成的文档内容必须使用中文,包括标题、字段名、描述等所有文本内容。**
5
+ ## 语言要求
7
6
 
8
- ### 设计哲学
9
- 棕地需求工作流(6aspec:brown)专门为**复杂业务系统的变更需求**(从1→100)设计,核心理念:**影响面优先 + 分层渐进 + 风险控制**。
7
+ **所有生成的文档内容必须使用中文**,包括标题、字段名、描述等所有文本内容。
10
8
 
11
- ### 六大设计原则
9
+ ## 核心行为规则
12
10
 
13
- | 原则 | 说明 |
14
- |------|------|
15
- | **影响面优先** | 不仅关注"要做什么",更关注"会影响什么" |
16
- | **分层渐进** | 根据需求复杂度选择合适的分析深度 |
17
- | **人工校准** | 每个阶段结束都有人工检查点 |
18
- | **风险控制** | 通过深入分析降低实施风险 |
19
- | **知识沉淀** | 持续积累团队经验和最佳实践 |
20
- | **灵活适配** | 根据需求特点选择流程深度 |
21
-
22
- ## 流程深度
23
-
24
- ### 轻量级(Lightweight)
25
- - **阶段**:proposal → design → tasks → implement
26
- - **产出**:proposal.md, design.md, tasks.md
27
- - **适用**:需求明确、快速迭代、小范围变更
28
-
29
- ### 标准级(Standard)
30
- - **阶段**:understand → specs → impact → design → tasks → implement
31
- - **产出**:understanding.md, specs.md, impact-analysis.md, design.md, tasks.md
32
- - **适用**:复杂业务变更、多表联动、需要风险控制
33
-
34
- ### 完整级(Complete)
35
- - **阶段**:understand → specs → impact → design → tasks → implement → verify → review
36
- - **产出**:understanding.md, specs.md, impact-analysis.md, design.md, tasks.md, verification-report.md, post-implementation-review.md
37
- - **适用**:关键变更、需要完整追踪和评估
38
-
39
- ### 快速通道(Quick)
40
- - **阶段**:直接实现
41
- - **产出**:requirement.md(最小化)
42
- - **适用**:Bug修复、文案调整、单文件改动
43
-
44
- ## 目录结构约定
45
-
46
- ```
47
- 6aspecdoc/brown/
48
- ├── <需求名称>/
49
- │ ├── status.json # 需求状态
50
- │ ├── requirement.md # 需求索引页
51
- │ ├── artifacts/ # 各阶段产出文档
52
- │ │ ├── proposal.md # 轻量级:需求提案
53
- │ │ ├── 01-understanding.md # 标准级/完整级:需求理解
54
- │ │ ├── 01.5-specs.md # 标准级/完整级:需求规格
55
- │ │ ├── 02-impact-analysis.md # 标准级/完整级:影响面分析
56
- │ │ ├── 03-technical-design.md # 所有流程:技术方案
57
- │ │ ├── 04-tasks-overview.md # 所有流程:任务拆解
58
- │ │ ├── 05-verification-report.md # 完整级:验证报告
59
- │ │ ├── 06-post-implementation-review.md # 完整级:实施后评估
60
- │ │ └── ADR-<name>.md # P0需求:架构决策记录
61
- │ └── tasks/ # 任务详情
62
- │ ├── TASK-001.md
63
- │ └── ...
64
- └── .archived/ # 归档的需求
65
- └── <timestamp>-<需求名称>/
66
- ```
67
-
68
- ## 状态管理约定
69
-
70
- ### status.json 基本结构
71
-
72
- ```json
73
- {
74
- "name": "<name>",
75
- "flowDepth": "lightweight|standard|complete|quick",
76
- "status": "<current_phase>_pending",
77
- "createdAt": "<timestamp>",
78
- "lastModified": "<timestamp>",
79
- "phases": {},
80
- "artifacts": []
81
- }
82
- ```
83
-
84
- ### 阶段状态值
85
- - `pending` - 待执行(当前阶段)
86
- - `done` - 已完成
87
- - `blocked` - 阻塞(前置阶段未完成)
88
-
89
- ## 通用防护规则
90
-
91
- 1. **阶段化推进**:每个阶段完成后必须停止,等待用户确认,不要自动进入下一阶段
92
- 2. **前置检查**:每个阶段开始前必须检查前置阶段是否完成
93
- 3. **状态一致性**:每个阶段完成后必须更新 status.json
94
- 4. **不猜测**:如果信息不明确,必须询问用户,不要猜测
95
- 5. **Mermaid 图表**:图表中避免使用双引号和 emoji
96
- 6. **需求命名**:使用 kebab-case 格式(例如:add-user-auth)
97
-
98
- ## 命令调用格式
99
-
100
- 所有命令通过 `/6aspec:brown:<command>` 格式调用:
101
- - `/6aspec:brown:new` - 开始新需求
102
- - `/6aspec:brown:continue` - 继续下一阶段
103
- - `/6aspec:brown:status` - 查看状态
104
- - 其他命令详见各 SOP 文件
11
+ 1. **阶段化推进**:每个阶段完成后必须停止,等待用户通过显式命令推进
12
+ 2. **阶段切换纪律**(最重要的规则):
13
+ - **只有显式命令才能触发阶段切换**:必须通过 `/6aspec:brown:continue` 或具体的阶段命令(如 `/6aspec:brown:specs`)才能进入下一阶段
14
+ - **用户的普通回复不是阶段切换信号**:回答问题、补充信息、讨论 这些都属于当前阶段的交互
15
+ - **收到用户补充信息时的正确行为**:更新当前阶段文档 展示变更摘要 → 再次提示可继续补充或用命令推进
16
+ 3. **前置检查**:每个阶段开始前必须检查前置阶段是否完成
17
+ 4. **状态一致性**:每个阶段完成后必须更新 status.json
18
+ 5. **不猜测**:信息不明确时必须询问用户,不要假设
19
+ 6. **Mermaid 图表**:避免使用双引号和 emoji
20
+ 7. **需求命名**:使用 kebab-case 格式(例如:`add-user-auth`)
@@ -135,10 +135,19 @@ Phase 3: 技术方案设计
135
135
  - 6aspecdoc/brown/<name>/artifacts/ADR-<name>.md (P0)
136
136
 
137
137
  ### 下一步
138
- - 运行 `/6aspec:brown:tasks` 进行任务拆解
139
- - 或运行 `/6aspec:brown:continue` 自动进入下一阶段
138
+ - 直接回复修正设计方案或补充细节 我会更新本阶段文档(03-technical-design.md)
139
+ - 运行 `/6aspec:brown:tasks` → 进入任务拆解阶段
140
+ - 运行 `/6aspec:brown:continue` → 自动进入下一阶段
140
141
  ```
141
142
 
143
+ **用户补充信息时的处理**
144
+
145
+ 当用户修正设计方案、补充技术细节、或对设计决策提出异议时(未使用阶段命令):
146
+ 1. 将用户的修正/补充整合到 `03-technical-design.md` 的对应章节
147
+ 2. 展示变更摘要
148
+ 3. 再次提示:可以继续补充,或通过命令进入下一阶段
149
+ 4. **禁止**:不得自动进入下一阶段
150
+
142
151
  **防护措施**
143
152
  - 必须先完成 Phase 2
144
153
  - P0 需求必须创建 ADR
@@ -245,7 +245,7 @@ Phase 2: 影响面分析与非功能需求评估
245
245
  }
246
246
  ```
247
247
 
248
- 9. **停止并等待用户确认**
248
+ 9. **停止并等待用户指令**
249
249
 
250
250
  **输出**
251
251
 
@@ -274,10 +274,19 @@ Phase 2: 影响面分析与非功能需求评估
274
274
  6aspecdoc/brown/<name>/artifacts/02-impact-analysis.md
275
275
 
276
276
  ### 下一步
277
- - 运行 `/6aspec:brown:design` 进行技术方案设计
278
- - 或运行 `/6aspec:brown:continue` 自动进入下一阶段
277
+ - 直接回复补充遗漏的影响点或修正分析 我会更新本阶段文档(02-impact-analysis.md)
278
+ - 运行 `/6aspec:brown:design` → 进入技术方案设计阶段
279
+ - 运行 `/6aspec:brown:continue` → 自动进入下一阶段
279
280
  ```
280
281
 
282
+ **用户补充信息时的处理**
283
+
284
+ 当用户指出遗漏的影响点、修正分析结论、或补充业务规则时(未使用阶段命令):
285
+ 1. 将用户的补充整合到 `02-impact-analysis.md` 的对应章节
286
+ 2. 展示变更摘要
287
+ 3. 再次提示:可以继续补充,或通过命令进入下一阶段
288
+ 4. **禁止**:不得自动进入下一阶段
289
+
281
290
  **防护措施**
282
291
  - 必须先完成 Phase 1 才能执行 Phase 2
283
292
  - 必须获得关键业务规则的答案
@@ -130,4 +130,4 @@
130
130
  - 如果实现发现设计问题,暂停并建议更新 artifacts
131
131
  - 保持代码变更最小化和聚焦
132
132
  - 立即更新任务状态
133
- - 遇到错误时暂停,不要猜测
133
+ - 遇到错误时暂停并报告
@@ -2,16 +2,25 @@
2
2
 
3
3
  开始一个新的需求分析流程。
4
4
 
5
- **输入**:`/6aspec:brown:new` 后的参数是需求名称(kebab-case)或需求描述。
5
+ **输入**:`/6aspec:brown:new` 后的参数支持三种形式:
6
+ - **需求名称**:kebab-case 名称(例如:`add-user-auth`)
7
+ - **需求描述**:直接的文字描述(例如:"在项目中添加用户认证功能")
8
+ - **文件引用**:通过 @文件路径 引用需求文档(例如:`@docs/prd-user-auth.md`)
6
9
 
7
10
  **步骤**
8
11
 
9
- 1. **如果没有提供输入,询问需求内容**
12
+ 1. **获取需求内容并识别输入类型**
10
13
 
11
- 询问用户(开放式问题):
12
- > "你想分析什么需求?请描述要实现的功能或要解决的问题。"
14
+ 根据用户输入判断类型:
13
15
 
14
- 从描述中提取 kebab-case 名称(例如:"添加用户认证" → `add-user-auth`)。
16
+ **情况A:无输入** 询问用户(开放式问题):
17
+ > "你想分析什么需求?请描述要实现的功能或要解决的问题,也可以 @引用 一个需求文档。"
18
+
19
+ **情况B:直接文字描述** — 记录原始描述文本,标记 `inputSource.type = "text"`。
20
+
21
+ **情况C:文件引用(@文件路径)** — 读取文件确认存在且内容相关,标记 `inputSource.type = "file"`,记录文件路径。
22
+
23
+ 从描述/文件内容中提取 kebab-case 名称(例如:"添加用户认证" → `add-user-auth`)。
15
24
 
16
25
  **重要**:必须理解用户想做什么才能继续。
17
26
 
@@ -74,6 +83,10 @@
74
83
  "status": "proposal_pending",
75
84
  "createdAt": "<timestamp>",
76
85
  "lastModified": "<timestamp>",
86
+ "inputSource": {
87
+ "type": "text | file",
88
+ "filePath": "<仅 type=file 时填写>"
89
+ },
77
90
  "phases": {
78
91
  "proposal": "pending",
79
92
  "design": "blocked",
@@ -92,6 +105,10 @@
92
105
  "status": "understanding_pending",
93
106
  "createdAt": "<timestamp>",
94
107
  "lastModified": "<timestamp>",
108
+ "inputSource": {
109
+ "type": "text | file",
110
+ "filePath": "<仅 type=file 时填写>"
111
+ },
95
112
  "phases": {
96
113
  "understand": "pending",
97
114
  "specs": "blocked",
@@ -112,6 +129,10 @@
112
129
  "status": "understanding_pending",
113
130
  "createdAt": "<timestamp>",
114
131
  "lastModified": "<timestamp>",
132
+ "inputSource": {
133
+ "type": "text | file",
134
+ "filePath": "<仅 type=file 时填写>"
135
+ },
115
136
  "phases": {
116
137
  "understand": "pending",
117
138
  "specs": "blocked",
@@ -126,7 +147,7 @@
126
147
  }
127
148
  ```
128
149
 
129
- 创建需求索引文件 `6aspecdoc/brown/<name>/requirement.md`(方案B:简化为索引页):
150
+ 创建需求索引文件 `6aspecdoc/brown/<name>/requirement.md`:
130
151
  ```markdown
131
152
  # <需求标题>
132
153
 
@@ -136,6 +157,18 @@
136
157
  > **创建时间**: <timestamp>
137
158
  > **最后修改**: <timestamp>
138
159
 
160
+ ## 原始需求
161
+
162
+ <!-- 根据输入类型选择以下其一 -->
163
+
164
+ <!-- 情况A:直接文字描述(inputSource.type = "text") -->
165
+ <用户输入的原始需求描述,原文记录,不做加工>
166
+
167
+ <!-- 情况B:文件引用(inputSource.type = "file") -->
168
+ > **需求来源文件**:`<文件路径>`
169
+ >
170
+ > 完整需求内容请参考上述文件。
171
+
139
172
  ## 快速导航
140
173
 
141
174
  **需求详情**:
@@ -177,10 +210,6 @@
177
210
  ## 查看详细信息
178
211
 
179
212
  运行 `/6aspec:brown:status <name>` 查看完整状态和所有文档。
180
-
181
- ---
182
-
183
- **说明**:本文件是需求的索引页,只包含元信息和导航链接。需求的详细内容在第一个 artifact 中(proposal.md 或 understanding.md)。
184
213
  ```
185
214
 
186
215
  **快速通道**:
@@ -16,8 +16,11 @@
16
16
 
17
17
  2. **收集需求信息**
18
18
 
19
- 如果用户在对话中已提供需求信息,直接使用。
20
- 否则,询问用户:
19
+ 首先读取 `6aspecdoc/brown/<name>/requirement.md` 中的"原始需求"部分:
20
+ - 如果 `inputSource.type = "text"`:直接使用其中记录的需求描述。
21
+ - 如果 `inputSource.type = "file"`:读取记录的来源文件路径,获取完整需求内容。
22
+
23
+ 如果原始需求信息不足以生成提案,再询问用户补充:
21
24
  - 为什么需要这个变更?(Why)
22
25
  - 要做什么?(What)
23
26
  - 预期影响是什么?(Impact)
@@ -115,7 +118,7 @@
115
118
  }
116
119
  ```
117
120
 
118
- 5. **停止并等待用户确认**
121
+ 5. **停止并等待用户指令**
119
122
 
120
123
  **输出**
121
124
 
@@ -137,10 +140,19 @@
137
140
  6aspecdoc/brown/<name>/artifacts/proposal.md
138
141
 
139
142
  ### 下一步
140
- - 运行 `/6aspec:brown:design` 进行技术方案设计
141
- - 或运行 `/6aspec:brown:continue` 自动进入下一阶段
143
+ - 直接回复补充或修正提案内容 我会更新本阶段文档(proposal.md)
144
+ - 运行 `/6aspec:brown:design` → 进入技术方案设计阶段
145
+ - 运行 `/6aspec:brown:continue` → 自动进入下一阶段
142
146
  ```
143
147
 
148
+ **用户补充信息时的处理**
149
+
150
+ 当用户补充需求细节、修正提案内容时(未使用阶段命令):
151
+ 1. 将用户的补充整合到 `proposal.md` 的对应章节
152
+ 2. 展示变更摘要
153
+ 3. 再次提示:可以继续补充,或通过命令进入下一阶段
154
+ 4. **禁止**:不得自动进入下一阶段
155
+
144
156
  **防护措施**
145
157
  - 仅适用于轻量级流程
146
158
  - 如果需求信息不明确,必须询问用户
@@ -207,13 +207,21 @@ Phase 1.5: 需求规格定义
207
207
  6aspecdoc/brown/<name>/artifacts/01.5-specs.md
208
208
 
209
209
  ### 下一步
210
- - 运行 `/6aspec:brown:impact` 进行影响面分析
211
- - 或运行 `/6aspec:brown:continue` 自动进入下一阶段
210
+ - 直接回复补充或修正需求规格 我会更新本阶段文档(01.5-specs.md)
211
+ - 运行 `/6aspec:brown:impact` → 进入影响面分析阶段
212
+ - 运行 `/6aspec:brown:continue` → 自动进入下一阶段
212
213
  ```
213
214
 
215
+ **用户补充信息时的处理**
216
+
217
+ 当用户补充需求细节、修正功能需求、或回答问题时(未使用阶段命令):
218
+ 1. 将用户的补充整合到 `01.5-specs.md` 的对应章节(功能需求、非功能需求、验收标准等)
219
+ 2. 展示变更摘要
220
+ 3. 再次提示:可以继续补充,或通过命令进入下一阶段
221
+ 4. **禁止**:不得自动进入下一阶段
222
+
214
223
  **防护措施**
215
224
  - 必须先完成 Phase 1(understand)
216
225
  - 只适用于标准级和完整级流程
217
226
  - 功能需求必须从用户视角描述,避免技术实现细节
218
227
  - 验收标准必须具体、可验证
219
- - 如果问题答案不明确,必须询问用户,不要猜测
@@ -23,7 +23,9 @@ Phase 1: 需求理解与现状分析
23
23
 
24
24
  3. **读取需求描述**
25
25
 
26
- 读取 `6aspecdoc/brown/<name>/requirement.md` 了解需求背景。
26
+ 读取 `6aspecdoc/brown/<name>/status.json` 中的 `inputSource` 字段判断输入类型:
27
+ - `type = "text"`:读取 `requirement.md` 中的"原始需求"部分获取需求描述。
28
+ - `type = "file"`:读取 `requirement.md` 中记录的来源文件路径,然后读取该文件获取完整需求内容。
27
29
 
28
30
  4. **分析现有系统**
29
31
 
@@ -161,7 +163,7 @@ Phase 1: 需求理解与现状分析
161
163
  }
162
164
  ```
163
165
 
164
- 8. **停止并等待用户确认**
166
+ 8. **停止并等待用户指令**
165
167
 
166
168
  **输出**
167
169
 
@@ -188,15 +190,22 @@ Phase 1: 需求理解与现状分析
188
190
  6aspecdoc/brown/<name>/artifacts/01-understanding.md
189
191
 
190
192
  ### 下一步
191
- 请回答待明确问题清单中的问题,然后:
192
- - 运行 `/6aspec:brown:specs` 定义需求规格
193
- - 或运行 `/6aspec:brown:continue` 自动进入下一阶段
193
+ - 直接回答上述待明确问题 → 我会更新本阶段文档(01-understanding.md)
194
+ - 运行 `/6aspec:brown:specs` → 进入需求规格定义阶段
195
+ - 运行 `/6aspec:brown:continue` 自动进入下一阶段
194
196
  ```
195
197
 
198
+ **用户补充信息时的处理**
199
+
200
+ 当用户回答待明确问题或补充需求信息时(未使用阶段命令):
201
+ 1. 将用户的回答整合到 `01-understanding.md` 中对应的问题项(将"[待确认]"替换为实际答案)
202
+ 2. 如果回答引发新的发现或问题,同步更新文档的相关章节
203
+ 3. 展示变更摘要(更新了哪些问题的答案、新增了哪些发现)
204
+ 4. 再次提示:可以继续补充,或通过命令进入下一阶段
205
+ 5. **禁止**:不得自动进入下一阶段
206
+
196
207
  **防护措施**
197
208
  - 必须先读取需求描述再开始分析
198
209
  - 如果找不到相关代码,询问用户提供更多关键词
199
- - 图表中避免使用双引号和 emoji
200
210
  - 如果分析不充分,不要强行生成文档,而是询问用户
201
211
  - 待明确问题必须具体,避免模糊问题
202
- - 每个阶段完成后必须停止,不要自动进入下一阶段
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "6a-spec-install",
3
- "version": "1.0.9-dev.0",
3
+ "version": "1.0.9-dev.1",
4
4
  "description": "6A-spec 驱动开发提示词安装工具,支持 Cursor 和 Claude",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {