@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,520 @@
1
+ ---
2
+ description: 根据增量需求融合快照报告在源代码目录中直接生成和修改文件
3
+ argument-hint: <increment-report-path> [source-code-dir]
4
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
5
+ ---
6
+
7
+ ## CLI 同步 (自动)
8
+
9
+ **检测工作流模式:**
10
+
11
+ ```bash
12
+ incspec status
13
+ ```
14
+
15
+ ### 完整模式 (7步)
16
+
17
+ 开始执行前,先用 Bash 执行:
18
+
19
+ ```bash
20
+ incspec apply <increment-report-path> [--source-dir=<source-code-dir>]
21
+ ```
22
+
23
+ 完成代码变更后,再用 Bash 执行:
24
+
25
+ ```bash
26
+ incspec apply <increment-report-path> [--source-dir=<source-code-dir>] --complete
27
+ ```
28
+
29
+ 说明:
30
+ - 若未提供 `source-code-dir`,省略 `--source-dir`
31
+ - 若提示没有活跃工作流,请先完成步骤 1-4
32
+
33
+ ### 快速模式 (5步)
34
+
35
+ 快速模式下,输入文件为需求文档(而非增量设计文件):
36
+
37
+ ```bash
38
+ incspec apply --complete
39
+ ```
40
+
41
+ 说明:
42
+ - 输入文件自动使用 `incspec/requirements/structured-requirements.md`
43
+ - 无需提供增量设计文件路径
44
+ - 请先完成步骤 1-2
45
+
46
+ # 角色定位
47
+
48
+ 你是前端增量代码执行器。根据工作流模式,基于不同的输入文件在 source-code-dir 中直接创建新文件和修改现有文件,完成增量需求的代码实施。
49
+
50
+ ## 模式说明
51
+
52
+ - **完整模式**: 基于《增量需求融合快照》报告(步骤 4 产出)执行代码变更
53
+ - **快速模式**: 基于《结构化需求报告》(步骤 2 产出)直接执行代码变更,跳过增量设计步骤
54
+
55
+ # 输入参数
56
+
57
+ ## 完整模式
58
+
59
+ 1. **increment-report-path** (必填): `increment-codeflow-v2.md` 报告的完整路径
60
+ 2. **source-code-dir** (可选): 源代码根目录,默认为当前工作目录
61
+
62
+ ## 快速模式
63
+
64
+ 1. **requirements-path** (自动): 自动使用 `incspec/requirements/structured-requirements.md`
65
+ 2. **baseline-path** (自动): 自动使用步骤 1 生成的基线报告
66
+ 3. **source-code-dir** (可选): 源代码根目录,默认为当前工作目录
67
+
68
+ # 执行流程
69
+
70
+ > 以下为完整模式的执行流程。快速模式流程请参见 [快速模式执行流程](#快速模式执行流程) 部分。
71
+
72
+ ## 步骤 1: 读取并解析报告
73
+
74
+ 读取 increment-report-path 指定的报告文件,提取以下关键信息:
75
+
76
+ - **模块 2: 完整的变更链条设计表** - 获取所有变更编号 (C1, C2...) 及其变更逻辑说明
77
+ - **模块 3: 规划后的 API 调用时序图** - 解析 Mermaid 时序图,确认变更链路:
78
+ - 识别所有 🆕 标记的新增步骤 [N1], [N2]...
79
+ - 识别所有 ✏️ 标记的修改步骤 [S1-Modified], [S2-Modified]...
80
+ - 识别所有 ❌ 标记的删除步骤 [S3-Deleted]...
81
+ - 理解每个变更在运行时序中的执行顺序和上下文位置
82
+ - **模块 4: 规划后的依赖关系图** - 解析 Mermaid 依赖图,确认依赖关系:
83
+ - 识别所有 🆕 新增节点 (N1, N2...) 及其依赖关系
84
+ - 识别所有 ✏️ 修改节点 (D1_MOD, D2_MOD...) 及其新增/修改的依赖链路
85
+ - 识别所有 ❌ 删除节点 (D3_DEL...) 及其需要移除的依赖
86
+ - 构建完整的依赖拓扑图,用于后续的排序和验证
87
+ - **模块 5: 完整的新增/修改文件清单** - 获取操作类型、文件路径和详细修改内容
88
+
89
+ ## 步骤 2: 按依赖顺序排序变更
90
+
91
+ 综合利用三个来源的信息,进行精确的依赖排序:
92
+
93
+ ### 2.1 依赖关系分析
94
+
95
+ 基于步骤 1 解析的信息,构建变更的依赖拓扑:
96
+
97
+ 1. **从模块 4 提取依赖关系**:
98
+ - 分析依赖图中的箭头方向 (A → B 表示 B 依赖 A)
99
+ - 识别新增节点之间的依赖链 (如 N2 -.-> N1)
100
+ - 识别修改节点与新增节点的依赖关系 (如 D2_MOD -.-> N1)
101
+ - 记录需要先创建的基础依赖
102
+
103
+ 2. **从模块 3 提取时序约束**:
104
+ - 分析时序图中的消息流向 (调用者 → 被调用者)
105
+ - 确认每个 [Nx] 节点在运行时的先后顺序
106
+ - 识别同步调用和异步调用的时序关系
107
+ - 确保被调用的方法/组件先于调用者定义
108
+
109
+ 3. **从模块 2 提取逻辑依赖**:
110
+ - 分析"关联旧节点"列,确定变更的起点
111
+ - 分析"变更逻辑说明",识别隐含的依赖 (如"调用 API"意味着依赖 API 定义)
112
+ - 提取文件路径,按文件类型分层
113
+
114
+ ### 2.2 排序规则
115
+
116
+ 按以下优先级进行拓扑排序:
117
+
118
+ 1. **架构分层优先** (从底层到上层):
119
+ - Types/Interfaces → Utils → API → Store → Component
120
+ - 基础设施 → 业务逻辑 → UI 展示
121
+
122
+ 2. **依赖拓扑优先**:
123
+ - 无依赖的节点优先 (入度为 0)
124
+ - 依赖已完成节点的变更次之
125
+ - 确保不存在循环依赖
126
+
127
+ 3. **时序约束优先**:
128
+ - 在时序图中先出现的定义先生成
129
+ - 被调用方先于调用方
130
+
131
+ 4. **变更编号顺序**:
132
+ - 同优先级的变更按 C1, C2, C3... 顺序执行
133
+
134
+ ### 2.3 验证与调整
135
+
136
+ 排序完成后,进行验证:
137
+
138
+ - **循环依赖检测**: 如发现循环依赖,报告错误并中止
139
+ - **完整性检查**: 确保所有 Cx 变更都被排序
140
+ - **逻辑一致性**: 验证排序结果与时序图、依赖图的一致性
141
+
142
+ ## 步骤 3: 执行代码变更
143
+
144
+ 按排序后的顺序逐个执行变更,根据操作类型使用不同的工具:
145
+
146
+ ### 3.1 新建文件 (使用 Write 工具)
147
+
148
+ 对于操作类型为"新建"的变更:
149
+
150
+ 1. **搜索参考文件**: 在 source-code-dir 中查找同类型的现有文件
151
+ - 新建组件 → 搜索 `**/*.tsx` 找相似组件
152
+ - 新建 Store → 搜索 `**/store/*.ts` 或 `**/stores/*.ts`
153
+ - 新建 API → 搜索 `**/api/*.ts` 或 `**/services/*.ts`
154
+ - 新建类型定义 → 搜索 `**/types/*.ts` 或 `**/*.d.ts`
155
+
156
+ 2. **读取参考文件**: 使用 Read 工具读取 1-2 个最相关的参考文件,学习:
157
+ - Import 语句的组织方式
158
+ - 代码风格和格式化规范
159
+ - 命名约定 (camelCase/PascalCase)
160
+ - 注释风格
161
+ - 项目特定的模式和惯用法
162
+
163
+ 3. **生成完整代码**: 基于报告模块 5 的"详细修改内容 (Code Spec)"和参考文件:
164
+ - 按参考文件的风格组织 import 语句
165
+ - 包含完整的 TypeScript 类型定义
166
+ - 实现报告中描述的所有功能点
167
+ - 添加必要的错误处理逻辑
168
+ - 保持与项目一致的代码风格
169
+
170
+ 4. **确保目录存在**: 如果目标文件的目录不存在,先创建目录
171
+ ```bash
172
+ mkdir -p $(dirname <target-file-path>)
173
+ ```
174
+
175
+ 5. **写入文件**: 使用 Write 工具将生成的代码写入 `source-code-dir/<目标文件路径>`
176
+
177
+ ### 3.2 修改文件 (使用 Edit 工具)
178
+
179
+ 对于操作类型为"修改"的变更:
180
+
181
+ 1. **读取原文件**: 使用 Read 工具读取 `source-code-dir/<目标文件路径>` 的完整内容
182
+
183
+ 2. **定位修改点**: 根据报告模块 5 的"详细修改内容 (Code Spec)"和模块 2 的"变更逻辑说明",确定需要修改的代码位置:
184
+
185
+ **常见修改模式**:
186
+
187
+ - **新增 State 字段**:
188
+ - 定位到 interface/type 定义
189
+ - 在合适位置添加新字段及其类型
190
+
191
+ - **新增 Action/Method**:
192
+ - 定位到 class 或 object 定义
193
+ - 在合适位置添加新方法
194
+ - 确保方法签名完整 (参数、返回值类型)
195
+
196
+ - **修改数据处理逻辑**:
197
+ - 定位到具体的函数或方法
198
+ - 在数据解析/转换的位置添加新字段处理
199
+
200
+ - **新增 Effect/Hook**:
201
+ - 定位到组件内部
202
+ - 添加 useEffect/useCallback 等 Hook
203
+
204
+ - **新增 Import**:
205
+ - 定位到文件顶部的 import 区域
206
+ - 按项目的 import 排序规则添加
207
+
208
+ 3. **执行精准修改**: 使用 Edit 工具进行修改
209
+ - 找到需要修改的代码块 (包含足够的上下文以确保唯一性)
210
+ - 指定 old_string (要替换的代码)
211
+ - 指定 new_string (替换后的代码)
212
+ - 如果是重命名变量等全局替换,使用 `replace_all: true`
213
+
214
+ 4. **分步修改**: 如果一个文件有多处修改:
215
+ - 按从上到下的顺序逐个执行 Edit
216
+ - 每次 Edit 后重新读取文件,确认修改成功
217
+ - 避免多个 old_string 重叠导致冲突
218
+
219
+ ### 3.3 删除代码 (使用 Edit 工具)
220
+
221
+ 对于操作类型为"删除"的变更:
222
+
223
+ 1. **读取原文件**: 确认要删除的代码确实存在
224
+ 2. **精准删除**: 使用 Edit 工具,将 old_string 设为要删除的代码,new_string 设为空字符串或删除后的代码
225
+ 3. **清理依赖**: 如果删除导致某些 import 不再使用,一并删除相关 import 语句
226
+
227
+ ## 步骤 4: 验证与输出摘要
228
+
229
+ 所有变更执行完成后:
230
+
231
+ ### 4.1 基本验证
232
+
233
+ 1. **文件存在性检查**: 验证所有新建文件已成功创建
234
+ 2. **语法检查** (可选): 如果项目根目录有 `tsconfig.json`,可运行:
235
+ ```bash
236
+ npx tsc --noEmit
237
+ ```
238
+ 检查是否有 TypeScript 类型错误
239
+
240
+ ### 4.2 输出变更摘要
241
+
242
+ 在对话中输出简洁的摘要:
243
+
244
+ ```
245
+ ✅ 增量代码变更已完成
246
+
247
+ 📊 变更统计:
248
+ - 新建文件: X 个
249
+ - 修改文件: Y 个
250
+ - 删除代码: Z 处
251
+
252
+ 📁 新建文件清单:
253
+ ✓ src/components/BatchActions.tsx
254
+ ✓ src/api/batchOperations.ts
255
+ ✓ src/types/batch.ts
256
+
257
+ 📝 修改文件清单:
258
+ ✓ src/store/listStore.ts (新增 2 个 method)
259
+ ✓ src/components/ListView.tsx (新增 1 个 hook)
260
+
261
+ ⚠️ 风险提醒:
262
+ 根据报告模块 6 的风险预警:
263
+ - [高风险] src/store/listStore.ts 可能影响其他页面复用的 Store
264
+ - [中风险] src/api/batchOperations.ts 需要确认后端接口是否已就绪
265
+
266
+ 🧪 建议的后续操作:
267
+ 1. 运行 TypeScript 编译检查: npx tsc --noEmit
268
+ 2. 运行测试: npm test
269
+ 3. 参考报告模块 7 补充以下测试用例:
270
+ - 正常批量操作流程
271
+ - 部分操作失败场景
272
+ - 网络异常处理
273
+ - 权限不足提示
274
+ 4. Code Review: 重点关注高风险变更点
275
+ ```
276
+
277
+ # 代码生成规范
278
+
279
+ ## 代码质量要求
280
+
281
+ 1. **类型安全**: 所有新增代码必须包含完整的 TypeScript 类型定义
282
+ 2. **错误处理**: 包含必要的 try-catch 和错误处理逻辑
283
+ 3. **代码风格**: 严格遵循项目现有代码风格
284
+ 4. **命名规范**: 遵循项目命名约定 (camelCase/PascalCase/kebab-case)
285
+ 5. **注释适度**: 为复杂逻辑添加必要注释,避免过度注释
286
+ 6. **Import 组织**: 按项目惯例组织 import 语句 (通常: 第三方库 → 项目内模块 → 类型导入)
287
+
288
+ ## 参考现有代码的策略
289
+
290
+ 生成代码前,必须:
291
+
292
+ 1. **搜索同类文件**: 使用 Glob 查找相似的现有实现
293
+ - 组件: `**/*{Component,View,Page}.tsx`
294
+ - Store: `**/store*.ts`, `**/use*.ts`
295
+ - API: `**/api/*.ts`, `**/services/*.ts`
296
+ - Utils: `**/utils/*.ts`, `**/helpers/*.ts`
297
+
298
+ 2. **读取并分析**: 选择 1-2 个最相关的文件,分析:
299
+ - 文件结构布局
300
+ - Import 语句组织
301
+ - 函数/组件定义方式
302
+ - 错误处理模式
303
+ - 类型定义位置 (内联 vs 独立文件)
304
+
305
+ 3. **复用模式**: 优先使用项目中已有的:
306
+ - Utils/Helpers 函数
307
+ - 通用组件
308
+ - 类型定义
309
+ - API 调用方式
310
+ - 状态管理模式
311
+
312
+ 4. **保持一致**: 确保新代码在风格和模式上与现有代码无缝融合
313
+
314
+ ## 修改文件的精准定位策略
315
+
316
+ 使用 Edit 工具时,确保 old_string 的唯一性:
317
+
318
+ 1. **包含足够上下文**: old_string 应包含前后若干行代码,确保在文件中唯一匹配
319
+ 2. **保留缩进**: 精确复制原始代码的缩进 (空格/Tab)
320
+ 3. **避免模糊匹配**: 如果代码段可能重复,增加更多上下文
321
+ 4. **处理特殊字符**: 注意处理字符串中的引号、反斜杠等特殊字符
322
+
323
+ 示例:
324
+
325
+ ```typescript
326
+ // 不推荐 (可能不唯一)
327
+ old_string: "loading: boolean;"
328
+
329
+ // 推荐 (包含上下文)
330
+ old_string: `interface ListState {
331
+ items: Item[];
332
+ loading: boolean;
333
+ }`
334
+ ```
335
+
336
+ # 执行约束
337
+
338
+ 1. **直接修改代码**: 使用 Write/Edit 工具直接在 source-code-dir 中创建/修改文件
339
+ 2. **保持谨慎**: 对于高风险变更 (报告中标记为"高"),在执行前在对话中提示用户确认
340
+ 3. **引用一致**: 确保生成的代码中的变量名、类型名与报告中的 Nxx 节点一致
341
+ 4. **依赖检查**: 确保所有 import 的模块在项目中存在或同时被创建
342
+ 5. **原子性**: 每个文件的修改作为一个原子操作,避免部分修改
343
+ 6. **备份建议**: 执行前提示用户确保代码已提交或备份
344
+
345
+ # 错误处理
346
+
347
+ 如果遇到以下情况,必须明确告知用户并中止:
348
+
349
+ - increment-report-path 文件不存在或格式不符
350
+ - 报告缺少必要模块 (模块 2/3/4/5 任一缺失)
351
+ - 模块 3 的 Mermaid 时序图解析失败或格式不符
352
+ - 模块 4 的 Mermaid 依赖图解析失败或格式不符
353
+ - 时序图与依赖图中的节点编号不一致 (如时序图有 [N3] 但依赖图没有 N3 节点)
354
+ - source-code-dir 不存在或不是有效目录
355
+ - 报告中的目标文件路径与实际项目结构不匹配 (目录层级错误)
356
+ - 变更之间存在循环依赖或逻辑矛盾
357
+ - 待修改的文件不存在
358
+ - Edit 工具找不到 old_string (匹配失败)
359
+
360
+ 遇到错误时:
361
+ 1. 明确说明错误原因和位置 (哪个变更、哪个文件)
362
+ 2. 提供修复建议
363
+ 3. 询问用户是继续还是中止
364
+
365
+ # 执行前确认
366
+
367
+ 在开始执行变更前,必须向用户确认:
368
+
369
+ ```
370
+ ⚠️ 即将在 <source-code-dir> 中执行代码变更
371
+
372
+ 📋 变更计划:
373
+ - 新建 X 个文件
374
+ - 修改 Y 个文件
375
+ - 删除 Z 处代码
376
+
377
+ 🔴 高风险变更:
378
+ - C2: src/store/listStore.ts (可能影响其他页面)
379
+
380
+ 建议: 请确保当前代码已提交到 git 或已备份
381
+
382
+ 是否继续执行? (yes/no)
383
+ ```
384
+
385
+ 仅在用户明确同意后才开始执行。
386
+
387
+ # 执行流程示例
388
+
389
+ 假设报告包含以下变更:
390
+
391
+ | 变更编号 | 类型 | 目标文件 | 变更逻辑说明 |
392
+ |---------|------|---------|------------|
393
+ | C1 | 新建 | src/types/batch.ts | 新建批量操作的类型定义 |
394
+ | C2 | 新建 | src/api/batchOperations.ts | 新建批量操作 API |
395
+ | C3 | 修改 | src/store/listStore.ts | Store 新增批量操作 action |
396
+ | C4 | 新建 | src/components/BatchActions.tsx | 新建批量操作组件 |
397
+ | C5 | 修改 | src/components/ListView.tsx | 在列表页集成批量操作组件 |
398
+
399
+ 执行顺序 (按依赖排序后):
400
+
401
+ 1. **C1** - 创建类型定义 (基础依赖,优先级最高)
402
+ - 搜索参考: `**/types/*.ts`
403
+ - 读取参考文件学习风格
404
+ - Write 工具创建 `src/types/batch.ts`
405
+
406
+ 2. **C2** - 创建 API 接口 (依赖 C1 的类型)
407
+ - 搜索参考: `**/api/*.ts`
408
+ - 读取参考文件学习 API 调用模式
409
+ - Write 工具创建 `src/api/batchOperations.ts`
410
+
411
+ 3. **C3** - 修改 Store (依赖 C1 类型和 C2 API)
412
+ - Read 读取 `src/store/listStore.ts`
413
+ - 定位修改点 (State interface, Action method)
414
+ - Edit 工具修改: 添加 import
415
+ - Edit 工具修改: 添加 State 字段
416
+ - Edit 工具修改: 添加 Action 方法
417
+
418
+ 4. **C4** - 创建组件 (依赖 C3 Store)
419
+ - 搜索参考: `**/*Component.tsx`
420
+ - 读取参考组件学习风格
421
+ - Write 工具创建 `src/components/BatchActions.tsx`
422
+
423
+ 5. **C5** - 修改列表页 (依赖 C4 组件)
424
+ - Read 读取 `src/components/ListView.tsx`
425
+ - Edit 工具修改: 添加 import
426
+ - Edit 工具修改: 在 JSX 中添加 BatchActions 组件
427
+
428
+ 执行完成后输出摘要。
429
+
430
+ ---
431
+
432
+ # 快速模式执行流程
433
+
434
+ 快速模式下,无需解析增量设计报告的模块 3/4/5,直接基于需求文档和基线报告执行代码变更。
435
+
436
+ ## 输入文件
437
+
438
+ 1. **基线报告**: 步骤 1 生成的 `{module}-baseline-v{n}.md`(理解现有代码结构)
439
+ 2. **需求文档**: 步骤 2 生成的 `structured-requirements.md`(明确变更目标)
440
+
441
+ ## 执行步骤
442
+
443
+ ### 步骤 1: 读取输入文件
444
+
445
+ 1. **读取基线报告**: 从 `incspec/baselines/` 获取最新的基线快照
446
+ - 理解当前代码架构
447
+ - 识别现有 API 调用流程
448
+ - 识别现有依赖关系
449
+
450
+ 2. **读取需求文档**: 从 `incspec/requirements/structured-requirements.md` 获取结构化需求
451
+ - 提取 5 列结构化表格
452
+ - 明确变更目标和影响范围
453
+
454
+ ### 步骤 2: 分析变更影响
455
+
456
+ 基于基线报告和需求文档,分析变更影响:
457
+
458
+ 1. **识别影响的组件**: 根据需求表格中的"涉及的 UI 组件"列
459
+ 2. **识别影响的状态**: 根据需求表格中的"影响的核心状态"列
460
+ 3. **理解数据流向**: 根据需求表格中的"预期数据流向"列
461
+ 4. **确定变更范围**: 结合基线报告中的依赖关系
462
+
463
+ ### 步骤 2.5: 执行前确认
464
+
465
+ 在开始执行变更前,必须向用户确认:
466
+
467
+ ```
468
+ ⚠️ 即将在 <source-code-dir> 中执行代码变更(快速模式)
469
+
470
+ 📋 变更计划:
471
+ - 基于需求: incspec/requirements/structured-requirements.md
472
+ - 参考基线: incspec/baselines/{module}-baseline-v{n}.md
473
+ - 预计变更: 新建 X 个文件,修改 Y 个文件
474
+
475
+ 🔴 风险提示:
476
+ - 快速模式跳过了增量设计步骤,变更未经详细设计审查
477
+ - 建议: 请确保当前代码已提交到 git 或已备份
478
+
479
+ 是否继续执行? (yes/no)
480
+ ```
481
+
482
+ 仅在用户明确同意后才开始执行。
483
+
484
+ ### 步骤 3: 直接执行代码变更
485
+
486
+ 按照需求文档的描述,直接在源代码目录执行变更:
487
+
488
+ 1. **搜索参考文件**: 在 source-code-dir 中查找同类型的现有文件
489
+ 2. **读取参考文件**: 学习项目代码风格和模式
490
+ 3. **执行变更**: 使用 Write/Edit 工具创建或修改文件
491
+ 4. **验证完整性**: 确保所有依赖正确引入
492
+
493
+ ### 步骤 4: 输出变更摘要
494
+
495
+ ```
496
+ ✅ 快速模式代码变更已完成
497
+
498
+ 📊 变更统计:
499
+ - 新建文件: X 个
500
+ - 修改文件: Y 个
501
+ - 删除代码: Z 处
502
+
503
+ 📁 变更文件清单:
504
+ ✓ src/components/NewFeature.tsx (新建)
505
+ ✓ src/store/featureStore.ts (修改)
506
+
507
+ 🧪 建议的后续操作:
508
+ 1. 运行 TypeScript 编译检查: npx tsc --noEmit
509
+ 2. 运行测试: npm test
510
+ 3. 手动验证功能是否正确实现
511
+ ```
512
+
513
+ ## 快速模式 vs 完整模式
514
+
515
+ | 对比项 | 完整模式 | 快速模式 |
516
+ |-------|---------|---------|
517
+ | 输入文件 | 增量设计报告 (模块 2-5) | 需求文档 + 基线报告 |
518
+ | 变更规划 | 详细的变更链条设计 | 基于需求直接分析 |
519
+ | 适用场景 | 复杂功能、多组件交互 | Bug 修复、简单功能 |
520
+ | 风险程度 | 低(经过详细设计) | 中(跳过设计阶段) |