@localsummer/incspec 0.0.6 → 0.0.8

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 (38) hide show
  1. package/README.md +76 -15
  2. package/commands/analyze.mjs +28 -12
  3. package/commands/apply.mjs +78 -33
  4. package/commands/archive.mjs +25 -3
  5. package/commands/collect-dep.mjs +2 -2
  6. package/commands/collect-req.mjs +10 -2
  7. package/commands/design.mjs +2 -2
  8. package/commands/help.mjs +20 -11
  9. package/commands/list.mjs +2 -1
  10. package/commands/merge.mjs +64 -33
  11. package/commands/reset.mjs +166 -0
  12. package/commands/status.mjs +30 -7
  13. package/commands/sync.mjs +210 -0
  14. package/commands/update.mjs +2 -1
  15. package/index.mjs +13 -6
  16. package/lib/agents.mjs +1 -1
  17. package/lib/claude.mjs +144 -0
  18. package/lib/config.mjs +13 -10
  19. package/lib/cursor.mjs +20 -5
  20. package/lib/terminal.mjs +108 -0
  21. package/lib/workflow.mjs +123 -29
  22. package/package.json +1 -1
  23. package/templates/AGENTS.md +89 -36
  24. package/templates/INCSPEC_BLOCK.md +1 -1
  25. package/templates/WORKFLOW.md +1 -0
  26. package/templates/cursor-commands/analyze-codeflow.md +12 -1
  27. package/templates/cursor-commands/apply-increment-code.md +129 -1
  28. package/templates/cursor-commands/merge-to-baseline.md +87 -1
  29. package/templates/cursor-commands/structured-requirements-collection.md +6 -0
  30. package/templates/inc-spec-skill/SKILL.md +286 -0
  31. package/templates/inc-spec-skill/references/analyze-codeflow.md +368 -0
  32. package/templates/inc-spec-skill/references/analyze-increment-codeflow.md +246 -0
  33. package/templates/inc-spec-skill/references/apply-increment-code.md +520 -0
  34. package/templates/inc-spec-skill/references/inc-archive.md +278 -0
  35. package/templates/inc-spec-skill/references/merge-to-baseline.md +415 -0
  36. package/templates/inc-spec-skill/references/structured-requirements-collection.md +129 -0
  37. package/templates/inc-spec-skill/references/ui-dependency-collection.md +143 -0
  38. package/commands/cursor-sync.mjs +0 -116
@@ -0,0 +1,278 @@
1
+ ---
2
+ description: 归档规范文件到 archives 目录,全部归档完成后记录到工作流历史
3
+ argument-hint: [file-path] [--keep] [--workflow] [--yes]
4
+ allowed-tools: Glob, Read, Bash
5
+ ---
6
+
7
+ ## CLI 同步 (自动)
8
+
9
+ 根据用户提供的参数,执行对应的归档命令:
10
+
11
+ ```bash
12
+ # 归档当前工作流全部产出文件(默认模式)
13
+ incspec archive --yes
14
+
15
+ # 如果用户要求归档指定文件(默认移动模式,删除原文件)
16
+ incspec archive <file-path> --yes
17
+
18
+ # 如果用户要求保留原文件(复制模式)
19
+ incspec archive <file-path> --keep --yes
20
+
21
+ # 如果用户显式指定归档当前工作流全部产出文件
22
+ incspec archive --workflow --yes
23
+ ```
24
+
25
+ 说明:
26
+ - `--yes` 标志自动确认,无需交互
27
+ - `--keep` 标志表示复制文件(保留原文件),默认是移动(删除原文件)
28
+ - `--workflow` 标志表示归档当前工作流的全部产出文件(无需指定文件路径)
29
+ - 若 incspec 提示未初始化,请先运行 `incspec init`
30
+
31
+ # 角色定位
32
+
33
+ 你是 incspec 工作流归档助手。你的职责是帮助用户将已完成的规范文件(baselines、increments、requirements)归档到 archives 目录(按 `YYYY-MM/{module}/` 结构组织),并在本工作流所有产出归档完成后记录到工作流历史中。
34
+
35
+ # 核心目标
36
+
37
+ 1. 帮助用户确认归档当前工作流产出或指定文件
38
+ 2. 执行归档操作(默认移动到 archives 目录,保持工作流干净)
39
+ 3. 在本工作流所有产出归档完成后更新工作流历史记录
40
+ 4. 验证归档结果
41
+
42
+ # 输入参数
43
+
44
+ 1. **file-path** (可选): 要归档的文件路径(提供时执行单文件归档)
45
+ - 可以是完整路径: `incspec/baselines/resume-baseline-v1.md`
46
+ - 可以是相对路径: `baselines/resume-baseline-v1.md`
47
+ - 可以是文件名: `resume-baseline-v1.md`
48
+ - 如未提供,默认归档当前工作流全部产出文件
49
+
50
+ 2. **--keep** (可选): 是否保留原文件
51
+ - 默认: 移动到 archives 目录(删除原文件,保持工作流干净)
52
+ - 带 --keep: 复制到 archives 目录(保留原文件)
53
+
54
+ 3. **--workflow** (可选): 是否归档当前工作流全部产出文件
55
+ - 带 --workflow: 自动归档当前工作流所有产出文件,无需提供 file-path
56
+
57
+ # 执行流程
58
+
59
+ ## 步骤 1: 确定归档文件
60
+
61
+ ### 1.1 默认模式(未提供 file-path 或显式 --workflow)
62
+
63
+ 直接归档当前工作流全部产出文件:
64
+
65
+ ```bash
66
+ incspec archive --yes
67
+ # 或
68
+ incspec archive --workflow --yes
69
+ ```
70
+
71
+ ### 1.2 如果用户提供了文件路径
72
+
73
+ 直接使用提供的路径,执行:
74
+
75
+ ```bash
76
+ incspec archive <file-path> --yes
77
+ ```
78
+
79
+ ### 1.3 如果用户提供了文件 ID 或关键词
80
+
81
+ 搜索匹配的文件:
82
+
83
+ ```bash
84
+ # 搜索 baselines 目录
85
+ ls incspec/baselines/ | grep <keyword>
86
+
87
+ # 搜索 increments 目录
88
+ ls incspec/increments/ | grep <keyword>
89
+
90
+ # 搜索 requirements 目录
91
+ ls incspec/requirements/ | grep <keyword>
92
+ ```
93
+
94
+ 找到匹配文件后,确认并执行归档。
95
+
96
+ ## 步骤 2: 验证文件状态
97
+
98
+ 在归档前检查 (仅针对单文件归档):
99
+
100
+ ```bash
101
+ # 检查文件是否存在
102
+ cat <file-path> | head -20
103
+ ```
104
+
105
+ 确认文件:
106
+ - 存在且可读
107
+ - 内容完整(非空文件)
108
+ - 确定文件类型(baseline/increment/requirement)
109
+
110
+ ## 步骤 3: 执行归档
111
+
112
+ 根据用户选择执行:
113
+
114
+ ```bash
115
+ # 默认模式:归档当前工作流全部产出文件
116
+ incspec archive --yes
117
+
118
+ # 归档指定文件(默认移动模式,删除原文件)
119
+ incspec archive <file-path> --yes
120
+
121
+ # 归档指定文件并保留原文件(复制模式)
122
+ incspec archive <file-path> --keep --yes
123
+
124
+ # 显式归档当前工作流全部产出文件
125
+ incspec archive --workflow --yes
126
+ ```
127
+
128
+ ## 步骤 4: 验证结果
129
+
130
+ ### 4.1 检查归档目录
131
+
132
+ ```bash
133
+ # 查看归档目录结构: archives/YYYY-MM/{module}/
134
+ ls -la incspec/archives/
135
+ ls -la incspec/archives/2025-12/ # 当月目录
136
+ ```
137
+
138
+ 确认文件已复制/移动到归档目录(按年月和工作流模块分组)。
139
+
140
+ ### 4.2 检查工作流历史
141
+
142
+ ```bash
143
+ cat incspec/WORKFLOW.md
144
+ ```
145
+
146
+ 确认工作流历史已更新,包含工作流级别的归档记录(不是文件级别)。
147
+ 如果仅归档部分文件且本工作流尚未全部归档,工作流历史不应新增记录。
148
+
149
+ ### 4.3 运行验证
150
+
151
+ ```bash
152
+ incspec validate
153
+ ```
154
+
155
+ 确保归档后项目状态健康。
156
+
157
+ ## 步骤 5: 输出结果摘要
158
+
159
+ ```
160
+ ✅ 归档完成
161
+
162
+ 📁 归档详情:
163
+ - 源文件: incspec/baselines/resume-baseline-v1.md
164
+ - 归档位置: incspec/archives/2025-12/resume-workflow/{文件名}
165
+ - 操作类型: 复制/移动
166
+
167
+ 📝 工作流历史已更新(仅当本工作流所有产出已归档):
168
+ | resume-workflow-v1 | archived | 2025-12-10 09:00 | 2025-12-19 15:30 |
169
+
170
+ 🔍 验证结果: 通过
171
+ ```
172
+
173
+ 注意:归档目录结构为 `archives/YYYY-MM/{module}/`,其中 `{module}` 为当前工作流名称。
174
+
175
+ # 特殊情况处理
176
+
177
+ ## 情况 1: 文件不存在
178
+
179
+ ```
180
+ ❌ 文件不存在: <file-path>
181
+
182
+ 可能的原因:
183
+ 1. 文件路径拼写错误
184
+ 2. 文件已被归档或删除
185
+
186
+ 建议操作:
187
+ - 运行 `incspec list` 查看现有文件
188
+ - 检查 `incspec/archives/` 目录
189
+ ```
190
+
191
+ ## 情况 2: 文件已归档
192
+
193
+ 如果文件已在 archives 目录:
194
+
195
+ ```
196
+ ⚠️ 文件已存在于归档目录
197
+
198
+ 选项:
199
+ 1. 跳过此文件
200
+ 2. 覆盖已归档文件(添加版本后缀)
201
+ ```
202
+
203
+ ## 情况 3: 批量归档
204
+
205
+ 如果用户要求归档多个文件:
206
+
207
+ ```bash
208
+ # 逐个执行归档
209
+ incspec archive file1.md --yes
210
+ incspec archive file2.md --yes
211
+ incspec archive file3.md --yes
212
+ ```
213
+
214
+ 每个文件独立处理,工作流历史仅在本工作流所有产出归档完成后记录一条归档记录。
215
+
216
+ ## 情况 4: 归档整个工作流
217
+
218
+ 如果用户要求归档当前工作流的所有产出:
219
+
220
+ 1. 直接使用默认模式归档当前工作流全部产出文件
221
+ 2. 所有产出归档完成后,记录工作流归档历史
222
+
223
+ ```bash
224
+ # 归档当前工作流全部产出文件
225
+ incspec archive --yes
226
+
227
+ # 或者显式指定
228
+ incspec archive --workflow --yes
229
+ ```
230
+
231
+ # 工作流集成
232
+
233
+ ## 与其他命令的关系
234
+
235
+ | 前置命令 | 说明 |
236
+ |---------|------|
237
+ | `incspec merge` | 完成基线合并后,可归档旧的增量报告 |
238
+ | `incspec status` | 查看当前工作流状态,确定可归档文件 |
239
+
240
+ | 后续命令 | 说明 |
241
+ |---------|------|
242
+ | `incspec analyze` | 归档后可开始新的工作流 |
243
+ | `incspec list` | 确认文件已从活跃目录移除 |
244
+
245
+ ## 典型工作流
246
+
247
+ ```
248
+ 1. 完成一轮增量开发
249
+ /incspec/inc-merge
250
+
251
+ 2. 归档本轮产出(默认移动模式,保持工作流干净)
252
+ /incspec/inc-archive resume-increment-v1.md
253
+
254
+ 3. 开始新的工作流
255
+ /incspec/inc-analyze src/new-module
256
+ ```
257
+
258
+ # 最佳实践
259
+
260
+ 1. **完成后归档**: 在完成工作流后及时归档,保持工作目录整洁
261
+ 2. **默认移动模式**: 默认会删除原文件,保持工作流干净;如需保留原文件使用 `--keep`
262
+ 3. **批量归档**: 工作流完成后,一次性归档所有相关文件
263
+ 4. **检查历史**: 归档后检查 WORKFLOW.md 确认记录正确
264
+
265
+ # 错误处理
266
+
267
+ 遇到以下情况时报错:
268
+
269
+ 1. **incspec 未初始化**: 提示运行 `incspec init`
270
+ 2. **文件不存在**: 列出可用文件供选择
271
+ 3. **权限问题**: 检查目录权限
272
+ 4. **磁盘空间**: 检查是否有足够空间(复制模式)
273
+
274
+ 错误时提供详细说明和修复建议。
275
+
276
+ ---
277
+
278
+ 记住:你的目标是帮助用户高效、安全地归档规范文件,保持项目结构整洁,同时确保工作流历史完整可追溯。
@@ -0,0 +1,415 @@
1
+ ---
2
+ description: 将增量需求报告融合为新的代码流基线快照
3
+ argument-hint: <increment-report-path> [baseline-output-dir]
4
+ allowed-tools: Read, Write, Bash
5
+ ---
6
+
7
+ ## CLI 同步 (自动)
8
+
9
+ **检测工作流模式:**
10
+
11
+ ```bash
12
+ incspec status
13
+ ```
14
+
15
+ ### 完整模式 (7步)
16
+
17
+ 开始执行前,先用 Bash 执行:
18
+
19
+ ```bash
20
+ incspec merge <increment-report-path>
21
+ ```
22
+
23
+ 完成基线报告写入后,再用 Bash 执行:
24
+
25
+ ```bash
26
+ incspec merge <increment-report-path> --complete --output=<output-file>
27
+ ```
28
+
29
+ 说明:
30
+ - `<output-file>` 必须与最终写入的文件名一致
31
+ - 若提示没有活跃工作流,请先完成步骤 1-5
32
+
33
+ ### 快速模式 (5步)
34
+
35
+ 快速模式下,不依赖增量设计报告,直接重新分析当前代码生成新基线:
36
+
37
+ ```bash
38
+ incspec merge --complete --output=<output-file>
39
+ ```
40
+
41
+ 说明:
42
+ - 快速模式下无需提供增量设计报告路径
43
+ - 实际执行的是对当前代码的重新分析
44
+ - 请先完成步骤 1-2 和步骤 5 (应用代码变更)
45
+
46
+ # 角色定位
47
+
48
+ 你是增量基线融合专家。根据工作流模式执行不同的融合策略。
49
+
50
+ ## 模式说明
51
+
52
+ - **完整模式**: 将增量需求融合快照报告(步骤 4 产出)转换为干净的基线快照报告
53
+ - **快速模式**: 重新分析当前代码状态(已应用变更后),生成新版本基线快照
54
+
55
+ # 核心目标
56
+
57
+ 将增量报告中的"规划后状态"转换为"当前基线状态":
58
+ - 提取增量报告的模块3(规划后的API调用时序图)和模块4(规划后的依赖关系图)
59
+ - 移除所有增量标记(🆕 新增、✏️ 修改、❌ 删除)
60
+ - 删除已标记为删除的节点
61
+ - 重新编号所有节点,使用基线编号系统(S1, S2... 和 D1, D2...)
62
+ - 生成符合 analyze-codeflow 格式的新基线报告
63
+
64
+ # 输入参数
65
+
66
+ 1. **increment-report-path** (必填): 增量需求融合快照报告的完整路径(如 increment-codeflow-v2.md)
67
+ 2. **baseline-output-dir** (可选): 新基线报告的输出路径,默认为 `<原文件名>-baseline.md`
68
+
69
+ # 执行流程
70
+
71
+ ## 步骤 1: 读取并解析增量报告
72
+
73
+ 读取 increment-report-path 指定的报告文件,提取以下模块:
74
+
75
+ - **模块 3: 规划后的 API 调用时序图**
76
+ - 识别所有步骤节点及其标记
77
+ - 识别 🆕 新增步骤 [N1], [N2]...
78
+ - 识别 ✏️ 修改步骤 [S1-Modified], [S2-Modified]...
79
+ - 识别 ❌ 删除步骤 [S3-Deleted]...
80
+
81
+ - **模块 4: 规划后的依赖关系图**
82
+ - 识别所有依赖节点及其标记
83
+ - 识别 🆕 新增节点 N1, N2...
84
+ - 识别 ✏️ 修改节点 D1_MOD, D2_MOD...
85
+ - 识别 ❌ 删除节点 D3_DEL...
86
+
87
+ ## 步骤 2: 清理增量标记
88
+
89
+ ### 2.1 处理时序图(模块3)
90
+
91
+ 1. **移除删除节点**: 删除所有标记为 ❌ 的步骤及相关的 Note
92
+ 2. **移除标记符号**:
93
+ - 移除所有 🆕、✏️、❌ emoji
94
+ - 移除节点编号中的 -Modified、-Deleted 后缀
95
+ 3. **统一节点编号**:
96
+ - 将所有节点(包括原有的 [S1]、新增的 [N1]、修改的 [S2-Modified])重新编号
97
+ - 按时序顺序统一编号为 [S1], [S2], [S3]...
98
+ 4. **清理注释**: 移除说明新增/修改/删除的 Note 内容
99
+
100
+ ### 2.2 处理依赖图(模块4)
101
+
102
+ 1. **移除删除节点**: 删除所有标记为 ❌ 的节点及相关依赖关系
103
+ 2. **移除标记符号**:
104
+ - 移除所有 🆕、✏️、❌ emoji
105
+ - 移除节点编号中的 _MOD、_DEL 后缀
106
+ 3. **统一节点编号**:
107
+ - 将所有节点(包括原有的 D1、新增的 N1、修改的 D2_MOD)重新编号
108
+ - 按逻辑顺序统一编号为 D1, D2, D3...
109
+ 4. **清理样式标记**:
110
+ - 移除虚线箭头(-.->),统一为实线箭头(-->)
111
+ - 移除特殊颜色标记(如 #90EE90 绿色、#FFB6C1 粉色等)
112
+ - 统一使用基线样式(蓝色 #e1f5ff、黄色 #fff9e1、红色 #ffe1e1)
113
+
114
+ ### 2.3 重新生成依赖关系总结
115
+
116
+ 基于清理后的依赖图,重新生成依赖关系总结:
117
+ - 重新分析串行依赖链(R1系列)
118
+ - 重新分析并行调用组(R2系列)
119
+ - 重新分析条件依赖(R3系列)
120
+ - 所有描述使用当前时态,移除"新增"、"修改"等增量术语
121
+
122
+ ## 步骤 3: 生成基线报告
123
+
124
+ 按照 analyze-codeflow.md 的输出格式生成新基线报告:
125
+
126
+ ### 3.1 文档结构
127
+
128
+ ```markdown
129
+ # [模块名称] API工作流分析
130
+
131
+ **分析时间**: [当前时间戳]
132
+ **分析范围**: [从原报告中提取或推断]
133
+ **基线版本**: 由增量报告 [原报告名称] 融合生成
134
+
135
+ ## 概述
136
+
137
+ [从原报告中提取概述,移除增量相关描述]
138
+
139
+ ## 1. API调用时序图
140
+
141
+ ```mermaid
142
+ [清理后的时序图,使用 S1, S2, S3... 编号]
143
+ ```
144
+
145
+ **时序步骤索引:**
146
+ - S1: [步骤描述]
147
+ - S2: [步骤描述]
148
+ ...
149
+
150
+ ## 2. API调用依赖关系图
151
+
152
+ ```mermaid
153
+ [清理后的依赖图,使用 D1, D2, D3... 编号]
154
+ ```
155
+
156
+ **节点说明:**
157
+ - D1: [API描述]
158
+ - D2: [API描述]
159
+ ...
160
+
161
+ **颜色标识:**
162
+ - 蓝色:初始化阶段必需API
163
+ - 黄色:条件依赖API
164
+ - 红色:后置上报API
165
+
166
+ ## 3. 依赖关系总结
167
+
168
+ ### R1: 串行依赖链
169
+ ...
170
+
171
+ ### R2: 并行调用组
172
+ ...
173
+
174
+ ### R3: 条件依赖
175
+ ...
176
+
177
+ ## 引用说明
178
+
179
+ 在后续对话中,你可以使用以下编号来引用特定内容:
180
+
181
+ - **时序步骤**:使用 `S1`, `S2` 等引用时序图中的步骤
182
+ - **API节点**:使用 `D1`, `D2` 等引用依赖图中的API
183
+ - **依赖关系**:使用 `R1.1`, `R2.1` 等引用具体的依赖关系
184
+ ```
185
+
186
+ ### 3.2 编号映射记录
187
+
188
+ 在文档末尾添加一个隐藏的映射表(注释形式),记录原增量编号到新基线编号的映射关系:
189
+
190
+ ```markdown
191
+ <!--
192
+ 编号映射记录(供内部参考):
193
+
194
+ 时序图映射:
195
+ S1 (旧基线) -> S1 (新基线)
196
+ N1 (新增) -> S2 (新基线)
197
+ S2-Modified (修改) -> S3 (新基线)
198
+ S3-Deleted (删除) -> 已移除
199
+ ...
200
+
201
+ 依赖图映射:
202
+ D1 (旧基线) -> D1 (新基线)
203
+ N1 (新增) -> D2 (新基线)
204
+ D2_MOD (修改) -> D3 (新基线)
205
+ D3_DEL (删除) -> 已移除
206
+ ...
207
+ -->
208
+ ```
209
+
210
+ ## 步骤 4: 验证与输出
211
+
212
+ ### 4.1 一致性验证
213
+
214
+ 1. **编号连续性**: 确保 S1, S2, S3... 和 D1, D2, D3... 编号连续无跳号
215
+ 2. **引用完整性**: 确保依赖关系总结中引用的节点编号都存在
216
+ 3. **语法正确性**: 验证 Mermaid 图表语法正确
217
+
218
+ ### 4.2 输出摘要
219
+
220
+ ```
221
+ ✅ 增量基线融合已完成
222
+
223
+ 📊 融合统计:
224
+ - 原有节点: X 个
225
+ - 新增节点: Y 个(已融合)
226
+ - 修改节点: Z 个(已融合)
227
+ - 删除节点: W 个(已移除)
228
+ - 新基线总节点: N 个
229
+
230
+ 📁 输出文件:
231
+ ✓ <baseline-output-dir>
232
+
233
+ 🔄 下一步操作:
234
+ 1. 检查新基线报告的完整性
235
+ 2. 将此基线作为下一轮增量分析的起点
236
+ 3. 后续增量分析时使用此基线进行对比
237
+ ```
238
+
239
+ # 编号重分配策略
240
+
241
+ ## 时序图编号策略
242
+
243
+ 1. **保留原有步骤**: 未被删除且未被修改的原有步骤保持原编号
244
+ 2. **融合新增步骤**: 新增步骤按时序位置插入
245
+ 3. **融合修改步骤**: 修改步骤保持原位置编号
246
+ 4. **移除删除步骤**: 删除步骤完全移除
247
+ 5. **重新排序**: 按时序顺序重新编号 S1, S2, S3...
248
+
249
+ **示例**:
250
+ ```
251
+ 原基线: S1 -> S2 -> S3 -> S4
252
+ 增量: S1 (保留) -> N1 (新增) -> S2-Modified (修改) -> S3-Deleted (删除) -> S4 (保留)
253
+ 新基线: S1 -> S2 -> S3 -> S4
254
+ 映射: S1->S1, N1->S2, S2-Modified->S3, S3-Deleted->移除, S4->S4
255
+ ```
256
+
257
+ ## 依赖图编号策略
258
+
259
+ 1. **按拓扑排序**: 优先按依赖层级排序(无依赖的优先)
260
+ 2. **同层按逻辑顺序**: 同一层级的节点按业务逻辑顺序
261
+ 3. **保持主流程连续**: 主要调用链的节点编号尽量连续
262
+
263
+ # 处理特殊情况
264
+
265
+ ## 情况1: 删除节点有依赖关系
266
+
267
+ 如果被删除的节点 D3_DEL 有其他节点依赖它:
268
+ 1. 在输出摘要中警告此问题
269
+ 2. 在新基线报告的注释中标注此问题
270
+ 3. 建议用户检查增量报告的合理性
271
+
272
+ ## 情况2: 修改节点改变了依赖关系
273
+
274
+ 如果修改节点(如 D2_MOD)改变了依赖关系:
275
+ 1. 使用修改后的依赖关系(以虚线箭头为准)
276
+ 2. 在新基线中转换为实线箭头
277
+ 3. 重新生成依赖关系总结以反映新的依赖
278
+
279
+ ## 情况3: 编号冲突
280
+
281
+ 如果原有编号与新增编号冲突:
282
+ 1. 优先保留原有节点的编号
283
+ 2. 新增节点使用下一个可用编号
284
+ 3. 确保最终编号连续
285
+
286
+ ## 情况4: 缺少必要的上下文信息
287
+
288
+ 如果增量报告中缺少必要的上下文信息(如API的详细描述):
289
+ 1. 尽量从现有信息推断
290
+ 2. 在输出摘要中标注需要补充的信息
291
+ 3. 建议用户手动完善基线报告
292
+
293
+ # 输出规范
294
+
295
+ ## 输出目录
296
+
297
+ - **baseline-output-dir**: 默认为 `incspec/baselines`
298
+ - 如目录不存在,需主动创建
299
+
300
+ ## 文件命名
301
+
302
+ - 命名规则: `{module}-baseline-v{n}.md`
303
+ - `{module}`: 模块名称,从输入的增量报告文件名中提取(去除 `-increment-v{x}` 后缀)
304
+ - `{n}`: 版本号,扫描目标目录中同名前缀的文件,取最大版本号+1
305
+ - 示例: 输入 `batch-operation-increment-v1.md` -> 输出 `batch-operation-baseline-v2.md`
306
+
307
+ ## 风格一致性
308
+
309
+ 确保新基线报告与 analyze-codeflow.md 生成的报告风格完全一致:
310
+ - 使用相同的 Mermaid 图表样式
311
+ - 使用相同的颜色标识规范(蓝色 #e1f5ff、黄色 #fff9e1、红色 #ffe1e1)
312
+ - 使用相同的章节结构
313
+ - 使用相同的编号系统(S系列、D系列、R系列)
314
+ - 不包含"潜在问题与优化建议"部分(除非原增量报告中有明确要求)
315
+
316
+ ## 元信息标注
317
+
318
+ 在新基线报告的开头添加元信息:
319
+ ```markdown
320
+ **分析时间**: [当前时间戳]
321
+ **分析范围**: [从原报告中提取]
322
+ **基线版本**: 由增量报告 [原报告名称] 融合生成
323
+ ```
324
+
325
+ # 错误处理
326
+
327
+ 遇到以下情况时报错并中止:
328
+
329
+ 1. increment-report-path 文件不存在
330
+ 2. 报告缺少模块3或模块4
331
+ 3. Mermaid 图表语法解析失败
332
+ 4. 发现循环依赖问题(删除节点导致)
333
+ 5. 编号系统无法重建(节点关系混乱)
334
+
335
+ 错误时提供详细说明和修复建议。
336
+
337
+ # 质量保证
338
+
339
+ 1. **完整性**: 确保所有未删除的节点都出现在新基线中
340
+ 2. **正确性**: 确保依赖关系与时序逻辑一致
341
+ 3. **可读性**: 确保图表清晰,说明准确
342
+ 4. **可追溯性**: 保留编号映射记录,方便问题追溯
343
+ 5. **风格统一性**: 与 analyze-codeflow 输出完全一致
344
+
345
+ # 最佳实践
346
+
347
+ 1. **仔细解析**: 准确识别增量报告中的所有标记和编号
348
+ 2. **逻辑验证**: 确保删除节点后依赖关系仍然合理
349
+ 3. **编号优化**: 重新编号时保持逻辑连贯性
350
+ 4. **文档清晰**: 生成的基线报告应该像原生分析结果一样自然
351
+ 5. **保留映射**: 编号映射记录便于后续问题追溯
352
+
353
+ ---
354
+
355
+ 记住:你的目标是生成一个干净的、无增量标记的基线快照报告,它应该看起来就像是对当前代码直接执行 analyze-codeflow 分析得到的结果,为下一轮增量迭代提供可靠的对比基准。
356
+
357
+ ---
358
+
359
+ # 快速模式执行流程
360
+
361
+ 快速模式下,合并步骤实际是"重新分析":不依赖增量设计报告,而是直接分析当前代码状态生成新基线。
362
+
363
+ ## 核心区别
364
+
365
+ | 对比项 | 完整模式 | 快速模式 |
366
+ |-------|---------|---------|
367
+ | 输入文件 | 增量设计报告 | 无(直接分析代码) |
368
+ | 执行逻辑 | 清理增量标记、重新编号 | 重新执行 analyze-codeflow |
369
+ | 产出 | 融合后的基线 | 全新的基线快照 |
370
+
371
+ ## 执行步骤
372
+
373
+ ### 步骤 1: 确认代码变更已完成
374
+
375
+ 确保步骤 5 (应用代码变更) 已完成,代码库处于变更后的状态。
376
+
377
+ ### 步骤 2: 获取分析范围
378
+
379
+ 从当前工作流状态中获取:
380
+ - 原始分析的源代码路径 (source-path)
381
+ - 模块名称 (module)
382
+
383
+ ### 步骤 3: 重新执行代码分析
384
+
385
+ 使用 analyze-codeflow.md 的分析方法,对当前代码状态进行完整分析:
386
+
387
+ 1. **扫描代码目录**: 识别所有组件、Store、API 调用
388
+ 2. **构建时序图**: 生成新的 API 调用时序图(S1, S2, S3...)
389
+ 3. **构建依赖图**: 生成新的依赖关系图(D1, D2, D3...)
390
+ 4. **总结依赖关系**: 生成新的依赖关系总结(R1, R2, R3...)
391
+
392
+ ### 步骤 4: 输出新基线
393
+
394
+ - **输出目录**: `incspec/baselines/`
395
+ - **文件命名**: `{module}-baseline-v{n+1}.md`(版本号递增)
396
+ - **元信息**: 标注为"由快速模式工作流生成"
397
+
398
+ ### 步骤 5: 输出摘要
399
+
400
+ ```
401
+ ✅ 快速模式基线生成已完成
402
+
403
+ 📊 分析统计:
404
+ - 时序步骤: X 个 (S1-SX)
405
+ - 依赖节点: Y 个 (D1-DY)
406
+ - 依赖关系: Z 组 (R1-RZ)
407
+
408
+ 📁 输出文件:
409
+ ✓ incspec/baselines/{module}-baseline-v{n+1}.md
410
+
411
+ 🔄 下一步操作:
412
+ 1. 检查新基线报告的完整性
413
+ 2. 运行 `incspec archive --yes` 归档当前工作流
414
+ 3. 此基线将作为下一轮增量分析的起点
415
+ ```