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