@localsummer/incspec 0.0.8 → 0.0.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@localsummer/incspec",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "面向 AI 编程助手的增量规范驱动开发工具",
5
5
  "bin": {
6
6
  "incspec": "index.mjs"
@@ -4,134 +4,49 @@ AI 编码助手使用 IncSpec 进行增量规格驱动开发的操作指南。
4
4
 
5
5
  ## 快速检查清单
6
6
 
7
- **完整模式 (7步):**
8
- - 初始化项目: `incspec init` (创建 `incspec/` 目录结构)
9
- - 检查状态: `incspec status` 或 `incspec st`
10
- - 按顺序执行7步工作流: analyze → collect-req → collect-dep → design → apply → merge -> archive
11
- - 使用编号引用: `[S1]` 表示时序步骤, `[D1]` 表示依赖, `[C1]` 表示变更
12
- - 标记增量: `[N1]` 新增, `[S1-Modified]` 修改, `[S1-Deleted]` 删除
13
- - 继续前先验证: `incspec validate --strict`
14
- - 合并后循环回到步骤1开始下一个增量周期
15
-
16
- **快速模式 (5步):**
17
- - 启动快速模式: `incspec analyze <path> --quick`
18
- - 按顺序执行: analyze → collect-req → apply → merge -> archive
7
+ **完整模式 (7步)**:
8
+ - 按顺序执行: analyze collect-req collect-dep → design → apply → merge → archive
9
+ - 适用于: 复杂 UI 功能、多组件交互、需要详细设计审查
10
+
11
+ **快速模式 (5步)**:
12
+ - 启动: `incspec analyze <path> --quick`
13
+ - 按顺序执行: analyze collect-req → apply → merge → archive
19
14
  - 跳过步骤 3 (UI依赖采集) 和步骤 4 (增量设计)
20
- - 适用于 Bug 修复、简单功能、不涉及复杂 UI 依赖的变更
15
+ - 适用于: Bug 修复、简单功能、不涉及复杂 UI 依赖的变更
21
16
 
22
- ## 七步工作流
17
+ **核心约定**:
18
+ - 初始化: `incspec init`
19
+ - 检查状态: `incspec status`
20
+ - 编号引用: `[S1]` 时序步骤, `[D1]` 依赖, `[C1]` 变更
21
+ - 增量标记: `[N1]` 新增, `[S1-Modified]` 修改, `[S1-Deleted]` 删除
22
+ - 继续前验证: `incspec validate --strict`
23
23
 
24
- ### 概览
24
+ ## 七步工作流
25
25
 
26
26
  ```
27
- ┌───────────────────────────────────────────────────────────────────────────────────┐
28
- │ IncSpec 工作流模式 │
29
- ├───────────────────────────────────────────────────────────────────────────────────┤
30
- │ │
31
- │ 完整模式 (7步): │
32
- │ │
33
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
34
- │ │ 步骤 1 │ │ 步骤 2 │ │ 步骤 3 │ │ 步骤 4 │ │
35
- │ │ 分析 │───▶│ 收集 │───▶│ 收集 │───▶│ 设计 │ │
36
- │ │ 代码流 │ │ 需求 │ │ UI依赖 │ │ 增量 │ │
37
- │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
38
- │ ▲ │ │
39
- │ │ ▼ │
40
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
41
- │ │ │ │ 步骤 7 │ │ 步骤 6 │ │ 步骤 5 │ │
42
- │ │ 循环 │◀───│ 归档 │◀───│ 合并到 │◀───│ 应用 │ │
43
- │ │ │ │ 产出 │ │ 基线 │ │ 代码 │ │
44
- │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
45
- │ │
46
- │ 快速模式 (5步): │
47
- │ │
48
- │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
49
- │ │ 步骤 1 │ │ 步骤 2 │ │ 步骤 5 │ │ 步骤 6 │ │ 步骤 7 │ │
50
- │ │ 分析 │───▶│ 收集 │───▶│ 应用 │───▶│ 合并到 │───▶│ 归档 │ │
51
- │ │ 代码流 │ │ 需求 │ │ 代码 │ │ 基线 │ │ 产出 │ │
52
- │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
53
- │ (跳过步骤 3 UI依赖采集 和 步骤 4 增量设计) │
54
- │ │
55
- └───────────────────────────────────────────────────────────────────────────────────┘
27
+ 完整模式: [1分析] → [2需求] → [3UI依赖] → [4设计] → [5应用] → [6合并] → [7归档] → 循环
28
+ 快速模式: [1分析] → [2需求] ─────────────────────→ [5应用] → [6合并] → [7归档] → 循环
56
29
  ```
57
30
 
58
- **模式选择:**
59
- - **完整模式**: 复杂 UI 功能、多组件交互、需要详细设计审查
60
- - **快速模式**: Bug 修复、简单功能、不涉及 UI 依赖变更
61
-
62
31
  ### 步骤 1: 分析代码工作流
63
32
 
64
33
  **命令**: `incspec analyze <source-path> [--module=name] [--quick] [--baseline=file]`
65
34
 
66
35
  **目的**: 生成包含 API 调用时序图和依赖关系图的基线快照。
67
36
 
68
- **选项**:
69
- - `--quick`: 启动快速模式 (5步流程)
70
- - `--baseline=<file>`: 使用现有基准报告,自动从 baselines/ 或 archives/ 目录恢复
71
-
72
37
  **输出**: `incspec/baselines/{module}-baseline-v{n}.md`
73
38
 
74
- **关键交付物**:
75
- - 带编号步骤 `[S1]`, `[S2]`, `[S3]`... 的 Mermaid 时序图
76
- - 带编号节点 `[D1]`, `[D2]`, `[D3]`... 的 Mermaid 依赖图
77
- - 带关系分类 `[R1.1]`, `[R2.1]`, `[R3.1]`... 的依赖摘要
78
-
79
- **输出结构示例**:
80
- ```markdown
81
- ## API 调用时序图
82
-
83
- ```mermaid
84
- sequenceDiagram
85
- participant User as 用户
86
- participant Component as 组件
87
- participant API as 接口
88
-
89
- User->>Component: [S1] 触发操作
90
- Component->>API: [S2] fetchData()
91
- API-->>Component: [S3] 响应
92
- ```
93
-
94
- ## 依赖关系图
95
-
96
- ```mermaid
97
- graph TD
98
- D1[组件] --> D2[useStore]
99
- D1 --> D3[API服务]
100
- D2 --> D4[状态]
101
- ```
102
-
103
- ## 依赖摘要
104
-
105
- | ID | 关系类型 | 描述 |
106
- |----|----------|------|
107
- | R1.1 | 串行 | S1 → S2 → S3 |
108
- | R2.1 | 并行 | S4 ∥ S5 |
109
- | R3.1 | 条件 | S6 → S7 (满足条件时) |
110
- ```
39
+ **交付物**: Mermaid 时序图 (`[S1]`-`[Sn]`)、依赖图 (`[D1]`-`[Dn]`)、依赖摘要 (`[R1.x]`-`[R3.x]`)
111
40
 
112
41
  ### 步骤 2: 收集结构化需求
113
42
 
114
43
  **命令**: `incspec collect-req` (别名: `cr`)
115
44
 
116
- **目的**: 交互式需求收集,转换为严格的5列格式。
45
+ **目的**: 交互式需求收集,转换为 5 列格式。
117
46
 
118
47
  **输出**: `incspec/requirements/structured-requirements.md`
119
48
 
120
- **5列表格格式**:
121
-
122
- | 列名 | 描述 |
123
- |------|------|
124
- | 新增/修改功能 | 正在添加或更改的内容 |
125
- | 涉及的UI组件 | 受影响的组件 |
126
- | 触发条件 | 触发此功能的条件 |
127
- | 核心状态变更 | Store/Props/Context 的变化 |
128
- | 预期数据流 | 数据在系统中的流转方式 |
129
-
130
- **交互模式**:
131
- 1. 从用户处收集初始需求
132
- 2. 通过澄清问题消除歧义
133
- 3. 转换为结构化5列格式
134
- 4. 最终确定前与用户确认
49
+ **5列格式**: 新增/修改功能 | 涉及的UI组件 | 触发条件 | 核心状态变更 | 预期数据流
135
50
 
136
51
  ### 步骤 3: 收集 UI 依赖
137
52
 
@@ -141,16 +56,7 @@ graph TD
141
56
 
142
57
  **输出**: `incspec/requirements/ui-dependencies.md`
143
58
 
144
- **6个依赖维度**:
145
-
146
- | 维度 | 示例 |
147
- |------|------|
148
- | UI组件库 | Arco Design, Antd, Element Plus |
149
- | 状态管理 | Zustand, Pinia, Redux, MobX |
150
- | API集成 | REST端点, GraphQL查询 |
151
- | 类型定义 | Interfaces, types, enums |
152
- | 工具函数 | Helpers, formatters, validators |
153
- | 上下文/位置 | 文件路径, 父组件 |
59
+ **6个维度**: UI组件库 | 状态管理 | API集成 | 类型定义 | 工具函数 | 上下文/位置
154
60
 
155
61
  ### 步骤 4: 设计增量
156
62
 
@@ -160,20 +66,14 @@ graph TD
160
66
 
161
67
  **输出**: `incspec/increments/{feature}-increment-v{n}.md`
162
68
 
163
- **7个主要模块**:
164
-
165
- 1. **一句话摘要** - 本次增量的核心目标
166
- 2. **变更链设计表** - `[C1]`, `[C2]`, `[C3]`... 及其逻辑规格
167
- 3. **规划的API调用时序图** - 原始 `[S]` + 新增 `[N]` + 修改 `[S-Modified]` + 删除 `[S-Deleted]`
168
- 4. **规划的依赖关系图** - 原始 `[D]` + 新增 `[N]` + 修改 `[D_MOD]` + 删除 `[D_DEL]`
169
- 5. **完整文件变更清单** - 操作类型 (create/modify/delete) 及精确路径
170
- 6. **潜在风险与副作用** - 关注点检查清单
171
- 7. **建议的测试用例** - 至少6个测试场景
172
-
173
- **增量标记**:
174
- - `[N1]`, `[N2]`... - 新增项
175
- - `[S1-Modified]`, `[D2_MOD]` - 对现有项的修改
176
- - `[S3-Deleted]`, `[D4_DEL]` - 删除项
69
+ **7个模块**:
70
+ 1. 一句话摘要
71
+ 2. 变更链设计表 (`[C1]`-`[Cn]`)
72
+ 3. 规划的API调用时序图 (原始 `[S]` + 新增 `[N]` + 修改 `[S-Modified]` + 删除 `[S-Deleted]`)
73
+ 4. 规划的依赖关系图 (原始 `[D]` + 新增 `[N]` + 修改 `[D_MOD]` + 删除 `[D_DEL]`)
74
+ 5. 完整文件变更清单
75
+ 6. 潜在风险与副作用
76
+ 7. 建议的测试用例 (至少6个)
177
77
 
178
78
  ### 步骤 5: 应用代码变更
179
79
 
@@ -181,16 +81,9 @@ graph TD
181
81
 
182
82
  **目的**: 根据增量蓝图执行代码生成和修改。
183
83
 
184
- **处理流程**:
185
- 1. 解析增量蓝图 (模块2-5)
186
- 2. 分析依赖并进行拓扑排序
187
- 3. 执行顺序: Types → Utils → APIs → Store → Components
188
- 4. 使用项目风格参考创建新文件
189
- 5. 对现有文件进行精确编辑
190
- 6. 验证 TypeScript 编译
191
- 7. 输出变更摘要及统计信息
84
+ **执行顺序**: Types → Utils → APIs → Store → Components
192
85
 
193
- **审批门禁**: 在增量设计经过审查和批准之前,不要执行此步骤。
86
+ **审批门禁**: 增量设计必须经过审查批准后才能执行。
194
87
 
195
88
  ### 步骤 6: 合并到基线
196
89
 
@@ -198,469 +91,125 @@ graph TD
198
91
 
199
92
  **目的**: 将增量整合到新的基线快照中。
200
93
 
201
- **处理流程**:
202
- 1. 读取增量报告 (模块3-4)
203
- 2. 移除所有增量标记 (N/Modified/Deleted)
204
- 3. 将新节点与原始基线合并
205
- 4. 重新编号为干净的 `[S1]`-`[Sxx]` 和 `[D1]`-`[Dxx]` 序列
206
- 5. 输出新基线: `{module}-baseline-v{n+1}.md`
207
-
208
- **结果**: 新基线成为下一个增量周期的起点。
94
+ **处理**: 移除增量标记 → 合并新节点 → 重新编号为干净序列 → 输出新基线 v{n+1}
209
95
 
210
96
  ### 步骤 7: 归档工作流产出
211
97
 
212
98
  **命令**: `incspec archive [--yes] [<file>] [--keep]`
213
99
 
214
- **目的**: 将已完成的工作流产出文件归档到历史记录目录。
215
-
216
- **处理流程**:
217
- 1. 确定要归档的文件 (默认全部当前工作流产出)
218
- 2. 创建归档目录: `incspec/archives/YYYY-MM/{module}/`
219
- 3. 移动或复制文件到归档目录 (取决于 `--keep` 选项)
220
- 4. 更新工作流状态以反映归档
221
-
222
-
223
- ## 任务前准备
224
-
225
- **上下文检查清单**:
226
- - [ ] 运行 `incspec status` 检查当前工作流状态
227
- - [ ] 阅读 `incspec/project.md` 了解项目约定
228
- - [ ] 查看 `incspec/baselines/` 中的最新基线
229
- - [ ] 检查 `incspec/increments/` 中待处理的增量
230
- - [ ] 运行 `incspec list` 查看所有规格文件
231
-
232
- **创建新增量前**:
233
- - 始终从最新基线开始
234
- - 在开始新增量之前完成上一个增量
235
- - 使用 `incspec validate` 检查完整性
236
- - 严格按步骤顺序执行: 1 → 2 → 3 → 4 → 5 → 6 → 7
237
-
238
- ## 快速开始
239
-
240
- ### CLI 命令
241
-
242
- ```bash
243
- # 初始化
244
- incspec init # 交互式项目设置
245
- incspec init --force # 强制重新初始化
246
-
247
- # 状态与导航
248
- incspec status / st # 查看当前工作流状态
249
- incspec list / ls # 列出所有规格文件
250
- incspec list baselines # 仅列出基线
251
- incspec list -l # 长格式(含时间戳)
252
- incspec list -a # 包含归档
253
-
254
- # 7步工作流
255
- incspec analyze <path> [--module=name] [--quick] [--baseline=file] # 步骤1: 基线分析
256
- incspec collect-req / cr # 步骤2: 需求收集
257
- incspec collect-dep / cd # 步骤3: 依赖收集 (快速模式跳过)
258
- incspec design [--feature=name] / d # 步骤4: 增量设计 (快速模式跳过)
259
- incspec apply [path] / ap # 步骤5: 代码执行
260
- incspec merge [path] / m # 步骤6: 基线合并
261
- incspec archive --yes # 步骤7: 归档产出
262
-
263
- # 验证与管理
264
- incspec validate / v # 验证完整性
265
- incspec validate --strict # 严格验证模式
266
- incspec archive # 归档当前工作流全部产出文件
267
- incspec archive --workflow # 同上,显式指定
268
- incspec archive <file> # 归档指定文件
269
- incspec archive <file> --keep # 复制而非移动
270
-
271
- # IDE 集成
272
- incspec sync # 交互式选择同步目标
273
- incspec sync --cursor # 同步 Cursor 斜杠命令
274
- incspec sync --claude # 同步 Claude Code Skill
275
- incspec sync --all # 同步全部
276
- incspec sync --global # 同步到全局目录
277
- incspec sync --project # 同步到当前目录
278
-
279
- # 帮助
280
- incspec help [command] # 显示帮助
281
- incspec --version / -v # 显示版本
282
- ```
283
-
284
- ### Cursor 斜杠命令
285
-
286
- 运行 `incspec sync --cursor` 后,以下命令可用:
287
-
288
- | 命令 | 步骤 | 描述 |
289
- |------|------|------|
290
- | `/incspec/inc-analyze` | 1 | 分析代码流,生成基线 |
291
- | `/incspec/inc-collect-req` | 2 | 收集结构化需求 |
292
- | `/incspec/inc-collect-dep` | 3 | 收集UI依赖 |
293
- | `/incspec/inc-design` | 4 | 设计增量蓝图 |
294
- | `/incspec/inc-apply` | 5 | 应用代码变更 |
295
- | `/incspec/inc-merge` | 6 | 合并到基线 |
296
- | `/incspec/inc-archive` | 7 | 归档工作流产出 |
297
- | `/incspec/inc-status` | - | 检查工作流状态 |
298
- | `/incspec/inc-help` | - | 显示帮助 |
100
+ **目的**: 将已完成的工作流产出归档到 `incspec/archives/YYYY-MM/{module}/`
299
101
 
300
102
  ## 目录结构
301
103
 
302
104
  ```
303
105
  incspec/
304
- ├── project.md # 项目配置 (名称、技术栈、源码目录)
305
- ├── WORKFLOW.md # 工作流状态跟踪
306
- ├── AGENTS.md # AI编码助手使用指南
307
- ├── baselines/ # 版本控制的基线快照
308
- │ └── {module}-baseline-v{n}.md
309
- ├── requirements/ # 结构化需求与UI依赖
310
- │ ├── structured-requirements.md
311
- │ └── ui-dependencies.md
312
- ├── increments/ # 增量设计蓝图
313
- │ └── {feature}-increment-v{n}.md
314
- └── archives/ # 历史记录
315
- └── YYYY-MM/ # 按月份组织
316
- └── {module}/ # 按工作流模块分组
106
+ ├── project.md # 项目配置
107
+ ├── WORKFLOW.md # 工作流状态
108
+ ├── AGENTS.md # 本指南
109
+ ├── baselines/ # 基线快照 (版本控制)
110
+ ├── requirements/ # 需求与依赖
111
+ ├── increments/ # 增量设计 (版本控制)
112
+ └── archives/ # 历史归档 (按月/模块)
317
113
  ```
318
114
 
319
115
  ## 编号系统
320
116
 
321
- ### 时序编号
322
-
323
- 用于 Mermaid sequenceDiagram 中的 API 调用和状态变更:
117
+ | 类型 | 原始 | 新增 | 修改 | 删除 |
118
+ |------|------|------|------|------|
119
+ | 时序 | `[S1]` | `[N1]` | `[S1-Modified]` | `[S1-Deleted]` |
120
+ | 依赖 | `[D1]` | `[N1]` | `[D1_MOD]` | `[D1_DEL]` |
121
+ | 变更 | `[C1]` | - | - | - |
122
+ | 关系 | `[R1.x]` 串行, `[R2.x]` 并行, `[R3.x]` 条件 |
324
123
 
325
- | 格式 | 用途 | 示例 |
326
- |------|------|------|
327
- | `[S1]`, `[S2]`... | 原始基线步骤 | `[S1] 用户点击按钮` |
328
- | `[N1]`, `[N2]`... | 增量中的新步骤 | `[N1] 验证输入` |
329
- | `[S1-Modified]` | 修改的现有步骤 | `[S1-Modified] 增强验证` |
330
- | `[S3-Deleted]` | 删除的步骤 | `[S3-Deleted] 移除遗留调用` |
124
+ ## CLI 命令
331
125
 
332
- ### 依赖节点编号
333
-
334
- 用于 Mermaid graph 中的依赖关系:
335
-
336
- | 格式 | 用途 | 示例 |
337
- |------|------|------|
338
- | `[D1]`, `[D2]`... | 原始基线节点 | `D1[UserStore]` |
339
- | `[N1]`, `[N2]`... | 增量中的新节点 | `N1[ValidationUtil]` |
340
- | `[D2_MOD]` | 修改的现有节点 | `D2_MOD[增强的API]` |
341
- | `[D3_DEL]` | 删除的节点 | `D3_DEL[遗留服务]` |
342
-
343
- ### 变更链编号
344
-
345
- 用于增量设计表:
346
-
347
- | 格式 | 用途 |
348
- |------|------|
349
- | `[C1]`, `[C2]`... | 顺序变更操作 |
350
-
351
- ### 关系编号
126
+ ```bash
127
+ # 初始化与状态
128
+ incspec init [--force] # 初始化项目
129
+ incspec status / st # 查看工作流状态
130
+ incspec list / ls [-l] [-a] # 列出规格文件
352
131
 
353
- 用于依赖摘要:
132
+ # 7步工作流
133
+ incspec analyze <path> [--quick] [--module=name] [--baseline=file] # 步骤1
134
+ incspec collect-req / cr # 步骤2
135
+ incspec collect-dep / cd # 步骤3 (快速模式跳过)
136
+ incspec design / d [--feature=name] # 步骤4 (快速模式跳过)
137
+ incspec apply / ap [path] # 步骤5
138
+ incspec merge / m [path] # 步骤6
139
+ incspec archive [--yes] [--keep] # 步骤7
354
140
 
355
- | 格式 | 分类 | 描述 |
356
- |------|------|------|
357
- | `[R1.x]` | 串行 | 顺序依赖 |
358
- | `[R2.x]` | 并行 | 并发调用组 |
359
- | `[R3.x]` | 条件 | 基于条件的依赖 |
141
+ # 验证与同步
142
+ incspec validate / v [--strict] # 验证完整性
143
+ incspec sync [--cursor|--claude|--all] [--global|--project] # IDE集成
144
+ incspec reset [--archive|--clean] # 重置工作流状态
145
+ ```
360
146
 
361
- ## 文件格式
147
+ ## 文件格式示例
362
148
 
363
- ### 基线文件结构
149
+ ### 基线文件
364
150
 
365
151
  ```markdown
366
152
  ---
367
153
  module: home
368
154
  version: 1
369
- created: 2024-01-15T10:00:00Z
370
155
  source_path: src/pages/Home
371
156
  ---
372
157
 
373
- # {Module} 基线 v{n}
158
+ # Home 基线 v1
374
159
 
375
160
  ## API 调用时序图
376
-
377
- ```mermaid
378
- sequenceDiagram
379
- participant User as 用户
380
- participant Component as 组件
381
- participant Store as 状态
382
- participant API as 接口
383
-
384
- User->>Component: [S1] 挂载组件
385
- Component->>Store: [S2] 初始化状态
386
- Store->>API: [S3] fetchInitialData()
387
- API-->>Store: [S4] 响应
388
- Store-->>Component: [S5] 更新视图
389
- ```
161
+ sequenceDiagram (Mermaid): User → Component → Store → API 的 [S1]-[Sn] 编号调用
390
162
 
391
163
  ## 依赖关系图
392
-
393
- ```mermaid
394
- graph TD
395
- D1[HomePage] --> D2[useHomeStore]
396
- D1 --> D3[HomeAPI]
397
- D2 --> D4[UserState]
398
- D3 --> D5[HttpClient]
399
- ```
164
+ graph TD (Mermaid): [D1]-[Dn] 编号的组件依赖关系
400
165
 
401
166
  ## 依赖摘要
402
-
403
167
  | ID | 类型 | 关系 | 描述 |
404
- |----|------|------|------|
405
- | R1.1 | 串行 | S1 S2 → S3 | 挂载到获取序列 |
406
- | R1.2 | 串行 | S3 → S4 → S5 | API响应流 |
407
- | R2.1 | 并行 | D2 ∥ D3 | Store和API相互独立 |
168
+ | R1.1 | 串行 | S1 → S2 | 顺序调用 |
169
+ | R2.1 | 并行 | S3 S4 | 并发调用 |
408
170
  ```
409
171
 
410
- ### 增量文件结构
172
+ ### 增量文件
411
173
 
412
174
  ```markdown
413
175
  ---
414
176
  feature: batch-operation
415
- version: 1
416
177
  baseline: home-baseline-v1
417
- created: 2024-01-16T14:00:00Z
418
178
  ---
419
179
 
420
- # {Feature} 增量 v{n}
180
+ # Batch-operation 增量 v1
421
181
 
422
182
  ## 1. 一句话摘要
423
-
424
- 为列表视图添加批量选择和批量操作功能。
425
-
426
- ## 2. 变更链设计表
427
-
428
- | ID | 变更 | 文件 | 操作 | 逻辑规格 |
429
- |----|------|------|------|----------|
430
- | C1 | 添加选择状态 | store/list.ts | modify | 跟踪已选ID |
431
- | C2 | 添加批量操作 | components/BatchActions.tsx | create | 批量操作UI |
432
- | C3 | 添加批量API | api/batch.ts | create | 批量操作端点 |
433
-
434
- ## 3. 规划的API调用时序图
435
-
436
- ```mermaid
437
- sequenceDiagram
438
- participant User as 用户
439
- participant List as 列表
440
- participant Store as 状态
441
- participant API as 接口
442
-
443
- User->>List: [S1] 查看列表
444
- List->>Store: [S2] 加载项目
445
- User->>List: [N1] 切换选择
446
- List->>Store: [N2] 更新selectedIds
447
- User->>List: [N3] 点击批量操作
448
- List->>API: [N4] batchOperation()
449
- API-->>List: [N5] 响应
450
- List->>Store: [N6] 刷新列表
451
- ```
452
-
453
- ## 4. 规划的依赖关系图
454
-
455
- ```mermaid
456
- graph TD
457
- D1[ListPage] --> D2[useListStore]
458
- D1 --> N1[BatchActions]
459
- N1 --> N2[useBatchStore]
460
- N2 --> N3[BatchAPI]
461
- D2 --> D2_MOD[增强的状态]
462
- ```
463
-
464
- ## 5. 完整文件变更清单
465
-
466
- | 操作 | 路径 | 描述 |
467
- |------|------|------|
468
- | create | src/components/BatchActions.tsx | 批量操作按钮 |
469
- | create | src/api/batch.ts | 批量API服务 |
470
- | create | src/store/batch.ts | 批量选择状态 |
471
- | modify | src/store/list.ts | 添加选择跟踪 |
472
- | modify | src/pages/List.tsx | 集成批量UI |
473
-
183
+ ## 2. 变更链设计表 ([C1]-[Cn])
184
+ ## 3. 规划的API调用时序图 (原始[S] + [N]新增 + [S-Modified] + [S-Deleted])
185
+ ## 4. 规划的依赖关系图 (原始[D] + [N]新增 + [D_MOD] + [D_DEL])
186
+ ## 5. 完整文件变更清单 (create/modify/delete + 路径)
474
187
  ## 6. 潜在风险与副作用
475
-
476
- - [ ] 性能: 大量选择可能导致渲染变慢
477
- - [ ] 状态同步: 批量操作后需清除选择状态
478
- - [ ] 错误处理: 部分批量失败需要优雅处理
479
- - [ ] 用户体验: 批量操作期间的加载状态
480
-
481
- ## 7. 建议的测试用例
482
-
483
- | # | 测试用例 | 预期结果 |
484
- |---|----------|----------|
485
- | 1 | 选择单个项目 | 项目高亮,计数显示1 |
486
- | 2 | 选择全部项目 | 所有项目高亮 |
487
- | 3 | 取消选择项目 | 项目取消高亮,计数递减 |
488
- | 4 | 执行批量删除 | 已选项目被移除 |
489
- | 5 | 批量操作失败 | 显示错误消息,项目保留 |
490
- | 6 | 取消选择 | 所有项目取消选择 |
188
+ ## 7. 建议的测试用例 (至少6个)
491
189
  ```
492
190
 
493
- ### 需求文件结构
494
-
495
- ```markdown
496
- ---
497
- created: 2024-01-16T10:00:00Z
498
- updated: 2024-01-16T14:30:00Z
499
- ---
500
-
501
- # 结构化需求
502
-
503
- ## 功能需求
504
-
505
- | 功能 | UI组件 | 触发条件 | 状态变更 | 数据流 |
506
- |------|--------|----------|----------|--------|
507
- | 批量删除 | List, BatchActions | 点击删除按钮 | selectedIds → clear | 用户 → Store → API → 刷新 |
508
- | 批量导出 | List, ExportModal | 点击导出按钮 | exportFormat | 用户 → Store → API → 下载 |
509
-
510
- ## 澄清问题
511
-
512
- - 问: 批量操作的最大数量是多少?
513
- - 答: 每次操作100项
514
-
515
- - 问: 删除的项目是否可恢复?
516
- - 答: 否,此功能接受硬删除
517
- ```
518
-
519
- ## 最佳实践
520
-
521
- ### 工作流纪律
522
-
523
- 1. **不要跳过步骤** - 完整模式按1-7顺序执行,快速模式按1-2-5-6-7执行
524
- 2. **一次一个增量** - 完成后再开始下一个
525
- 3. **频繁验证** - 继续前运行 `incspec validate`
526
- 4. **保持基线最新** - 实施成功后始终合并
527
-
528
- ### 编号一致性
529
-
530
- 1. **使用连续编号** - 序列中不能有间隙
531
- 2. **适当使用前缀** - S表示时序, D表示依赖, C表示变更
532
- 3. **清晰标记修改** - 始终标注Modified/Deleted
533
- 4. **合并时重新编号** - 基线中保持干净序列
534
-
535
- ### 文档质量
191
+ ## 与AI助手集成
536
192
 
537
- 1. **具体明确** - 精确的文件路径、函数名、类型
538
- 2. **包含示例** - 清单中的代码片段
539
- 3. **列出所有风险** - 即使是小问题
540
- 4. **全面测试** - 覆盖边界情况
193
+ **完整模式流程**:
194
+ 1. 人类提供需求 → AI 执行步骤 1-4 → 人类审批设计 → AI 执行步骤 5-7 → 循环
541
195
 
542
- ### 代码生成安全
196
+ **快速模式流程**:
197
+ 1. 人类提供简单需求 → AI 执行步骤 1-2 → 人类审批 → AI 执行步骤 5-7 → 循环
543
198
 
544
- 1. **应用前审查** - 始终审查增量设计
545
- 2. **变更前备份** - 先提交当前状态
546
- 3. **验证TypeScript** - 确保编译通过
547
- 4. **增量测试** - 每次变更后运行测试
199
+ **核心原则**:
200
+ - 增量优于大爆炸 - 小的、经过验证的变更
201
+ - 规格驱动 - 需求先于代码
202
+ - 可追溯 - 每个变更关联到需求
203
+ - 可逆转 - 基线提供回滚点
548
204
 
549
205
  ## 故障排除
550
206
 
551
- ### 常见错误
552
-
553
- **"Workflow not initialized"**
554
- - 运行 `incspec init` 设置项目
555
- - 检查 `incspec/` 目录是否存在
556
-
557
- **"No baseline found"**
558
- - 先完成步骤1 (analyze)
559
- - 检查 `incspec/baselines/` 目录
560
-
561
- **"Previous step not completed"**
562
- - 运行 `incspec status` 检查进度
563
- - 按顺序完成待处理步骤
564
-
565
- **"Validation failed"**
566
- - 检查文件格式是否符合预期结构
567
- - 确保所有必需部分都存在
568
- - 验证编号序列
569
-
570
- ### 验证技巧
571
-
572
- ```bash
573
- # 检查整体完整性
574
- incspec validate --strict
575
-
576
- # 列出文件以验证结构
577
- incspec list -l
578
-
579
- # 检查当前状态
580
- incspec status
581
- ```
582
-
583
- ### 恢复步骤
584
-
585
- 1. **工作流卡住**: 删除 `WORKFLOW.md` 并重新开始
586
- 2. **基线损坏**: 从 `archives/` 恢复或重新生成
587
- 3. **合并失败**: 使用最新基线重新运行合并
588
-
589
- ## 快速参考
590
-
591
- ### 工作流状态
592
-
593
- | 状态 | 描述 |
594
- |------|------|
595
- | `pending` | 步骤未开始 |
596
- | `in_progress` | 步骤正在进行 |
597
- | `completed` | 步骤已完成 |
598
-
599
- ### 文件类型
600
-
601
- | 目录 | 用途 | 版本控制 |
602
- |------|------|----------|
603
- | `baselines/` | 当前真相 | 是 (v1, v2...) |
604
- | `requirements/` | 收集的规格 | 否 |
605
- | `increments/` | 变更提案 | 是 (v1, v2...) |
606
- | `archives/` | 历史记录 | 按日期 |
607
-
608
- ### CLI 快捷方式
609
-
610
- | 完整命令 | 别名 | 描述 |
611
- |----------|------|------|
612
- | `status` | `st` | 查看状态 |
613
- | `collect-req` | `cr` | 需求收集 |
614
- | `collect-dep` | `cd` | 依赖收集 |
615
- | `design` | `d` | 设计 |
616
- | `apply` | `ap` | 应用 |
617
- | `merge` | `m` | 合并 |
618
- | `list` | `ls` | 列出文件 |
619
- | `validate` | `v` | 验证 |
620
-
621
- ### 常用命令
622
-
623
- ```bash
624
- incspec status # 我在哪里?
625
- incspec list # 有什么?
626
- incspec validate --strict # 是否正确?
627
- incspec sync # 设置IDE命令
628
- ```
629
-
630
- ## 与AI助手集成
207
+ | 错误 | 解决方案 |
208
+ |------|----------|
209
+ | Workflow not initialized | 运行 `incspec init` |
210
+ | No baseline found | 先完成步骤 1 (analyze) |
211
+ | Previous step not completed | 运行 `incspec status` 检查进度 |
212
+ | Validation failed | 检查文件格式和编号序列 |
213
+ | 工作流卡住 | 运行 `incspec reset` 重置状态 |
631
214
 
632
- ### 推荐工作流
633
-
634
- **完整模式 (7步):**
635
-
636
- 1. **人类**: 提供高层需求
637
- 2. **AI**: 运行步骤1 (analyze) 理解代码库
638
- 3. **AI**: 运行步骤2 (collect-req) 并提出澄清问题
639
- 4. **AI**: 运行步骤3 (collect-dep) 映射依赖
640
- 5. **AI**: 运行步骤4 (design) 创建蓝图
641
- 6. **人类**: 审查并批准增量设计
642
- 7. **AI**: 运行步骤5 (apply) 生成代码
643
- 8. **人类**: 测试并验证变更
644
- 9. **AI**: 运行步骤6 (merge) 更新基线
645
- 10. **AI**: 运行步骤7 (archive) 归档产出
646
- 11. **循环**: 返回步骤1开始下一个增量
647
-
648
- **快速模式 (5步):**
649
-
650
- 1. **人类**: 提供简单需求 (Bug修复/小功能)
651
- 2. **AI**: 运行步骤1 (analyze --quick) 理解代码库
652
- 3. **AI**: 运行步骤2 (collect-req) 收集需求
653
- 4. **AI**: 运行步骤5 (apply) 生成代码
654
- 5. **人类**: 测试并验证变更
655
- 6. **AI**: 运行步骤6 (merge) 更新基线
656
- 7. **AI**: 运行步骤7 (archive) 归档产出
657
- 8. **循环**: 返回步骤1开始下一个增量
658
-
659
- ### 核心原则
660
-
661
- - **增量优于大爆炸** - 小的、经过验证的变更
662
- - **规格驱动** - 需求先于代码
663
- - **可追溯** - 每个变更都关联到需求
664
- - **可逆转** - 基线提供回滚点
665
-
666
- 记住: 基线是真相。增量是提案。通过7步周期保持它们同步。
215
+ 记住: **基线是真相,增量是提案**。通过工作流周期保持它们同步。
@@ -103,7 +103,7 @@ incspec collect-req --complete
103
103
 
104
104
  若当前工作流为快速模式 (通过 `incspec status` 确认),完成需求收集后输出:
105
105
 
106
- > "✅ 结构化需求已收齐。快速模式下,直接运行 `incspec apply` 进入代码应用阶段。"
106
+ > "✅ 结构化需求已收齐。等待用户确认,确认后直接运行 `incspec apply` 进入代码应用阶段。"
107
107
 
108
108
  # 示例交互
109
109
 
@@ -103,7 +103,7 @@ incspec collect-req --complete
103
103
 
104
104
  若当前工作流为快速模式 (通过 `incspec status` 确认),完成需求收集后输出:
105
105
 
106
- > "✅ 结构化需求已收齐。快速模式下,直接运行 `incspec apply` 进入代码应用阶段。"
106
+ > "✅ 结构化需求已收齐。等待用户确认,确认后直接运行 `incspec apply` 进入代码应用阶段。"
107
107
 
108
108
  # 示例交互
109
109