adspecs 0.1.29 → 0.1.30

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 (45) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.qoder-plugin/plugin.json +1 -1
  4. package/.workbuddy-plugin/plugin.json +24 -0
  5. package/CHANGELOG.md +13 -0
  6. package/CLAUDE.md +14 -8
  7. package/INSTALL.md +57 -4
  8. package/README.md +5 -4
  9. package/bin/adspecs.js +8 -7
  10. package/hooks/hooks.json +2 -2
  11. package/hooks/platform.js +22 -11
  12. package/package.json +4 -2
  13. package/scripts/postinstall.js +79 -36
  14. package/scripts/sync-version.js +11 -1
  15. package/skills/adspecs-adversarial-review/SKILL.md +1 -0
  16. package/skills/adspecs-analyze/SKILL.md +1 -0
  17. package/skills/adspecs-architecture-planning/SKILL.md +1 -0
  18. package/skills/adspecs-biz-blueprint/SKILL.md +555 -554
  19. package/skills/adspecs-clarify/SKILL.md +1 -0
  20. package/skills/adspecs-constitution/SKILL.md +1 -0
  21. package/skills/adspecs-export-word/SKILL.md +499 -498
  22. package/skills/adspecs-front-prototype/SKILL.md +1 -0
  23. package/skills/adspecs-front-spec/SKILL.md +1 -0
  24. package/skills/adspecs-front-tasks/SKILL.md +1 -0
  25. package/skills/adspecs-git-commit/SKILL.md +1 -0
  26. package/skills/adspecs-git-initialize/SKILL.md +1 -0
  27. package/skills/adspecs-new-requirement/SKILL.md +1 -0
  28. package/skills/adspecs-plan/SKILL.md +1 -0
  29. package/skills/adspecs-prd/SKILL.md +1 -0
  30. package/skills/adspecs-prd-to-demo/SKILL.md +1 -0
  31. package/skills/adspecs-save-session/SKILL.md +179 -178
  32. package/skills/adspecs-tasks/SKILL.md +1 -0
  33. package/skills/adspecs-update-status/SKILL.md +1 -0
  34. package/skills/adspecs-utest/SKILL.md +1 -0
  35. package/skills/adspecs-write-planning-report/SKILL.md +1 -0
  36. package/skills/adspecs-write-roadmap/SKILL.md +1 -0
  37. package/skills/adspecs-write-sow/SKILL.md +1 -0
  38. package/skills/grill-me/SKILL.md +1 -0
  39. package/skills/playwright-cli/SKILL.md +1 -0
  40. package/skills/playwright-trace/SKILL.md +1 -0
  41. package/skills/project-init/SKILL.md +1 -0
  42. package/skills/sie-front-code-review/SKILL.md +1 -0
  43. package/skills/wiki-update/SKILL.md +233 -232
  44. package/src/commands/plugin.js +145 -7
  45. package/src/commands/update.js +5 -1
@@ -1,554 +1,555 @@
1
- ---
2
- name: "adspecs-biz-blueprint"
3
- description: "将业务需求分析文档转化为结构化的业务方案文档(F1~F6 文件体系),作为 PRD 编写与系统设计的单一信息源。在需求分析之后、PRD 之前,完成业务流程、字段、规则、角色的完整业务蓝图。"
4
- argument-hint: "<业务需求分析文件路径>,如 docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务需求分析.md"
5
- compatibility: "需要 adspecs 项目结构及 docs/ 目录"
6
- metadata:
7
- author: "Qingwen Chen"
8
- user-invocable: true
9
- disable-model-invocation: false
10
- ---
11
-
12
- # 生成业务方案(Business Blueprint)
13
-
14
- ## 用户输入
15
-
16
- ```text
17
- $ARGUMENTS
18
- ```
19
-
20
- **必须** 在继续之前考虑用户输入(如果非空)。
21
-
22
- ## 路径配置加载
23
-
24
- 在开始执行之前,先确定输出目录:
25
-
26
- 1. 检查项目根目录是否存在 `.adspecs/paths.json`
27
- 2. 如果存在,读取其中的 `paths` 对象,提取本技能需要的配置键
28
- 3. 如果不存在或配置键缺失,使用下方表格中的默认值
29
-
30
- | 配置键 | 默认值 | 用途 |
31
- | ------------------ | ------------------------------- | -------------------------------- |
32
- | `biz_analysis_dir` | `docs/00-customer-requirements` | 业务方案输出根目录 |
33
- | `architecture_dir` | `docs/10-architecture` | 业务架构文档目录(用于模块识别) |
34
-
35
- 将解析后的路径记为 `OUTPUT_DIR` 和 `ARCH_DIR`,后续步骤中引用此变量而非硬编码路径。
36
-
37
- ## 定位
38
-
39
- 本 skill 专注于 **业务需求分析 → 业务方案的结构化转化**,是产品交付流水线的第二步——在需求分析(`adspecs-new-requirement`)之后、PRD(`adspecs-prd`)之前,将需求分析成果转化为 F1~F6 业务蓝图,为 PRD 编写提供完整的业务框架。
40
-
41
- | 对比项 | adspecs-new-requirement | adspecs-biz-blueprint(本 skill) | adspecs-prd | adspecs-plan |
42
- | -------- | ------------------------------- | ---------------------------------------------------------------- | -------------------------------------- | ----------------------------- |
43
- | 输出 | 业务需求分析(1 个文件) | 业务方案(1 个文件,F1~F6 体系) | 产品需求说明书(1 个文件) | 系统设计 + SQL(2 个文件) |
44
- | 模板 | `01-业务需求分析模板.md` | `21-业务方案模板.md` | `02-产品需求说明书模板.md` | `03-系统设计模板.md` |
45
- | 目标读者 | 产品经理、业务方、技术负责人 | 业务顾问、需求分析师、系统架构师 | 产品经理、业务方 | 开发架构师、后端工程师 |
46
- | 核心问题 | **为什么要做 & 问题本质是什么** | **业务怎么运作 & 规则是什么** | **做什么 & 为什么** | **怎么建** |
47
- | 关注点 | 真实问题、解法空间、风险 | F1 核心逻辑、F2 流程架构、F3 流程详述、F4 字段、F5 规则、F6 权限 | 业务场景、用户故事、功能描述、验收标准 | DO/DTO/VO、数据模型、接口设计 |
48
-
49
- **典型工作流**:
50
-
51
- 1. 先用 `adspecs-new-requirement` 完成深度需求分析,确认方向正确(为什么做)
52
- 2. **然后用 `adspecs-biz-blueprint` 生成业务方案,完成 F1~F6 业务蓝图(业务怎么运作)**
53
- 3. 再用 `adspecs-prd` 基于业务方案编写产品需求说明书供业务方确认(做什么)
54
- 4. 最后用 `adspecs-plan` 生成技术系统设计文档(怎么建)
55
-
56
- ## 角色
57
-
58
- 你是一位拥有 10 年经验的资深业务架构师,擅长将需求分析成果转化为结构化的业务方案。你的核心能力是:
59
-
60
- - **业务建模**:能将需求分析中的问题定义、角色画像、场景拆解转化为 F1~F6 六层业务文件体系,确保逻辑自洽
61
- - **流程思维**:擅长用泳道图和步骤表将业务场景转化为可执行的流程描述
62
- - **规则提炼**:能从业务流程和状态机中提炼原子化的校验、计算、决策规则
63
- - **一致性把控**:确保术语、状态、角色、规则在 F1~F6 之间完全一致、可交叉追溯
64
-
65
- ## 任务
66
-
67
- 读取用户指定的业务需求分析文档,按照 F1~F6 文件体系完成业务方案转化,输出结构化的业务方案文档。转化过程遵循"业务语言优先、单一信息源、可追溯性、逐层细化"四大原则。
68
-
69
- ## 输入
70
-
71
- - **业务需求分析文件路径**: 用户在 `$ARGUMENTS` 中提供的需求分析文件路径
72
- - 必须是有效的 Markdown 文件路径(如 `docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务需求分析.md`)
73
- - 如果输入为空,提示用户输入业务需求分析文件路径
74
- - **模板文件**: `.adspecs/templates/21-业务方案模板.md` — 业务方案输出模板(F1~F6 结构)
75
- - **业务功能架构文档**: `{ARCH_DIR}/01-*_business_scenarios.md` 或 `{ARCH_DIR}/01-*_business_architecture.md` — 用于识别需求所属的二级模块
76
- - **项目上下文**(可选):
77
- - `CLAUDE.md` — 项目技术架构、模块结构
78
- - `docs/00-customer-requirements/`已有的其他需求分析文档
79
-
80
- ## 业务方案文件体系(F1~F6)
81
-
82
- | 编号 | 名称 | 核心作用 |
83
- | ------ | -------------- | -------------------------------------- |
84
- | F1 | 业务核心逻辑 | 承载业务最底层、最根本的逻辑 |
85
- | F2 | 业务流程架构 | 流程的分级视图与清单索引 |
86
- | F3 | 业务流程文件 | 每条流程的完整展开 |
87
- | F3附录 | 状态流转汇总 | 跨流程的状态变化全局视图 |
88
- | F4 | 业务字段清单 | 流程产出物中字段的定义与口径 |
89
- | F5 | 业务规则清单 | 校验、计算、决策规则的原子化汇集 |
90
- | F6 | 业务角色与权限 | 角色职责、操作权限、数据范围的正式约定 |
91
-
92
- **概览章节**(§1)从需求分析文档的"概览"和元信息中提取。
93
-
94
- ### 转化原则
95
-
96
- 1. **业务语言优先**:所有描述使用业务语言,不引入技术实现细节(无数据库、API、框架名称)
97
- 2. **单一信息源**:每条信息只在一个地方定义,其他地方引用(如状态枚举只在 F3 附录定义,F4 字段清单引用)
98
- 3. **可追溯性**:每条业务规则必须能追溯到 F3 中的具体流程步骤
99
- 4. **结构化展开**:F1 → F2 → F3 是逐层细化,不允许跳跃
100
-
101
- ## 执行前检查
102
-
103
- ### 检查扩展钩子(转化前)
104
-
105
- - 检查项目根目录是否存在 `.adspecs/extensions.yml`。
106
- - 如果存在,读取它并查找 `hooks.before_biz_blueprint` 下的条目。
107
- - 如果 YAML 无法解析或无效,静默跳过钩子检查并继续正常执行。
108
- - 过滤掉 `enabled` 明确为 `false` 的钩子。没有 `enabled` 字段的钩子默认视为启用。
109
- - 对于每个剩余的钩子,**不要** 尝试解释或评估钩子的 `condition` 表达式:
110
- - 如果钩子没有 `condition` 字段,或为空/null,视为可执行。
111
- - 如果钩子定义了非空的 `condition`,跳过该钩子,将条件评估留给 HookExecutor 实现。
112
- - 从钩子命令名构造斜杠命令时,将点号(`.`)替换为连字符(`-`)。例如:`adspecs.git.commit` `/adspecs-git-commit`。
113
- - 对于每个可执行钩子,根据其 `optional` 标志输出以下内容:
114
- - **可选钩子** (`optional: true`):
115
-
116
- ```
117
- ## 扩展钩子
118
-
119
- **可选前置钩子**: {extension}
120
- 命令: `/{command}`
121
- 描述: {description}
122
-
123
- 提示: {prompt}
124
- 执行: `/{command}`
125
- ```
126
-
127
- - **必选钩子** (`optional: false`):
128
-
129
- ```
130
- ## 扩展钩子
131
-
132
- **自动前置钩子**: {extension}
133
- 执行: `/{command}`
134
- EXECUTE_COMMAND: {command}
135
-
136
- 等待钩子命令结果后再继续执行。
137
- ```
138
-
139
- - 如果没有注册钩子或 `.adspecs/extensions.yml` 不存在,静默跳过。
140
-
141
- ### 步骤 0:参数解析与上下文加载
142
-
143
- 1. **解析需求分析文件路径**:
144
- - 从 `$ARGUMENTS` 中解析业务需求分析文件路径
145
- - 如果参数为空 使用 **AskUserQuestion** 让用户输入业务需求分析文件路径
146
- - 如果参数非空验证文件存在,记为 `REQ_FILE`
147
-
148
- 2. **需求分析完整性检查**:
149
- 读取 `REQ_FILE`,验证需求分析文档包含以下必填章节:
150
-
151
- | 检查项 | 需求分析章节 | 用途 |
152
- | -------------- | ------------ | --------------------------- |
153
- | 真实问题分析 | | F1 业务核心逻辑 |
154
- | 用户角色分析 | | → F6 业务角色与权限 |
155
- | 使用场景拆解 | | → F2 流程架构 + F3 流程详述 |
156
- | 业务流程梳理 | | → F1/F3/F3附录/F4/F5 |
157
- | 异常和边界 | | → F5 业务规则清单 |
158
- | 最终输出与决策 | | → §1 概览 + §8 风险与待确认 |
159
-
160
- **如果缺失必填章节**:列出缺失章节,使用 AskUserQuestion 询问用户是否继续(部分章节可生成占位内容,标注 `[待确认:需求分析缺失 {章节名},待补充]`)。
161
-
162
- 3. **加载模板**:
163
- - 读取 `.adspecs/templates/21-业务方案模板.md`,获取 F1~F6 文件体系的完整结构
164
- - 如果模板不存在,使用内置的转化规则(见下方"步骤 2:按章节转化")
165
-
166
- 4. **加载项目上下文**(可选):
167
- - 如果 `CLAUDE.md` 存在,读取以了解项目背景
168
- - 如果 `docs/00-customer-requirements/` 下有相关文档,读取以补充需求背景
169
-
170
- 5. **识别二级模块**:
171
- - 扫描 `{ARCH_DIR}/` 目录,查找 `01-*_business_scenarios.md` 或 `01-*_business_architecture.md` 文件
172
- - 如果找到,读取文件内容,重点关注:
173
- - **二、系统模块总览** → **2.2 子模块清单**:获取所有主模块及其下属的二级模块
174
- - **三、各模块业务场景详述**:获取每个模块的业务场景描述
175
- - 将需求分析内容与各二级模块的名称、说明、业务场景进行语义匹配,确定需求最匹配的**二级模块编号**(如 M03-02)
176
- - 匹配规则:
177
- 1. **精确匹配**:需求分析中明确提到某个子模块名称或编号 → 直接采用
178
- 2. **场景匹配**:需求分析的业务场景与某个模块下的场景高度吻合采用该子模块编号
179
- 3. **语义匹配**:需求分析的核心功能与某个子模块的"说明"字段语义相近 → 采用该子模块编号
180
- 4. **无法匹配**:需求分析内容与任何二级模块都不匹配使用 AskUserQuestion 让用户选择,或标记为"新模块"
181
- - 将匹配到的二级模块编号记为 `MODULE_ID`,对应的主模块编号记为 `PARENT_MODULE`
182
- - 如果架构文档不存在,跳过此步骤,`MODULE_ID` 留空
183
-
184
- 6. **确定输出路径**:
185
- - 输出根目录:`{OUTPUT_DIR}/`(默认 `docs/00-customer-requirements/`)
186
- - 如果 `MODULE_ID` 已识别(非空):
187
- - 输出子目录:`{OUTPUT_DIR}/{MODULE_ID}/`
188
- - 如果子目录不存在,自动创建
189
- - 如果 `MODULE_ID` 为空:直接使用 `{OUTPUT_DIR}/`
190
- - 输出文件名:`{MODULE_ID}_{short-name}_业务方案.md`(有模块)或 `{short-name}_业务方案.md`(无模块)
191
- - 如果目录下已有同名文件,询问用户是覆盖还是新增版本号:`{MODULE_ID}_{short-name}_业务方案_v{version}.md`
192
-
193
- ## 工作流程
194
-
195
- ### 步骤 1:读取需求分析文档并提取信息块
196
-
197
- 读取 `REQ_FILE` 的全部内容,识别并提取信息块与模板文件章节进行匹配:
198
-
199
- ### 步骤 2:按章节转化(F1~F6)
200
-
201
- 1. 按照模板结构,将提供源文件内容映射到业务方案各章节,并给出映射详细清单给用户确认。
202
- 2. 按照映射关系,按照模板结构和提示文字,将提供源文件内容深度分析并编制到对应章节,为写入业务方案文件做准备。
203
- 3. 流程图、状态均采用`mermaid`格式绘制
204
- 4. 严禁将用户故事章节做流程转换
205
-
206
- #### 2.10 确认签(§9)
207
-
208
- 生成标准确认签章节,内容固定:
209
-
210
- - **§9.1 确认声明**:使用模板固定文本,引用业务方案中的章节编号
211
- - **§9.2 签署**:生成标准的甲方/乙方签署表,留空待签署
212
-
213
- ### 步骤 3:交叉引用检查
214
-
215
- 转化完成后,检查以下交叉引用一致性:
216
-
217
- 1. **术语一致性**:F1 术语表中的术语在 F3 步骤描述中使用时,含义完全一致
218
- 2. **状态一致性**:F3 附录中的状态枚举值与 F4 字段清单中的枚举值完全一致
219
- 3. **角色一致性**:F3 步骤中的执行角色与 F6 角色清单中的角色完全一致
220
- 4. **规则引用一致性**:F5 规则清单中的"来源流程步骤"指向 F3 中实际存在的步骤
221
- 5. **流程编号一致性**:F2 流程清单中的流程编号与 F3 流程文件的编号一致
222
-
223
- 如发现不一致,自动修正并在备注中记录修正项。
224
-
225
- ### 步骤 4:写入业务方案文件
226
-
227
- 将转化结果写入输出文件:
228
-
229
- ```
230
- OUTPUT_DIR = 路径配置加载阶段解析的值(默认 docs/00-customer-requirements)
231
- MODULE_ID = 识别到的二级模块编号(如 M03-02),可能为空
232
-
233
- # 有模块编号时:
234
- OUTPUT_FILE = "{OUTPUT_DIR}/{MODULE_ID}/{MODULE_ID}_{short-name}_业务方案.md"
235
- # 示例:docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务方案.md
236
-
237
- # 无模块编号时(兼容旧行为):
238
- OUTPUT_FILE = "{OUTPUT_DIR}/{short-name}_业务方案.md"
239
- # 示例:docs/00-customer-requirements/bonded-material_业务方案.md
240
- ```
241
-
242
- 文件头部元信息从需求分析文档继承:
243
-
244
- - 项目名称:从需求分析标题提取
245
- - 模块编号:`MODULE_ID` / `PARENT_MODULE`
246
- - 版本号:默认 v1.0
247
- - 创建日期:当前日期
248
- - 修订记录:生成初始版本记录
249
-
250
- **关键原则**:
251
-
252
- - 所有描述使用**业务语言**,不引入技术实现细节(无数据库、API、框架名称)
253
- - 枚举值必须**全量列出**,不允许使用"等"或"其他"
254
- - 不确定的部分标注 `[待确认:具体问题]`,**全文最多 3 个**
255
- - Mermaid 图表(flowchart/stateDiagram-v2/erDiagram)必须生成可渲染代码,不使用 ASCII 或占位符
256
- - 本技能**不修改**原始需求分析文档
257
-
258
- ### 步骤 5:质量检查(10 项)
259
-
260
- 逐项验证业务方案的完整性和一致性,每项标注 ✅ 已覆盖 / ⚠️ 部分覆盖 / ❌ 未覆盖,并关联到对应的文档章节:
261
-
262
- | # | 检查项 | 状态 | 对应章节 | 补充说明 |
263
- | --- | ------------------------------------------- | -------- | -------- | -------------------------------------------------------- |
264
- | 1 | 概览章节与需求分析的核心问题和角色一致 | ✅/⚠️/❌ | §1 | 【基本信息、背景、范围、角色是否完整继承】 |
265
- | 2 | F1 核心逻辑完整(术语/场景/责任/运作/实体) | ✅/⚠️/❌ | §2 (F1) | 【术语表有释例、实体关系有 Mermaid 图、核心机制已展开】 |
266
- | 3 | F2 流程架构完整(编号规则/架构图/流程清单) | ✅/⚠️/❌ | §3 (F2) | 【流程编号全局唯一、清单覆盖所有 P0/P1 场景对应的流程】 |
267
- | 4 | F3 每条流程有 Mermaid 流程图 + 步骤说明表 | ✅/⚠️/❌ | §4 (F3) | 【泳道图可渲染、步骤表含输入/输出/判定/异常】 |
268
- | 5 | F3 附录状态流转完整(定义/路径/流转图) | ✅/⚠️/❌ | §4 附录 | 【状态定义与 F4 一致、流转路径关联到 F3 步骤编号】 |
269
- | 6 | F4 字段清单完整(按产出物分组、枚举全量) | ✅/⚠️/❌ | §5 (F4) | 【字段无技术名、枚举值全量列出、状态枚举与 F3 附录一致】 |
270
- | 7 | F5 规则清单完整(校验/计算/决策分类) | ✅/⚠️/❌ | §6 (F5) | 【每条规则有来源步骤、触发时机、不满足时行为】 |
271
- | 8 | F6 权限矩阵覆盖所有 F3 操作 | ✅/⚠️/❌ | §7 (F6) | 【角色清单含来源流程、数据权限有约束条件】 |
272
- | 9 | 交叉引用一致性(术语/状态/角色/规则/编号) | ✅/⚠️/❌ | 跨章节 | 【5 项交叉引用检查全部通过】 |
273
- | 10 | 全部使用业务语言,无技术实现泄露 | ✅/⚠️/❌ | 全文 | 【无数据库名/API/框架名、枚举无"等"/"其他"】 |
274
-
275
- **通过规则**:
276
-
277
- - **✅ 全部通过**:10 项均为 ✅ → 业务方案质量合格,可进入 PRD 编写
278
- - **⚠️ 基本通过**:存在 ⚠️ 但无 标注需补充的具体项,补充后可进入 PRD 编写
279
- - **❌ 未通过**:存在任意 ❌ → 列出缺失项,自动修复(最多 3 次迭代),修复后重新验证
280
-
281
- ### 步骤 6:后续建议
282
-
283
- 根据质量检查结果,给出明确的下一步建议:
284
-
285
- - **如果 ✅ 10/10 通过**:
286
-
287
- ```
288
- 📋 建议下一步执行:/adspecs-prd {需求概要}
289
- ```
290
-
291
- - **如果 ⚠️ N/10 通过(有 ⚠️ 无 ❌)**:
292
-
293
- ```
294
- ⚠️ 在编写 PRD 之前,建议先补充以下信息:
295
- 1. {未通过的检查项对应的待补充内容}
296
- 2. {待补充项 2}
297
- 补充完成后可直接执行 /adspecs-prd
298
- ```
299
-
300
- - **如果 ❌ N/10 通过(有 ❌)**:
301
- ```
302
- ❌ 业务方案存在以下问题需要修复:
303
- 1. {未通过的检查项对应的具体问题}
304
- 2. {问题 2}
305
- 已尝试自动修复 {N} 次,仍有 {M} 项需要人工确认
306
- ```
307
-
308
- ## 输出文件结构
309
-
310
- > 输出文档按模板的 **§1~§9 + F3 附录** 结构组织。F1~F6 是内容分类维度,映射到 §2~§7 章节。
311
-
312
- ```markdown
313
- # {项目名称} — 业务方案
314
-
315
- > **版本**: v1.0
316
- > **创建日期**: {today}
317
- > **主模块**: {PARENT_MODULE} {主模块名称}
318
- > **二级模块编号**: {MODULE_ID}
319
- > **二级模块名称**: {模块名称}
320
- > **源需求分析**: {REQ_FILE 路径}
321
- > **适用人员**: 业务顾问、产品经理、需求分析师
322
-
323
- | 项 | 值 |
324
- | ------------ | ---------------------------- |
325
- | 主模块 | {PARENT_MODULE} {主模块名称} |
326
- | 二级模块编号 | {MODULE_ID} |
327
- | 二级模块名称 | {模块名称} |
328
- | 阶段 | Blueprint(Why → What 过渡) |
329
- | 上游 | 01-业务需求分析 |
330
- | 下游 | 02-产品需求说明书 |
331
-
332
- ---
333
-
334
- ## 修订记录
335
-
336
- | 版本 | 日期 | 修订人 | 修订内容 |
337
- | ---- | ------ | ------ | ----------------------------- |
338
- | v1.0 | {日期} | {姓名} | 初始版本:完成 F1~F6 全部编写 |
339
-
340
- ---
341
-
342
- ## 1 概览
343
-
344
- (从需求分析提取)
345
-
346
- ## 2 业务核心逻辑(F1)
347
-
348
- ### 2.1 核心术语对照表
349
-
350
- ### 2.2 典型场景对比
351
-
352
- ### 2.3 责任边界与核心原则
353
-
354
- ### 2.4 核心业务运作逻辑
355
-
356
- ### 2.5 核心实体关系
357
-
358
- ### 2.6 生命周期阶段逻辑
359
-
360
- ### 2.7 核心机制详述
361
-
362
- ## 3 业务流程架构(F2)
363
-
364
- ### 3.1 流程编号规则
365
-
366
- ### 3.2 流程架构图
367
-
368
- ### 3.3 流程清单
369
-
370
- ## 4 业务流程文件(F3)
371
-
372
- ### 流程一:{编号} {名称}
373
-
374
- #### 4.1.1 流程图(Mermaid flowchart)
375
-
376
- #### 4.1.2 步骤说明表
377
-
378
- ### 流程二:...
379
-
380
- ### 附录:状态流转汇总
381
-
382
- #### 附-1 状态定义
383
-
384
- #### 附-2 状态流转路径
385
-
386
- #### 附-3 状态流转图(Mermaid stateDiagram-v2)
387
-
388
- ## 5 业务字段清单(F4)
389
-
390
- ### 5.1 {产出物 1} 字段清单
391
-
392
- ### 5.2 {产出物 2} 字段清单
393
-
394
- ## 6 业务规则清单(F5)
395
-
396
- ### 6.1 校验规则
397
-
398
- ### 6.2 计算规则
399
-
400
- ### 6.3 决策规则
401
-
402
- ## 7 业务角色与权限(F6)
403
-
404
- ### 7.1 角色清单
405
-
406
- ### 7.2 操作权限矩阵
407
-
408
- ### 7.3 数据权限范围
409
-
410
- ### 7.4 权限约束与备注
411
-
412
- ## 8 风险与待确认问题
413
-
414
- ### 8.1 风险清单
415
-
416
- ### 8.2 待确认问题清单
417
-
418
- ## 9 确认签
419
-
420
- ### 9.1 确认声明
421
-
422
- ### 9.2 签署
423
- ```
424
-
425
- ## 必选执行后钩子
426
-
427
- **必须在向用户报告完成之前完成本节。**
428
-
429
- 检查项目根目录是否存在 `.adspecs/extensions.yml`。
430
-
431
- - 如果不存在,或 `hooks.after_biz_blueprint` 下没有注册钩子,跳到完成报告。
432
- - 如果存在,读取它并查找 `hooks.after_biz_blueprint` 下的条目。
433
- - 如果 YAML 无法解析或无效,静默跳过钩子检查并继续完成报告。
434
- - 过滤掉 `enabled` 明确为 `false` 的钩子。没有 `enabled` 字段的钩子默认视为启用。
435
- - 对于每个剩余的钩子,**不要** 尝试解释或评估钩子的 `condition` 表达式:
436
- - 如果钩子没有 `condition` 字段,或为空/null,视为可执行。
437
- - 如果钩子定义了非空的 `condition`,跳过该钩子,将条件评估留给 HookExecutor 实现。
438
- - 从钩子命令名构造斜杠命令时,将点号(`.`)替换为连字符(`-`)。例如:`adspecs.git.commit` `/adspecs-git-commit`。
439
- - 对于每个可执行钩子,根据其 `optional` 标志输出以下内容:
440
- - **必选钩子** (`optional: false`) — **必须为每个必选钩子发出 `EXECUTE_COMMAND:`**:
441
-
442
- ```
443
- ## 扩展钩子
444
-
445
- **自动钩子**: {extension}
446
- 执行: `/{command}`
447
- EXECUTE_COMMAND: {command}
448
- ```
449
-
450
- - **可选钩子** (`optional: true`):
451
-
452
- ```
453
- ## 扩展钩子
454
-
455
- **可选钩子**: {extension}
456
- 命令: `/{command}`
457
- 描述: {description}
458
-
459
- 提示: {prompt}
460
- 执行: `/{command}`
461
- ```
462
-
463
- ## 完成报告
464
-
465
- 向用户报告完成情况,包含:
466
-
467
- ```markdown
468
- ✅ 业务方案生成完成
469
-
470
- ## 转化结果
471
-
472
- | 项目 | 详情 |
473
- | ---------- | ----------------------------- |
474
- | 源需求分析 | {REQ_FILE 路径} |
475
- | 业务方案 | {OUTPUT_FILE 路径} |
476
- | 所属模块 | {PARENT_MODULE} > {MODULE_ID} |
477
-
478
- ## 文件体系生成情况
479
-
480
- | 章节 | 状态 | 来源需求分析章节 |
481
- | ---------------------- | --------- | ----------------------- |
482
- | §1 概览 | 已生成 | 一·真实问题 + 六·决策 |
483
- | §2 业务核心逻辑 (F1) | ✅ 已生成 | + 四·4.1/4.2 |
484
- | §3 业务流程架构 (F2) | ✅ 已生成 | 三·场景清单 + 四·主流程 |
485
- | §4 业务流程文件 (F3) | ✅ 已生成 | + 四·4.1/4.3 + 五 |
486
- | F3 附录 状态流转 | ✅ 已生成 | 四·4.2 状态机 |
487
- | §5 业务字段清单 (F4) | ✅ 已生成 | 四·4.1 输入/输出 |
488
- | §6 业务规则清单 (F5) | ✅ 已生成 | 四·4.1 判断 + 五·异常 |
489
- | §7 业务角色与权限 (F6) | ✅ 已生成 | 二·角色 + 权限矩阵 |
490
- | §8 风险与待确认问题 | ✅ 已生成 | 六·风险与待补充 |
491
- | §9 确认签 | ✅ 已生成 | 模板固定文本 |
492
-
493
- ## 质量验证
494
-
495
- - 检查项通过:{N}/10
496
- - 自动修复项:{N}
497
- - 待人工确认项:{N}(列出具体项)
498
-
499
- ## 后续建议
500
-
501
- 1. 人工复核交叉引用一致性(特别是状态枚举值和角色权限)
502
- 2. 可继续执行 `/adspecs-prd` 基于业务方案编写产品需求说明书
503
- 3. 如需导出 Word,可执行 `/adspecs-export-word`(Mermaid 图将自动渲染)
504
- ```
505
-
506
- ## 与上下游的关系
507
-
508
- | 上游 | 本 skill | 下游 |
509
- | ---------------------------------------- | ----------------------- | ------------------------ |
510
- | `adspecs-new-requirement` → 需求分析文档 | `adspecs-biz-blueprint` | `adspecs-prd` PRD 编写 |
511
-
512
- - **输入**:业务需求分析文档(由 `/adspecs-new-requirement` 生成)
513
- - **输出**:业务方案文件(F1~F6 体系)
514
- - **下游消费**:PRD 编写(`/adspecs-prd`)引用业务方案中的 F3 流程步骤、F4 字段定义、F5 规则清单、F6 权限矩阵,构建用户故事和功能描述
515
-
516
- ## 快速指南
517
-
518
- ### 基本用法
519
-
520
- ```bash
521
- # 转换指定需求分析文件
522
- /adspecs-biz-blueprint docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务需求分析.md
523
-
524
- # 如无参数,将提示输入需求分析文件路径
525
- /adspecs-biz-blueprint
526
- ```
527
-
528
- ### 转化策略
529
-
530
- 1. **结构化提取**:角色、场景、流程步骤、规则等按表格结构化提取
531
- 2. **语义分类**:业务规则按校验/计算/决策分类,基于规则描述的语义
532
- 3. **逐层细化**:F1(逻辑)→ F2(架构)→ F3(详述)严格逐层展开
533
- 4. **Mermaid 图表**:所有流程图、状态流转图、实体关系图均使用 Mermaid 格式生成
534
- 5. **待确认标注**:信息不足时用 `[待确认:具体问题]` 标注,全文最多 3 个
535
-
536
- ### 注意事项
537
-
538
- - 本技能**不修改**原始需求分析文档
539
- - 业务方案输出到 `docs/00-customer-requirements/{MODULE_ID}/` 目录
540
- - 如果输出文件已存在,询问用户是否覆盖
541
- - 业务方案中所有描述使用**业务语言**,不引入技术实现细节
542
- - 枚举值必须**全量列出**,不允许使用"等"或"其他"
543
-
544
- ## 完成标志
545
-
546
- - [ ] 已解析用户输入(需求分析文件路径)
547
- - [ ] 需求分析文档已读取并完整性验证
548
- - [ ] 已扫描 `{ARCH_DIR}/` 并识别匹配的二级模块编号 `MODULE_ID`
549
- - [ ] 业务方案 §1~§9 + F3 附录已全部生成
550
- - [ ] 交叉引用一致性已检查(术语/状态/角色/规则/编号 5 项)
551
- - [ ] 10 项质量检查已逐项验证(概览/F1/F2/F3/附录/F4/F5/F6/交叉引用/业务语言)
552
- - [ ] 业务方案文件已写入 `{OUTPUT_DIR}/{MODULE_ID}/{MODULE_ID}_{name}_业务方案.md`
553
- - [ ] 质量检查结果(N/10)和下一步建议已输出
554
- - [ ] 扩展钩子已根据规则分发或跳过
1
+ ---
2
+ name: "adspecs-biz-blueprint"
3
+ description: "将业务需求分析文档转化为结构化的业务方案文档(F1~F6 文件体系),作为 PRD 编写与系统设计的单一信息源。在需求分析之后、PRD 之前,完成业务流程、字段、规则、角色的完整业务蓝图。"
4
+ agent_created: true
5
+ argument-hint: "<业务需求分析文件路径>,如 docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务需求分析.md"
6
+ compatibility: "需要 adspecs 项目结构及 docs/ 目录"
7
+ metadata:
8
+ author: "Qingwen Chen"
9
+ user-invocable: true
10
+ disable-model-invocation: false
11
+ ---
12
+
13
+ # 生成业务方案(Business Blueprint)
14
+
15
+ ## 用户输入
16
+
17
+ ```text
18
+ $ARGUMENTS
19
+ ```
20
+
21
+ **必须** 在继续之前考虑用户输入(如果非空)。
22
+
23
+ ## 路径配置加载
24
+
25
+ 在开始执行之前,先确定输出目录:
26
+
27
+ 1. 检查项目根目录是否存在 `.adspecs/paths.json`
28
+ 2. 如果存在,读取其中的 `paths` 对象,提取本技能需要的配置键
29
+ 3. 如果不存在或配置键缺失,使用下方表格中的默认值
30
+
31
+ | 配置键 | 默认值 | 用途 |
32
+ | ------------------ | ------------------------------- | -------------------------------- |
33
+ | `biz_analysis_dir` | `docs/00-customer-requirements` | 业务方案输出根目录 |
34
+ | `architecture_dir` | `docs/10-architecture` | 业务架构文档目录(用于模块识别) |
35
+
36
+ 将解析后的路径记为 `OUTPUT_DIR` 和 `ARCH_DIR`,后续步骤中引用此变量而非硬编码路径。
37
+
38
+ ## 定位
39
+
40
+ 本 skill 专注于 **业务需求分析 → 业务方案的结构化转化**,是产品交付流水线的第二步——在需求分析(`adspecs-new-requirement`)之后、PRD(`adspecs-prd`)之前,将需求分析成果转化为 F1~F6 业务蓝图,为 PRD 编写提供完整的业务框架。
41
+
42
+ | 对比项 | adspecs-new-requirement | adspecs-biz-blueprint(本 skill) | adspecs-prd | adspecs-plan |
43
+ | -------- | ------------------------------- | ---------------------------------------------------------------- | -------------------------------------- | ----------------------------- |
44
+ | 输出 | 业务需求分析(1 个文件) | 业务方案(1 个文件,F1~F6 体系) | 产品需求说明书(1 个文件) | 系统设计 + SQL(2 个文件) |
45
+ | 模板 | `01-业务需求分析模板.md` | `21-业务方案模板.md` | `02-产品需求说明书模板.md` | `03-系统设计模板.md` |
46
+ | 目标读者 | 产品经理、业务方、技术负责人 | 业务顾问、需求分析师、系统架构师 | 产品经理、业务方 | 开发架构师、后端工程师 |
47
+ | 核心问题 | **为什么要做 & 问题本质是什么** | **业务怎么运作 & 规则是什么** | **做什么 & 为什么** | **怎么建** |
48
+ | 关注点 | 真实问题、解法空间、风险 | F1 核心逻辑、F2 流程架构、F3 流程详述、F4 字段、F5 规则、F6 权限 | 业务场景、用户故事、功能描述、验收标准 | DO/DTO/VO、数据模型、接口设计 |
49
+
50
+ **典型工作流**:
51
+
52
+ 1. 先用 `adspecs-new-requirement` 完成深度需求分析,确认方向正确(为什么做)
53
+ 2. **然后用 `adspecs-biz-blueprint` 生成业务方案,完成 F1~F6 业务蓝图(业务怎么运作)**
54
+ 3. 再用 `adspecs-prd` 基于业务方案编写产品需求说明书供业务方确认(做什么)
55
+ 4. 最后用 `adspecs-plan` 生成技术系统设计文档(怎么建)
56
+
57
+ ## 角色
58
+
59
+ 你是一位拥有 10 年经验的资深业务架构师,擅长将需求分析成果转化为结构化的业务方案。你的核心能力是:
60
+
61
+ - **业务建模**:能将需求分析中的问题定义、角色画像、场景拆解转化为 F1~F6 六层业务文件体系,确保逻辑自洽
62
+ - **流程思维**:擅长用泳道图和步骤表将业务场景转化为可执行的流程描述
63
+ - **规则提炼**:能从业务流程和状态机中提炼原子化的校验、计算、决策规则
64
+ - **一致性把控**:确保术语、状态、角色、规则在 F1~F6 之间完全一致、可交叉追溯
65
+
66
+ ## 任务
67
+
68
+ 读取用户指定的业务需求分析文档,按照 F1~F6 文件体系完成业务方案转化,输出结构化的业务方案文档。转化过程遵循"业务语言优先、单一信息源、可追溯性、逐层细化"四大原则。
69
+
70
+ ## 输入
71
+
72
+ - **业务需求分析文件路径**: 用户在 `$ARGUMENTS` 中提供的需求分析文件路径
73
+ - 必须是有效的 Markdown 文件路径(如 `docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务需求分析.md`)
74
+ - 如果输入为空,提示用户输入业务需求分析文件路径
75
+ - **模板文件**: `.adspecs/templates/21-业务方案模板.md` — 业务方案输出模板(F1~F6 结构)
76
+ - **业务功能架构文档**: `{ARCH_DIR}/01-*_business_scenarios.md` 或 `{ARCH_DIR}/01-*_business_architecture.md` — 用于识别需求所属的二级模块
77
+ - **项目上下文**(可选):
78
+ - `CLAUDE.md`项目技术架构、模块结构
79
+ - `docs/00-customer-requirements/` — 已有的其他需求分析文档
80
+
81
+ ## 业务方案文件体系(F1~F6)
82
+
83
+ | 编号 | 名称 | 核心作用 |
84
+ | ------ | -------------- | -------------------------------------- |
85
+ | F1 | 业务核心逻辑 | 承载业务最底层、最根本的逻辑 |
86
+ | F2 | 业务流程架构 | 流程的分级视图与清单索引 |
87
+ | F3 | 业务流程文件 | 每条流程的完整展开 |
88
+ | F3附录 | 状态流转汇总 | 跨流程的状态变化全局视图 |
89
+ | F4 | 业务字段清单 | 流程产出物中字段的定义与口径 |
90
+ | F5 | 业务规则清单 | 校验、计算、决策规则的原子化汇集 |
91
+ | F6 | 业务角色与权限 | 角色职责、操作权限、数据范围的正式约定 |
92
+
93
+ **概览章节**(§1)从需求分析文档的"概览"和元信息中提取。
94
+
95
+ ### 转化原则
96
+
97
+ 1. **业务语言优先**:所有描述使用业务语言,不引入技术实现细节(无数据库、API、框架名称)
98
+ 2. **单一信息源**:每条信息只在一个地方定义,其他地方引用(如状态枚举只在 F3 附录定义,F4 字段清单引用)
99
+ 3. **可追溯性**:每条业务规则必须能追溯到 F3 中的具体流程步骤
100
+ 4. **结构化展开**:F1 → F2 → F3 是逐层细化,不允许跳跃
101
+
102
+ ## 执行前检查
103
+
104
+ ### 检查扩展钩子(转化前)
105
+
106
+ - 检查项目根目录是否存在 `.adspecs/extensions.yml`。
107
+ - 如果存在,读取它并查找 `hooks.before_biz_blueprint` 下的条目。
108
+ - 如果 YAML 无法解析或无效,静默跳过钩子检查并继续正常执行。
109
+ - 过滤掉 `enabled` 明确为 `false` 的钩子。没有 `enabled` 字段的钩子默认视为启用。
110
+ - 对于每个剩余的钩子,**不要** 尝试解释或评估钩子的 `condition` 表达式:
111
+ - 如果钩子没有 `condition` 字段,或为空/null,视为可执行。
112
+ - 如果钩子定义了非空的 `condition`,跳过该钩子,将条件评估留给 HookExecutor 实现。
113
+ - 从钩子命令名构造斜杠命令时,将点号(`.`)替换为连字符(`-`)。例如:`adspecs.git.commit` → `/adspecs-git-commit`。
114
+ - 对于每个可执行钩子,根据其 `optional` 标志输出以下内容:
115
+ - **可选钩子** (`optional: true`):
116
+
117
+ ```
118
+ ## 扩展钩子
119
+
120
+ **可选前置钩子**: {extension}
121
+ 命令: `/{command}`
122
+ 描述: {description}
123
+
124
+ 提示: {prompt}
125
+ 执行: `/{command}`
126
+ ```
127
+
128
+ - **必选钩子** (`optional: false`):
129
+
130
+ ```
131
+ ## 扩展钩子
132
+
133
+ **自动前置钩子**: {extension}
134
+ 执行: `/{command}`
135
+ EXECUTE_COMMAND: {command}
136
+
137
+ 等待钩子命令结果后再继续执行。
138
+ ```
139
+
140
+ - 如果没有注册钩子或 `.adspecs/extensions.yml` 不存在,静默跳过。
141
+
142
+ ### 步骤 0:参数解析与上下文加载
143
+
144
+ 1. **解析需求分析文件路径**:
145
+ - `$ARGUMENTS` 中解析业务需求分析文件路径
146
+ - 如果参数为空使用 **AskUserQuestion** 让用户输入业务需求分析文件路径
147
+ - 如果参数非空 → 验证文件存在,记为 `REQ_FILE`
148
+
149
+ 2. **需求分析完整性检查**:
150
+ 读取 `REQ_FILE`,验证需求分析文档包含以下必填章节:
151
+
152
+ | 检查项 | 需求分析章节 | 用途 |
153
+ | -------------- | ------------ | --------------------------- |
154
+ | 真实问题分析 | | → F1 业务核心逻辑 |
155
+ | 用户角色分析 | | → F6 业务角色与权限 |
156
+ | 使用场景拆解 | | → F2 流程架构 + F3 流程详述 |
157
+ | 业务流程梳理 | | → F1/F3/F3附录/F4/F5 |
158
+ | 异常和边界 | | → F5 业务规则清单 |
159
+ | 最终输出与决策 | 六 | → §1 概览 + §8 风险与待确认 |
160
+
161
+ **如果缺失必填章节**:列出缺失章节,使用 AskUserQuestion 询问用户是否继续(部分章节可生成占位内容,标注 `[待确认:需求分析缺失 {章节名},待补充]`)。
162
+
163
+ 3. **加载模板**:
164
+ - 读取 `.adspecs/templates/21-业务方案模板.md`,获取 F1~F6 文件体系的完整结构
165
+ - 如果模板不存在,使用内置的转化规则(见下方"步骤 2:按章节转化")
166
+
167
+ 4. **加载项目上下文**(可选):
168
+ - 如果 `CLAUDE.md` 存在,读取以了解项目背景
169
+ - 如果 `docs/00-customer-requirements/` 下有相关文档,读取以补充需求背景
170
+
171
+ 5. **识别二级模块**:
172
+ - 扫描 `{ARCH_DIR}/` 目录,查找 `01-*_business_scenarios.md` 或 `01-*_business_architecture.md` 文件
173
+ - 如果找到,读取文件内容,重点关注:
174
+ - **二、系统模块总览** → **2.2 子模块清单**:获取所有主模块及其下属的二级模块
175
+ - **三、各模块业务场景详述**:获取每个模块的业务场景描述
176
+ - 将需求分析内容与各二级模块的名称、说明、业务场景进行语义匹配,确定需求最匹配的**二级模块编号**(如 M03-02)
177
+ - 匹配规则:
178
+ 1. **精确匹配**:需求分析中明确提到某个子模块名称或编号直接采用
179
+ 2. **场景匹配**:需求分析的业务场景与某个模块下的场景高度吻合 → 采用该子模块编号
180
+ 3. **语义匹配**:需求分析的核心功能与某个子模块的"说明"字段语义相近采用该子模块编号
181
+ 4. **无法匹配**:需求分析内容与任何二级模块都不匹配 使用 AskUserQuestion 让用户选择,或标记为"新模块"
182
+ - 将匹配到的二级模块编号记为 `MODULE_ID`,对应的主模块编号记为 `PARENT_MODULE`
183
+ - 如果架构文档不存在,跳过此步骤,`MODULE_ID` 留空
184
+
185
+ 6. **确定输出路径**:
186
+ - 输出根目录:`{OUTPUT_DIR}/`(默认 `docs/00-customer-requirements/`)
187
+ - 如果 `MODULE_ID` 已识别(非空):
188
+ - 输出子目录:`{OUTPUT_DIR}/{MODULE_ID}/`
189
+ - 如果子目录不存在,自动创建
190
+ - 如果 `MODULE_ID` 为空:直接使用 `{OUTPUT_DIR}/`
191
+ - 输出文件名:`{MODULE_ID}_{short-name}_业务方案.md`(有模块)或 `{short-name}_业务方案.md`(无模块)
192
+ - 如果目录下已有同名文件,询问用户是覆盖还是新增版本号:`{MODULE_ID}_{short-name}_业务方案_v{version}.md`
193
+
194
+ ## 工作流程
195
+
196
+ ### 步骤 1:读取需求分析文档并提取信息块
197
+
198
+ 读取 `REQ_FILE` 的全部内容,识别并提取信息块与模板文件章节进行匹配:
199
+
200
+ ### 步骤 2:按章节转化(F1~F6)
201
+
202
+ 1. 按照模板结构,将提供源文件内容映射到业务方案各章节,并给出映射详细清单给用户确认。
203
+ 2. 按照映射关系,按照模板结构和提示文字,将提供源文件内容深度分析并编制到对应章节,为写入业务方案文件做准备。
204
+ 3. 流程图、状态均采用`mermaid`格式绘制
205
+ 4. 严禁将用户故事章节做流程转换
206
+
207
+ #### 2.10 确认签(§9)
208
+
209
+ 生成标准确认签章节,内容固定:
210
+
211
+ - **§9.1 确认声明**:使用模板固定文本,引用业务方案中的章节编号
212
+ - **§9.2 签署**:生成标准的甲方/乙方签署表,留空待签署
213
+
214
+ ### 步骤 3:交叉引用检查
215
+
216
+ 转化完成后,检查以下交叉引用一致性:
217
+
218
+ 1. **术语一致性**:F1 术语表中的术语在 F3 步骤描述中使用时,含义完全一致
219
+ 2. **状态一致性**:F3 附录中的状态枚举值与 F4 字段清单中的枚举值完全一致
220
+ 3. **角色一致性**:F3 步骤中的执行角色与 F6 角色清单中的角色完全一致
221
+ 4. **规则引用一致性**:F5 规则清单中的"来源流程步骤"指向 F3 中实际存在的步骤
222
+ 5. **流程编号一致性**:F2 流程清单中的流程编号与 F3 流程文件的编号一致
223
+
224
+ 如发现不一致,自动修正并在备注中记录修正项。
225
+
226
+ ### 步骤 4:写入业务方案文件
227
+
228
+ 将转化结果写入输出文件:
229
+
230
+ ```
231
+ OUTPUT_DIR = 路径配置加载阶段解析的值(默认 docs/00-customer-requirements)
232
+ MODULE_ID = 识别到的二级模块编号(如 M03-02),可能为空
233
+
234
+ # 有模块编号时:
235
+ OUTPUT_FILE = "{OUTPUT_DIR}/{MODULE_ID}/{MODULE_ID}_{short-name}_业务方案.md"
236
+ # 示例:docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务方案.md
237
+
238
+ # 无模块编号时(兼容旧行为):
239
+ OUTPUT_FILE = "{OUTPUT_DIR}/{short-name}_业务方案.md"
240
+ # 示例:docs/00-customer-requirements/bonded-material_业务方案.md
241
+ ```
242
+
243
+ 文件头部元信息从需求分析文档继承:
244
+
245
+ - 项目名称:从需求分析标题提取
246
+ - 模块编号:`MODULE_ID` / `PARENT_MODULE`
247
+ - 版本号:默认 v1.0
248
+ - 创建日期:当前日期
249
+ - 修订记录:生成初始版本记录
250
+
251
+ **关键原则**:
252
+
253
+ - 所有描述使用**业务语言**,不引入技术实现细节(无数据库、API、框架名称)
254
+ - 枚举值必须**全量列出**,不允许使用"等"或"其他"
255
+ - 不确定的部分标注 `[待确认:具体问题]`,**全文最多 3 个**
256
+ - Mermaid 图表(flowchart/stateDiagram-v2/erDiagram)必须生成可渲染代码,不使用 ASCII 或占位符
257
+ - 本技能**不修改**原始需求分析文档
258
+
259
+ ### 步骤 5:质量检查(10 项)
260
+
261
+ 逐项验证业务方案的完整性和一致性,每项标注 ✅ 已覆盖 / ⚠️ 部分覆盖 / ❌ 未覆盖,并关联到对应的文档章节:
262
+
263
+ | # | 检查项 | 状态 | 对应章节 | 补充说明 |
264
+ | --- | ------------------------------------------- | -------- | -------- | -------------------------------------------------------- |
265
+ | 1 | 概览章节与需求分析的核心问题和角色一致 | ✅/⚠️/❌ | §1 | 【基本信息、背景、范围、角色是否完整继承】 |
266
+ | 2 | F1 核心逻辑完整(术语/场景/责任/运作/实体) | ✅/⚠️/❌ | §2 (F1) | 【术语表有释例、实体关系有 Mermaid 图、核心机制已展开】 |
267
+ | 3 | F2 流程架构完整(编号规则/架构图/流程清单) | ✅/⚠️/❌ | §3 (F2) | 【流程编号全局唯一、清单覆盖所有 P0/P1 场景对应的流程】 |
268
+ | 4 | F3 每条流程有 Mermaid 流程图 + 步骤说明表 | ✅/⚠️/❌ | §4 (F3) | 【泳道图可渲染、步骤表含输入/输出/判定/异常】 |
269
+ | 5 | F3 附录状态流转完整(定义/路径/流转图) | ✅/⚠️/❌ | §4 附录 | 【状态定义与 F4 一致、流转路径关联到 F3 步骤编号】 |
270
+ | 6 | F4 字段清单完整(按产出物分组、枚举全量) | ✅/⚠️/❌ | §5 (F4) | 【字段无技术名、枚举值全量列出、状态枚举与 F3 附录一致】 |
271
+ | 7 | F5 规则清单完整(校验/计算/决策分类) | ✅/⚠️/❌ | §6 (F5) | 【每条规则有来源步骤、触发时机、不满足时行为】 |
272
+ | 8 | F6 权限矩阵覆盖所有 F3 操作 | ✅/⚠️/❌ | §7 (F6) | 【角色清单含来源流程、数据权限有约束条件】 |
273
+ | 9 | 交叉引用一致性(术语/状态/角色/规则/编号) | ✅/⚠️/❌ | 跨章节 | 【5 项交叉引用检查全部通过】 |
274
+ | 10 | 全部使用业务语言,无技术实现泄露 | ✅/⚠️/❌ | 全文 | 【无数据库名/API/框架名、枚举无"等"/"其他"】 |
275
+
276
+ **通过规则**:
277
+
278
+ - **✅ 全部通过**:10 项均为 业务方案质量合格,可进入 PRD 编写
279
+ - **⚠️ 基本通过**:存在 ⚠️ 但无 ❌ → 标注需补充的具体项,补充后可进入 PRD 编写
280
+ - **❌ 未通过**:存在任意 ❌ → 列出缺失项,自动修复(最多 3 次迭代),修复后重新验证
281
+
282
+ ### 步骤 6:后续建议
283
+
284
+ 根据质量检查结果,给出明确的下一步建议:
285
+
286
+ - **如果 ✅ 10/10 通过**:
287
+
288
+ ```
289
+ 📋 建议下一步执行:/adspecs-prd {需求概要}
290
+ ```
291
+
292
+ - **如果 ⚠️ N/10 通过(有 ⚠️ 无 ❌)**:
293
+
294
+ ```
295
+ ⚠️ 在编写 PRD 之前,建议先补充以下信息:
296
+ 1. {未通过的检查项对应的待补充内容}
297
+ 2. {待补充项 2}
298
+ 补充完成后可直接执行 /adspecs-prd
299
+ ```
300
+
301
+ - **如果 ❌ N/10 通过(有 ❌)**:
302
+ ```
303
+ 业务方案存在以下问题需要修复:
304
+ 1. {未通过的检查项对应的具体问题}
305
+ 2. {问题 2}
306
+ 已尝试自动修复 {N} 次,仍有 {M} 项需要人工确认
307
+ ```
308
+
309
+ ## 输出文件结构
310
+
311
+ > 输出文档按模板的 **§1~§9 + F3 附录** 结构组织。F1~F6 是内容分类维度,映射到 §2~§7 章节。
312
+
313
+ ```markdown
314
+ # {项目名称} — 业务方案
315
+
316
+ > **版本**: v1.0
317
+ > **创建日期**: {today}
318
+ > **主模块**: {PARENT_MODULE} {主模块名称}
319
+ > **二级模块编号**: {MODULE_ID}
320
+ > **二级模块名称**: {模块名称}
321
+ > **源需求分析**: {REQ_FILE 路径}
322
+ > **适用人员**: 业务顾问、产品经理、需求分析师
323
+
324
+ | | |
325
+ | ------------ | ---------------------------- |
326
+ | 主模块 | {PARENT_MODULE} {主模块名称} |
327
+ | 二级模块编号 | {MODULE_ID} |
328
+ | 二级模块名称 | {模块名称} |
329
+ | 阶段 | Blueprint(Why → What 过渡) |
330
+ | 上游 | 01-业务需求分析 |
331
+ | 下游 | → 02-产品需求说明书 |
332
+
333
+ ---
334
+
335
+ ## 修订记录
336
+
337
+ | 版本 | 日期 | 修订人 | 修订内容 |
338
+ | ---- | ------ | ------ | ----------------------------- |
339
+ | v1.0 | {日期} | {姓名} | 初始版本:完成 F1~F6 全部编写 |
340
+
341
+ ---
342
+
343
+ ## 1 概览
344
+
345
+ (从需求分析提取)
346
+
347
+ ## 2 业务核心逻辑(F1)
348
+
349
+ ### 2.1 核心术语对照表
350
+
351
+ ### 2.2 典型场景对比
352
+
353
+ ### 2.3 责任边界与核心原则
354
+
355
+ ### 2.4 核心业务运作逻辑
356
+
357
+ ### 2.5 核心实体关系
358
+
359
+ ### 2.6 生命周期阶段逻辑
360
+
361
+ ### 2.7 核心机制详述
362
+
363
+ ## 3 业务流程架构(F2)
364
+
365
+ ### 3.1 流程编号规则
366
+
367
+ ### 3.2 流程架构图
368
+
369
+ ### 3.3 流程清单
370
+
371
+ ## 4 业务流程文件(F3)
372
+
373
+ ### 流程一:{编号} {名称}
374
+
375
+ #### 4.1.1 流程图(Mermaid flowchart)
376
+
377
+ #### 4.1.2 步骤说明表
378
+
379
+ ### 流程二:...
380
+
381
+ ### 附录:状态流转汇总
382
+
383
+ #### 附-1 状态定义
384
+
385
+ #### 附-2 状态流转路径
386
+
387
+ #### 附-3 状态流转图(Mermaid stateDiagram-v2)
388
+
389
+ ## 5 业务字段清单(F4)
390
+
391
+ ### 5.1 {产出物 1} 字段清单
392
+
393
+ ### 5.2 {产出物 2} 字段清单
394
+
395
+ ## 6 业务规则清单(F5)
396
+
397
+ ### 6.1 校验规则
398
+
399
+ ### 6.2 计算规则
400
+
401
+ ### 6.3 决策规则
402
+
403
+ ## 7 业务角色与权限(F6)
404
+
405
+ ### 7.1 角色清单
406
+
407
+ ### 7.2 操作权限矩阵
408
+
409
+ ### 7.3 数据权限范围
410
+
411
+ ### 7.4 权限约束与备注
412
+
413
+ ## 8 风险与待确认问题
414
+
415
+ ### 8.1 风险清单
416
+
417
+ ### 8.2 待确认问题清单
418
+
419
+ ## 9 确认签
420
+
421
+ ### 9.1 确认声明
422
+
423
+ ### 9.2 签署
424
+ ```
425
+
426
+ ## 必选执行后钩子
427
+
428
+ **必须在向用户报告完成之前完成本节。**
429
+
430
+ 检查项目根目录是否存在 `.adspecs/extensions.yml`。
431
+
432
+ - 如果不存在,或 `hooks.after_biz_blueprint` 下没有注册钩子,跳到完成报告。
433
+ - 如果存在,读取它并查找 `hooks.after_biz_blueprint` 下的条目。
434
+ - 如果 YAML 无法解析或无效,静默跳过钩子检查并继续完成报告。
435
+ - 过滤掉 `enabled` 明确为 `false` 的钩子。没有 `enabled` 字段的钩子默认视为启用。
436
+ - 对于每个剩余的钩子,**不要** 尝试解释或评估钩子的 `condition` 表达式:
437
+ - 如果钩子没有 `condition` 字段,或为空/null,视为可执行。
438
+ - 如果钩子定义了非空的 `condition`,跳过该钩子,将条件评估留给 HookExecutor 实现。
439
+ - 从钩子命令名构造斜杠命令时,将点号(`.`)替换为连字符(`-`)。例如:`adspecs.git.commit` → `/adspecs-git-commit`。
440
+ - 对于每个可执行钩子,根据其 `optional` 标志输出以下内容:
441
+ - **必选钩子** (`optional: false`) — **必须为每个必选钩子发出 `EXECUTE_COMMAND:`**:
442
+
443
+ ```
444
+ ## 扩展钩子
445
+
446
+ **自动钩子**: {extension}
447
+ 执行: `/{command}`
448
+ EXECUTE_COMMAND: {command}
449
+ ```
450
+
451
+ - **可选钩子** (`optional: true`):
452
+
453
+ ```
454
+ ## 扩展钩子
455
+
456
+ **可选钩子**: {extension}
457
+ 命令: `/{command}`
458
+ 描述: {description}
459
+
460
+ 提示: {prompt}
461
+ 执行: `/{command}`
462
+ ```
463
+
464
+ ## 完成报告
465
+
466
+ 向用户报告完成情况,包含:
467
+
468
+ ```markdown
469
+ ✅ 业务方案生成完成
470
+
471
+ ## 转化结果
472
+
473
+ | 项目 | 详情 |
474
+ | ---------- | ----------------------------- |
475
+ | 源需求分析 | {REQ_FILE 路径} |
476
+ | 业务方案 | {OUTPUT_FILE 路径} |
477
+ | 所属模块 | {PARENT_MODULE} > {MODULE_ID} |
478
+
479
+ ## 文件体系生成情况
480
+
481
+ | 章节 | 状态 | 来源需求分析章节 |
482
+ | ---------------------- | --------- | ----------------------- |
483
+ | §1 概览 | ✅ 已生成 | 一·真实问题 + 六·决策 |
484
+ | §2 业务核心逻辑 (F1) | ✅ 已生成 | + 四·4.1/4.2 |
485
+ | §3 业务流程架构 (F2) | ✅ 已生成 | 三·场景清单 + 四·主流程 |
486
+ | §4 业务流程文件 (F3) | ✅ 已生成 | 三 + 四·4.1/4.3 + 五 |
487
+ | F3 附录 状态流转 | ✅ 已生成 | 四·4.2 状态机 |
488
+ | §5 业务字段清单 (F4) | ✅ 已生成 | 四·4.1 输入/输出 |
489
+ | §6 业务规则清单 (F5) | ✅ 已生成 | 四·4.1 判断 + 五·异常 |
490
+ | §7 业务角色与权限 (F6) | ✅ 已生成 | 二·角色 + 权限矩阵 |
491
+ | §8 风险与待确认问题 | ✅ 已生成 | 六·风险与待补充 |
492
+ | §9 确认签 | ✅ 已生成 | 模板固定文本 |
493
+
494
+ ## 质量验证
495
+
496
+ - 检查项通过:{N}/10
497
+ - 自动修复项:{N}
498
+ - 待人工确认项:{N}(列出具体项)
499
+
500
+ ## 后续建议
501
+
502
+ 1. 人工复核交叉引用一致性(特别是状态枚举值和角色权限)
503
+ 2. 可继续执行 `/adspecs-prd` 基于业务方案编写产品需求说明书
504
+ 3. 如需导出 Word,可执行 `/adspecs-export-word`(Mermaid 图将自动渲染)
505
+ ```
506
+
507
+ ## 与上下游的关系
508
+
509
+ | 上游 | skill | 下游 |
510
+ | ---------------------------------------- | ----------------------- | ------------------------ |
511
+ | `adspecs-new-requirement` → 需求分析文档 | `adspecs-biz-blueprint` | → `adspecs-prd` PRD 编写 |
512
+
513
+ - **输入**:业务需求分析文档(由 `/adspecs-new-requirement` 生成)
514
+ - **输出**:业务方案文件(F1~F6 体系)
515
+ - **下游消费**:PRD 编写(`/adspecs-prd`)引用业务方案中的 F3 流程步骤、F4 字段定义、F5 规则清单、F6 权限矩阵,构建用户故事和功能描述
516
+
517
+ ## 快速指南
518
+
519
+ ### 基本用法
520
+
521
+ ```bash
522
+ # 转换指定需求分析文件
523
+ /adspecs-biz-blueprint docs/00-customer-requirements/M03-02/M03-02_bonded-material_业务需求分析.md
524
+
525
+ # 如无参数,将提示输入需求分析文件路径
526
+ /adspecs-biz-blueprint
527
+ ```
528
+
529
+ ### 转化策略
530
+
531
+ 1. **结构化提取**:角色、场景、流程步骤、规则等按表格结构化提取
532
+ 2. **语义分类**:业务规则按校验/计算/决策分类,基于规则描述的语义
533
+ 3. **逐层细化**:F1(逻辑)→ F2(架构)→ F3(详述)严格逐层展开
534
+ 4. **Mermaid 图表**:所有流程图、状态流转图、实体关系图均使用 Mermaid 格式生成
535
+ 5. **待确认标注**:信息不足时用 `[待确认:具体问题]` 标注,全文最多 3 个
536
+
537
+ ### 注意事项
538
+
539
+ - 本技能**不修改**原始需求分析文档
540
+ - 业务方案输出到 `docs/00-customer-requirements/{MODULE_ID}/` 目录
541
+ - 如果输出文件已存在,询问用户是否覆盖
542
+ - 业务方案中所有描述使用**业务语言**,不引入技术实现细节
543
+ - 枚举值必须**全量列出**,不允许使用"等"或"其他"
544
+
545
+ ## 完成标志
546
+
547
+ - [ ] 已解析用户输入(需求分析文件路径)
548
+ - [ ] 需求分析文档已读取并完整性验证
549
+ - [ ] 已扫描 `{ARCH_DIR}/` 并识别匹配的二级模块编号 `MODULE_ID`
550
+ - [ ] 业务方案 §1~§9 + F3 附录已全部生成
551
+ - [ ] 交叉引用一致性已检查(术语/状态/角色/规则/编号 5 项)
552
+ - [ ] 10 项质量检查已逐项验证(概览/F1/F2/F3/附录/F4/F5/F6/交叉引用/业务语言)
553
+ - [ ] 业务方案文件已写入 `{OUTPUT_DIR}/{MODULE_ID}/{MODULE_ID}_{name}_业务方案.md`
554
+ - [ ] 质量检查结果(N/10)和下一步建议已输出
555
+ - [ ] 扩展钩子已根据规则分发或跳过