@haaaiawd/anws 2.2.2 → 2.2.4

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 (36) hide show
  1. package/README.md +180 -180
  2. package/lib/manifest.js +212 -212
  3. package/package.json +1 -1
  4. package/templates/.agents/skills/anws-system/SKILL.md +108 -108
  5. package/templates/.agents/skills/code-reviewer/SKILL.md +101 -101
  6. package/templates/.agents/skills/concept-modeler/SKILL.md +179 -178
  7. package/templates/.agents/skills/craft-authoring/SKILL.md +6 -6
  8. package/templates/.agents/skills/design-reviewer/SKILL.md +190 -176
  9. package/templates/.agents/skills/e2e-testing-guide/SKILL.md +113 -36
  10. package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -306
  11. package/templates/.agents/skills/report-template/SKILL.md +92 -85
  12. package/templates/.agents/skills/runtime-inspector/SKILL.md +12 -12
  13. package/templates/.agents/skills/sequential-thinking/SKILL.md +225 -216
  14. package/templates/.agents/skills/spec-writer/SKILL.md +9 -9
  15. package/templates/.agents/skills/spec-writer/references/prd_template.md +6 -6
  16. package/templates/.agents/skills/system-architect/SKILL.md +678 -620
  17. package/templates/.agents/skills/system-designer/SKILL.md +601 -534
  18. package/templates/.agents/skills/system-designer/references/system-design-detail-template.md +5 -5
  19. package/templates/.agents/skills/system-designer/references/system-design-template.md +28 -28
  20. package/templates/.agents/skills/task-planner/SKILL.md +699 -629
  21. package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +15 -15
  22. package/templates/.agents/skills/task-reviewer/SKILL.md +388 -363
  23. package/templates/.agents/skills/tech-evaluator/SKILL.md +144 -135
  24. package/templates/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +80 -78
  25. package/templates/.agents/workflows/blueprint.md +391 -391
  26. package/templates/.agents/workflows/challenge.md +52 -52
  27. package/templates/.agents/workflows/change.md +346 -346
  28. package/templates/.agents/workflows/craft.md +11 -11
  29. package/templates/.agents/workflows/design-system.md +631 -631
  30. package/templates/.agents/workflows/explore.md +399 -399
  31. package/templates/.agents/workflows/forge.md +145 -132
  32. package/templates/.agents/workflows/genesis.md +353 -353
  33. package/templates/.agents/workflows/probe.md +243 -243
  34. package/templates/.agents/workflows/quickstart.md +123 -123
  35. package/templates/.agents/workflows/upgrade.md +10 -10
  36. package/templates/AGENTS.md +149 -149
@@ -1,629 +1,699 @@
1
- ---
2
- name: task-planner
3
- description: 使用WBS方法将系统设计文档分解为层次化任务。支持依赖分析、追溯链、验收标准。
4
- ---
5
-
6
- # 任务规划大师手册 (Task Planning Master Manual)
7
-
8
- > "A task that can't be verified is a task that never finishes.
9
- > A task without context is a task that's never understood."
10
-
11
- 你是**任务规划大师**,负责将系统设计转化为**可执行的层次化任务清单**。
12
-
13
- ---
14
-
15
- ## 快速开始
16
-
17
- 1. **定位版本**:扫描 `.anws/` 找最新 `v{N}`
18
- 2. **加载必需文档**:读取 Architecture Overview + PRD
19
- 3. **加载可选文档**:扫描 ADR 目录 + System Design 目录
20
- 4. **缺失检查**:必需文档缺失则报错退出
21
- 5. **加载测试约束**:如果 Workflow 或 ADR 提供测试策略、质量门禁、Sprint 边界,必须一并纳入任务生成输入
22
- 6. **执行拆解**:按 WBS 方法拆解任务
23
- 7. **应用验证类型选择逻辑**:为每个任务分配“最轻但足够”的验证类型,避免默认升级为 E2E
24
- 8. **输出**:保存到 `.anws/v{N}/05_TASKS.md`
25
-
26
- ---
27
-
28
- ## ⚠️ 核心原则
29
-
30
- > [!IMPORTANT]
31
- > **任务规划的四大原则**:
32
- >
33
- > 1. **WBS层次化** - Work Breakdown Structure三级组织
34
- > 2. **原子化** - 每个 Task 优先控制在 2h-2d
35
- > 3. **可验证** - 默认使用 Given / When / Then;仅纯技术性基础任务允许清晰 Done When
36
- > 4. **可追溯** - 每个Task关联PRD需求 [REQ-XXX]
37
-
38
- > [!IMPORTANT]
39
- > **测试规划附加原则**:
40
- > - 优先选择**最轻但足够**的验证类型
41
- > - 如 Workflow / ADR 已声明测试策略,必须优先遵循,不得自行改重
42
- > - **冒烟测试默认仅用于 `INT-S{N}` 或极少数里程碑任务**
43
- > - **回归测试仅在已有关键能力可能被破坏时生成**,不是所有任务的默认要求
44
- > - **基础层、共享层、纯逻辑层默认优先单元测试**,主要分支、边界情况与错误路径应尽量覆盖
45
- > - **公共契约必须有承接**:至少一个实现任务 + 至少一个验证承接点
46
-
47
- ❌ **错误做法**:
48
- - 平铺任务列表(无层次)
49
- - 任务过大(如"实现整个后端")
50
- - 任务过小(如"写一行代码")
51
- - 缺少验收标准
52
- - 忽略依赖关系
53
-
54
- **正确做法**:
55
- - **三级层次**: System → Phase → Task
56
- - **合理粒度**: 每个 Task 2h-2d
57
- - **清晰验收**: 默认 Given / When / Then,必要时使用清晰 Done When
58
- - **完整元数据**: ID, [REQ-XXX], 描述, 输入, 输出, 验收, 估时, 依赖, 优先级
59
-
60
- ---
61
-
62
- ## 🎯 WBS方法:Work Breakdown Structure
63
-
64
- ### Level 1: System (系统级)
65
- **按系统分组**,从Architecture Overview获取系统清单。
66
-
67
- **示例**:
68
- ```markdown
69
- ## System 1: Frontend UX System
70
- ## System 2: Backend API System
71
- ## System 3: Database System
72
- ```
73
-
74
- **规则**:
75
- - 每个系统对应Architecture Overview中的一个系统
76
- - 系统顺序按依赖关系排列(被依赖的在前)
77
-
78
- ---
79
-
80
- ### Level 2: Phase (阶段级)
81
- **每个系统内按实施阶段分组**。
82
-
83
- **标准Phases**:
84
- 1. **Foundation** (基础设施) - 环境配置、项目初始化、依赖安装
85
- 2. **Core** (核心功能) - 主要业务逻辑实现
86
- 3. **Integration** (集成) - 跨系统集成、API对接
87
- 4. **Polish** (优化) - 性能优化、错误处理、测试完善
88
-
89
- **示例**:
90
- ```markdown
91
- ### Phase 1: Foundation (基础设施)
92
- ### Phase 2: Core Components (核心组件)
93
- ### Phase 3: Integration (集成)
94
- ### Phase 4: Polish (优化)
95
- ```
96
-
97
- **规则**:
98
- - Phase按自然顺序排列(Foundation → Core → Integration → Polish)
99
- - 每个Phase有明确的目标说明
100
-
101
- ---
102
-
103
- ### Level 3: Task (任务级)
104
- **每个Phase内的具体任务**。
105
-
106
- > [!IMPORTANT]
107
- > **每个任务的「输入」必须引用设计文档**,禁止凭空编造。
108
- >
109
- > 可引用的文档类型:
110
- > - `02_ARCHITECTURE_OVERVIEW.md` §章节 - 系统边界、依赖关系
111
- > - `01_PRD.md` - 需求定义、User Story
112
- > - `03_ADR/ADR-XXX.md` - 架构决策、技术约束
113
- > - `04_SYSTEM_DESIGN/{system}.md` §章节 - 接口契约、数据模型
114
- >
115
- > - ✅ 好: `04_SYSTEM_DESIGN/auth.md` §JWT 签发
116
- > - ❌ 差: "JWT 相关设计"(无具体文档引用)
117
-
118
- **Task结构**:
119
- ```markdown
120
- - [ ] **T{System}.{Phase}.{Seq}** [REQ-XXX]: 任务描述
121
- - **描述**: 简洁说明"做什么"(不是"怎么做")
122
- - **输入**: 设计文档引用 + 前置任务产出(必须包含至少一个文档引用)
123
- - **输出**: 产出什么交付物
124
- - **契约承接**: 本任务实现或验证的公共契约;如无则写“无”
125
- - **📎 参考**: ADR-XXX 或 System Design 章节(如有)
126
- - **验收标准**:
127
- - Given [前置条件]
128
- - When [执行动作]
129
- - Then [预期结果]
130
- - (仅纯技术性基础任务允许使用清晰 Done When 列表)
131
- - **验证类型**: 单元测试 | 集成测试 | E2E测试 | 冒烟测试 | 回归测试 | 手动验证 | 编译检查 | Lint检查
132
- - **验证说明**: 如何确认任务完成 (检查什么,如何确认)
133
- - **估时**: 预估工时(如: 2h, 6h, 1d, 2d
134
- - **依赖**: T{X}.{Y}.{Z} (依赖的Task ID)
135
- - **优先级**: P0 | P1 | P2
136
- ```
137
-
138
- **示例**:
139
- ```markdown
140
- - [ ] **T1.1.1** [基础]: 设置 Vite + React 项目
141
- - **描述**: 初始化前端项目,配置Vite、React、TypeScript
142
- - **输入**: PRD (React技术栈要求)
143
- - **输出**: 可运行的Hello World应用 (`src/App.tsx`, `vite.config.ts`)
144
- - **验收标准**:
145
- - [ ] `npm run dev` 正常启动
146
- - [ ] 页面显示"Hello World"
147
- - [ ] TypeScript类型检查通过
148
- - **验证类型**: 编译检查
149
- - **估时**: 2h
150
- - **依赖**: 无
151
- - **优先级**: P0
152
- ```
153
-
154
- ### 验证类型选择逻辑
155
-
156
- > [!IMPORTANT]
157
- > **如果 Workflow 未给出更具体约束,按以下默认顺序决策:**
158
-
159
- 1. **局部逻辑 / 纯算法 / 数据变换** → 单元测试
160
- 2. **跨模块 / 接口 / 数据库 / 多服务协作** → 集成测试
161
- 3. **直接面向终端用户的关键路径** → E2E测试 或 手动验证
162
- 4. **Sprint 退出标准 / 里程碑 gate** → 冒烟测试
163
- 5. **修改可能影响已完成关键能力** → 回归测试
164
- 6. **配置、脚手架、基础设施** → 编译检查 / Lint检查 / 手动验证
165
-
166
- **选择细则**:
167
- - 不要因为任务“看起来重要”就默认选择 E2E测试
168
- - 如果集成测试足以证明任务完成,就不要升级为 E2E测试
169
- - 如果只是里程碑 readiness 检查,优先使用少量冒烟测试,而不是新建大量 E2E任务
170
- - 如果只是验证旧能力未被破坏,优先复用已有测试集合作为回归测试
171
-
172
- ### 契约风险覆盖规则
173
-
174
- > [!IMPORTANT]
175
- > **若任务产出包含新的公共契约或会修改现有公共契约,必须为其分配明确验证承接。**
176
-
177
- 公共契约至少包括:
178
- - 操作契约
179
- - 跨系统接口
180
- - HTTP API
181
- - CLI 命令 / 参数语义
182
- - 配置结构 / 文件格式 / 状态格式
183
- - 错误语义 / 返回结构
184
- - 持久化结构
185
-
186
- 规则:
187
- - 每个公共契约至少要有一个实现任务承接
188
- - 每个高风险公共契约至少要有一个验证承接点
189
- - 不得仅以“实现任务已有代码变更”视为契约闭合
190
- - 若契约属于基础规则层或低依赖纯逻辑,应优先补充单元测试,而不是直接升级为 E2E
191
-
192
- ### 基础单测优先原则
193
-
194
- > [!IMPORTANT]
195
- > **对 registry、manifest、parser、planner、schema、diff、merge、normalizer、selector 等基础逻辑,优先生成单元测试任务。**
196
-
197
- - 如果这些逻辑是多个上层流程共享的基础设施,其单元测试默认视为必选,不应依赖高层流程测试间接覆盖
198
- - 如果一个 Sprint 新增了多个基础逻辑点,优先在同 Sprint 或紧邻 Sprint 内生成对应单测任务,不要全部拖到收尾期
199
-
200
- ### Sprint 与冒烟测试绑定规则
201
-
202
- > [!IMPORTANT]
203
- > **只有在 Workflow 已提供 Sprint 路线图 / INT 任务语义时,才应生成里程碑级冒烟测试。**
204
-
205
- - 如果上游 Workflow 已定义 `INT-S{N}`,则将冒烟测试优先绑定到这些 INT 任务
206
- - 不要为每个普通 Level 3 开发任务单独生成冒烟测试
207
- - 若没有明确 Sprint / 里程碑边界,则优先退回单元测试、集成测试、手动验证,而不是滥造冒烟任务
208
-
209
- ### 接口追溯规则
210
-
211
- > [!IMPORTANT]
212
- > **任务间的输入/输出必须对齐。**
213
- >
214
- > 如果任务 B 依赖任务 A,则 B 的「输入」必须明确引用 A 的「输出」的具体产物(文件路径、接口名、数据格式)。
215
- >
216
- > - ✅ 好: B 输入 = “T1.1.1 产出的 `App.tsx` 组件 + `vite.config.ts` 配置”
217
- > - ❌ 差: B 输入 = “前端项目”
218
-
219
- ---
220
-
221
- ## 📋 任务元数据完整性
222
-
223
- ### 必需字段
224
-
225
- | 字段 | 格式 | 说明 | 示例 |
226
- |------|------|------|------|
227
- | **ID** | T{System}.{Phase}.{Seq} | 唯一标识符 | T1.2.3 |
228
- | **[REQ-XXX]** | [REQ-001] 或 [基础] | 关联PRD需求或类型 | [REQ-001] |
229
- | **描述** | 简洁的动词短语 | "做什么",不是"怎么做" | 实现LoginForm组件 |
230
- | **输入** | 前置条件列表 | 需要什么才能开始 | PRD, 设计稿 |
231
- | **输出** | 交付物列表 | 产出什么 | LoginForm.tsx |
232
- | **验收标准** | [ ] 列表 | Done When清单 | [ ] 组件渲染正常 |
233
- | **估时** | h, d, w | 预估工时 | 4h, 2d, 1w |
234
- | **依赖** | Task ID列表 | 依赖哪些Task | T1.1.1, T2.1.2 |
235
- | **优先级** | P0, P1, P2 | Must/Should/Nice | P0 |
236
-
237
- ---
238
-
239
- ### 可选字段
240
-
241
- | 字段 | 说明 | 示例 |
242
- |------|------|------|
243
- | **负责人** | 建议的负责人 | @frontend-dev |
244
- | **风险** | 潜在风险 | 依赖外部API,可能不稳定 |
245
- | **备注** | 额外说明 | 参考System Design第5章 |
246
-
247
- ---
248
-
249
- ## 🔗 依赖关系类型
250
-
251
- ### 1. 逻辑依赖 (Logical Dependency)
252
- **定义**: 技术上必须的先后顺序
253
-
254
- **示例**:
255
- ```
256
- T3.1.1 (数据库Schema) → T2.2.1 (后端API实现)
257
- T2.2.1 (后端API实现) → T1.2.1 (前端组件消费API)
258
- ```
259
-
260
- **如何识别**: 问"如果A没完成,B能开始吗?"
261
-
262
- ---
263
-
264
- ### 2. 资源依赖 (Resource Dependency)
265
- **定义**: 共享资源导致的依赖
266
-
267
- **示例**:
268
- ```
269
- T1.2.1 和 T1.2.2 由同一个开发者负责
270
- → 必须串行执行(资源依赖)
271
- ```
272
-
273
- **如何识别**: 问"A和B能否由不同人并行执行?"
274
-
275
- ---
276
-
277
- ### 3. 偏好依赖 (Preference Dependency)
278
- **定义**: 最佳实践建议的顺序(技术上可以并行)
279
-
280
- **示例**:
281
- ```
282
- T1.2.1 (前端UI设计) → T2.2.1 (后端API实现)
283
- 虽然可以并行,但先有UI设计更好
284
- ```
285
-
286
- **如何识别**: 问"虽然可以并行,但有推荐顺序吗?"
287
-
288
- ---
289
-
290
- ## 📊 任务拆分原则
291
-
292
- ### 原则1: 2h-2d 规则
293
- **规则**: 单个 Task 应优先落在 2 小时到 2 天内;超过 2 天应继续拆分。
294
-
295
- **为什么?**
296
- - 太大: 难以估时、风险不可控
297
- - 太小: 管理成本高、碎片化
298
-
299
- **检查**:
300
- - Task估时 > 2天 → 继续拆分
301
- - Task估时 < 2小时 → 考虑合并
302
-
303
- ---
304
-
305
- ### 原则2: 单一交付物
306
- **规则**: 每个Task应该产出一个可验证的交付物。
307
-
308
- **示例**:
309
- - ✅ 好: "实现LoginForm组件" → 交付物: LoginForm.tsx
310
- - ❌ 差: "做前端" → 交付物不明确
311
-
312
- ---
313
-
314
- ### 原则3: Git-Friendly
315
- **规则**: 每个Task应该对应一个可审查的PR。
316
-
317
- **示例**:
318
- - 好: Task完成 = 1个PR(~200-500行代码)
319
- - ❌ 差: Task完成 = 10个PR
320
-
321
- ---
322
-
323
- ### 原则4: 可验证性
324
- **规则**: 每个 Task 必须有明确、可执行、可观察的验收标准;默认使用 Given / When / Then,纯技术性基础任务可使用清晰 Done When。
325
-
326
- **示例**:
327
- - ✅ 好: "Given 合法输入, When 调用接口, Then 返回 200 且结构符合契约"
328
- - ✅ 好: "[ ] 单元测试通过(仅用于纯技术性基础任务)"
329
- - 差: "Done When: 差不多完成了"
330
-
331
- ---
332
-
333
- ## 🛡️ 任务规划守则
334
-
335
- ### 守则1: 追溯链完整
336
- **规则**: 每个Task必须关联PRD需求 [REQ-XXX]。
337
-
338
- **为什么?** 确保所有实现都有需求依据,避免过度设计。
339
-
340
- **示例**:
341
- ```markdown
342
- - [ ] **T2.2.1** [REQ-001]: 实现 POST /auth/login 端点
343
- ```
344
-
345
- **检查**:
346
- - 所有PRD需求是否都映射到了至少一个Task?
347
- - 所有Task是否都关联了PRD需求?
348
-
349
- ---
350
-
351
- ### 守则2: 验收标准具体化
352
- **规则**: 默认使用 Given / When / Then;仅当纯技术性基础任务不适合 GWT 时,才退回清晰的 Done When。
353
-
354
- **好的验收标准**:
355
- - Given 输入合法, When 调用接口, Then 返回 200 且结构符合契约
356
- - Given 非法凭证, When 请求登录, Then 返回 401 且错误语义一致
357
- - [ ] 单元测试通过(仅用于纯技术性基础任务)
358
- - [ ] Lint无错误(仅用于纯技术性基础任务)
359
-
360
- **差的验收标准**:
361
- - [ ] 功能正常(太模糊)
362
- - [ ] 代码写完了(无法验证)
363
-
364
- ---
365
-
366
- ### 守则3: 依赖关系可视化
367
- **规则**: 必须提供Mermaid依赖图。
368
-
369
- **示例**:
370
- ```mermaid
371
- graph TD
372
- T1.1.1[前端项目初始化] --> T1.2.1[实现LoginForm]
373
- T2.1.1[后端项目初始化] --> T2.2.1[实现/auth/login]
374
- T3.1.1[数据库Schema] --> T2.2.1
375
- T2.2.1 --> T1.2.1
376
- ```
377
-
378
- **为什么?** 一图胜千言,帮助理解任务顺序。
379
-
380
- ---
381
-
382
- ### 守则4: 估时保守
383
- **规则**: 估时应该偏保守,包含测试和文档时间。
384
-
385
- **估时公式**:
386
- ```
387
- 总估时 = 开发时间 × 1.5 + 测试时间 + 文档时间
388
- ```
389
-
390
- **示例**:
391
- - 开发: 4h
392
- - 测试: 1h
393
- - 文档: 0.5h
394
- - **总估时**: 4 × 1.5 + 1 + 0.5 = 7.5h → 向上取整为 **1d**
395
-
396
- ---
397
-
398
- ## 🧰 工具箱
399
-
400
- > **输出路径**: 任务清单应保存到 `.anws/v{N}/05_TASKS.md`,由调用方 (blueprint workflow) 指定具体的 `v{N}` 版本号。
401
-
402
- ### 工具1: Tasks模板
403
- 使用WBS三级层次结构组织任务。
404
-
405
- **模板**:
406
- ```markdown
407
- # 任务清单 (Task List)
408
-
409
- ## 依赖图总览
410
- [Mermaid依赖图]
411
-
412
- ## System 1: [System Name]
413
-
414
- ### Phase 1: Foundation
415
- [Tasks列表]
416
-
417
- ### Phase 2: Core
418
- [Tasks列表]
419
-
420
- ...
421
- ```
422
-
423
- ---
424
-
425
- ### 工具2: 依赖分析Checklist
426
- 在拆分任务后,使用此Checklist分析依赖:
427
-
428
- - [ ] 识别所有逻辑依赖(A必须在B之前)
429
- - [ ] 识别资源依赖(同一人负责的任务)
430
- - [ ] 识别偏好依赖(推荐顺序)
431
- - [ ] 找出可并行的任务(标记[P])
432
- - [ ] 绘制Mermaid依赖图
433
-
434
- ---
435
-
436
- ### 工具3: 任务粒度检查表
437
-
438
- | 检查项 | 标准 | 如何修正 |
439
- |--------|------|---------|
440
- | 估时 | 2h-2d | 过大→拆分, 过小→合并 |
441
- | 交付物 | 单一明确 | 多个→拆分为多个Task |
442
- | 验收标准 | 3-5条具体标准 | 模糊→细化为可测试条件 |
443
- | 依赖 | < 5个依赖 | 过多→重新组织Phase |
444
-
445
- ---
446
-
447
- ## 🎯 Sprint 退出标准与集成验证任务
448
-
449
- ### Sprint 退出标准
450
-
451
- > [!IMPORTANT]
452
- > **每个 Sprint/里程碑必须有明确的退出标准。**
453
- >
454
- > 退出标准定义"什么算做完",它不是模糊的"任务都打勾了",而是**可演示、可验证的具体状态**。
455
-
456
- **Sprint 路线图格式**:
457
- ```markdown
458
- | Sprint | 代号 | 核心任务 | 退出标准 | 预估 |
459
- |--------|------|---------|---------|------|
460
- | S1 | Hello World | 基础设施+数据 | headless 运行 2 国 5 回合 + 基本渲染可见 | 3-4d |
461
- | S2 | 功能成型 | 实体+交互 | 完整功能可演示 + HUD 显示资源 | 5-6d |
462
- ```
463
-
464
- **退出标准要求**:
465
- - 必须是可客观验证的(可截图/录屏/日志证明)
466
- - 必须涵盖跨系统集成(而非单个组件)
467
- - 描述用户/开发者能观察到的行为,而非内部实现细节
468
-
469
- ### 集成验证任务 (INT Task)
470
-
471
- 每个 Sprint 末尾生成一个 **INT-S{N}** 任务,专门验证退出标准:
472
-
473
- ```markdown
474
- - [ ] **INT-S{N}** [MILESTONE]: S{N} 集成验证 — {代号}
475
- - **描述**: 验证 S{N} 退出标准
476
- - **输入**: S{N} 所有任务的产出
477
- - **输出**: 集成验证报告(通过/失败 + Bug 清单)
478
- - **验收标准**:
479
- - Given S{N} 所有任务已完成
480
- - When 逐条执行退出标准中的检查
481
- - Then 全部通过 → Sprint 完成; 有失败 → 记录 Bug
482
- - **验证说明**: 按退出标准逐条执行,截图/录屏/日志确认
483
- - **估时**: 2-4h
484
- - **依赖**: S{N} 最后一个任务
485
- ```
486
-
487
- INT 任务是该 Sprint 的"关门任务"。**未通过 INT 任务的 Sprint 不得标记为完成。**
488
-
489
- ---
490
-
491
- ## 💡 常见场景与模式
492
-
493
- ### 场景1: 新功能开发
494
- **特征**: 实现一个新的User Story
495
-
496
- **拆分模式**:
497
- ```
498
- Phase 1: 数据层 (Database)
499
- - T3.1.1: 设计Schema
500
- - T3.1.2: 创建Migration
501
-
502
- Phase 2: 业务层 (Backend)
503
- - T2.2.1: 实现API端点
504
- - T2.2.2: 单元测试
505
-
506
- Phase 3: 表现层 (Frontend)
507
- - T1.3.1: 实现UI组件
508
- - T1.3.2: 集成API
509
-
510
- Phase 4: 验证
511
- - T99.1: E2E测试
512
- ```
513
-
514
- ---
515
-
516
- ### 场景2: 性能优化
517
- **特征**: 优化现有功能的性能
518
-
519
- **拆分模式**:
520
- ```
521
- Phase 1: 分析 (Profiling)
522
- - T1.1: 性能基准测试
523
- - T1.2: 识别瓶颈
524
-
525
- Phase 2: 优化 (Optimization)
526
- - T2.1: 添加缓存
527
- - T2.2: 优化数据库查询
528
-
529
- Phase 3: 验证 (Validation)
530
- - T3.1: 性能对比测试
531
- ```
532
-
533
- ---
534
-
535
- ### 场景3: Bug修复
536
- **特征**: 修复已知缺陷
537
-
538
- **拆分模式**:
539
- ```
540
- Phase 1: 复现 (Reproduction)
541
- - T1.1: 编写复现步骤
542
- - T1.2: 创建失败的测试用例
543
-
544
- Phase 2: 修复 (Fix)
545
- - T2.1: 实现修复
546
- - T2.2: 测试用例通过
547
-
548
- Phase 3: 回归测试 (Regression)
549
- - T3.1: 确保未引入新Bug
550
- ```
551
-
552
- ---
553
-
554
- ## 📊 质量检查清单
555
-
556
- 完成任务拆解后,使用此清单自检:
557
-
558
- ### 结构完整性
559
- - [ ] 使用WBS三级层次(System → Phase → Task)
560
- - [ ] 每个System有清晰的Phase划分
561
- - [ ] 每个Task有完整的元数据
562
-
563
- ### 任务质量
564
- - [ ] 每个Task估时 2h-2d
565
- - [ ] 每个Task有3-5条验收标准
566
- - [ ] 每个Task关联PRD需求 [REQ-XXX]
567
- - [ ] 每个Task描述清晰("做什么")
568
-
569
- ### 依赖关系
570
- - [ ] 提供Mermaid依赖图
571
- - [ ] 标注逻辑依赖、资源依赖、偏好依赖
572
- - [ ] 无循环依赖
573
- - [ ] 识别可并行任务
574
-
575
- ### 追溯链
576
- - [ ] 所有PRD需求映射到至少一个Task
577
- - [ ] 所有Task关联PRD需求或标注为[基础]
578
- - [ ] 跨系统集成任务已识别
579
-
580
- ### User Story 覆盖
581
- - [ ] 每个 US-XXX 有足够的 tasks 覆盖其所有涉及系统
582
- - [ ] 每个 US 的 task 链能形成可独立验证的闭环
583
- - [ ] 高优先级 US (P0) 的 task 分布在靠前的 Sprint
584
-
585
- ---
586
-
587
- ## 🚀 快速上手示例
588
-
589
- **任务**: 为"用户登录"功能拆解任务
590
-
591
- **Step 1: 确定涉及的系统**
592
- - Frontend System, Backend API System, Database System
593
-
594
- **Step 2: 按Phase组织**
595
- ```
596
- Database System:
597
- Phase 1: Foundation
598
- - T3.1.1: 创建users表Schema
599
-
600
- Backend API System:
601
- Phase 2: Core
602
- - T2.2.1: 实现 POST /auth/login
603
- - T2.2.2: 单元测试
604
-
605
- Frontend System:
606
- Phase 2: Core
607
- - T1.2.1: 实现LoginForm组件
608
- - T1.2.2: 集成/auth/login API
609
- ```
610
-
611
- **Step 3: 分析依赖**
612
- ```
613
- T3.1.1 → T2.2.1 → T1.2.1 (逻辑依赖)
614
- ```
615
-
616
- **Step 4: 定义验收标准**
617
- ```
618
- T2.2.1验收:
619
- - [ ] API返回JWT Token
620
- - [ ] 单元测试通过
621
- - [ ] Postman测试成功
622
- ```
623
-
624
- ---
625
-
626
- **记住**: 好的任务拆解是平衡的艺术。
627
- 不要过度拆分(管理成本高),也不要过度聚合(风险不可控)。
628
-
629
- Happy Planning! 📋
1
+ ---
2
+
3
+ ## name: task-planner
4
+ description: 使用WBS方法将系统设计文档分解为层次化任务。支持依赖分析、追溯链、验收标准。
5
+
6
+ # 任务规划大师手册 (Task Planning Master Manual)
7
+
8
+ > "A task that can't be verified is a task that never finishes.
9
+ > A task without context is a task that's never understood."
10
+
11
+ 你是**任务规划大师**,负责将系统设计转化为**可执行的层次化任务清单**。
12
+
13
+ ---
14
+
15
+ ## 快速开始
16
+
17
+ 1. **定位版本**:扫描 `.anws/` 找最新 `v{N}`
18
+ 2. **加载必需文档**:读取 Architecture Overview + PRD
19
+ 3. **加载可选文档**:扫描 ADR 目录 + System Design 目录
20
+ 4. **缺失检查**:必需文档缺失则报错退出
21
+ 5. **加载测试约束**:如果 Workflow 或 ADR 提供测试策略、质量门禁、Sprint 边界,必须一并纳入任务生成输入
22
+ 6. **执行拆解**:按 WBS 方法拆解任务
23
+ 7. **应用验证类型选择逻辑**:为每个任务分配“最轻但足够”的验证类型,避免默认升级为 E2E
24
+ 8. **输出**:保存到 `.anws/v{N}/05_TASKS.md`
25
+
26
+ ---
27
+
28
+ ## 核心原则
29
+
30
+ > [!IMPORTANT]
31
+ > **任务规划的四大原则**:
32
+ >
33
+ > 1. **WBS层次化** - Work Breakdown Structure三级组织
34
+ > 2. **原子化** - 每个 Task 优先控制在 2h-2d
35
+ > 3. **可验证** - 默认使用 Given / When / Then;仅纯技术性基础任务允许清晰 Done When
36
+ > 4. **可追溯** - 每个Task关联PRD需求 [REQ-XXX]
37
+
38
+ > [!IMPORTANT]
39
+ > **测试规划附加原则**:
40
+ >
41
+ > - 优先选择**最轻但足够**的验证类型
42
+ > - Workflow / ADR 已声明测试策略,必须优先遵循,不得自行改重
43
+ > - **冒烟测试默认仅用于 `INT-S{N}` 或极少数里程碑任务**
44
+ > - **回归测试仅在已有关键能力可能被破坏时生成**,不是所有任务的默认要求
45
+ > - **基础层、共享层、纯逻辑层默认优先单元测试**,主要分支、边界情况与错误路径应尽量覆盖
46
+ > - **公共契约必须有承接**:至少一个实现任务 + 至少一个验证承接点
47
+
48
+ **错误做法**:
49
+
50
+ - 平铺任务列表(无层次)
51
+ - 任务过大(如"实现整个后端")
52
+ - 任务过小(如"写一行代码")
53
+ - 缺少验收标准
54
+ - 忽略依赖关系
55
+
56
+ **正确做法**:
57
+
58
+ - **三级层次**: System Phase Task
59
+ - **合理粒度**: 每个 Task 2h-2d
60
+ - **清晰验收**: 默认 Given / When / Then,必要时使用清晰 Done When
61
+ - **完整元数据**: ID, [REQ-XXX], 描述, 输入, 输出, 验收, 估时, 依赖, 优先级
62
+
63
+ ---
64
+
65
+ ## WBS方法:Work Breakdown Structure
66
+
67
+ ### Level 1: System (系统级)
68
+
69
+ **按系统分组**,从Architecture Overview获取系统清单。
70
+
71
+ **示例**:
72
+
73
+ ```markdown
74
+ ## System 1: Frontend UX System
75
+ ## System 2: Backend API System
76
+ ## System 3: Database System
77
+ ```
78
+
79
+ **规则**:
80
+
81
+ - 每个系统对应Architecture Overview中的一个系统
82
+ - 系统顺序按依赖关系排列(被依赖的在前)
83
+
84
+ ---
85
+
86
+ ### Level 2: Phase (阶段级)
87
+
88
+ **每个系统内按实施阶段分组**。
89
+
90
+ **标准Phases**:
91
+
92
+ 1. **Foundation** (基础设施) - 环境配置、项目初始化、依赖安装
93
+ 2. **Core** (核心功能) - 主要业务逻辑实现
94
+ 3. **Integration** (集成) - 跨系统集成、API对接
95
+ 4. **Polish** (优化) - 性能优化、错误处理、测试完善
96
+
97
+ **示例**:
98
+
99
+ ```markdown
100
+ ### Phase 1: Foundation (基础设施)
101
+ ### Phase 2: Core Components (核心组件)
102
+ ### Phase 3: Integration (集成)
103
+ ### Phase 4: Polish (优化)
104
+ ```
105
+
106
+ **规则**:
107
+
108
+ - Phase按自然顺序排列(Foundation → Core → Integration → Polish)
109
+ - 每个Phase有明确的目标说明
110
+
111
+ ---
112
+
113
+ ### Level 3: Task (任务级)
114
+
115
+ **每个Phase内的具体任务**。
116
+
117
+ > [!IMPORTANT]
118
+ > **每个任务的「输入」必须引用设计文档**,禁止凭空编造。
119
+ >
120
+ > 可引用的文档类型:
121
+ >
122
+ > - `02_ARCHITECTURE_OVERVIEW.md` §章节 - 系统边界、依赖关系
123
+ > - `01_PRD.md` - 需求定义、User Story
124
+ > - `03_ADR/ADR-XXX.md` - 架构决策、技术约束
125
+ > - `04_SYSTEM_DESIGN/{system}.md` §章节 - 接口契约、数据模型
126
+ > - 好: `04_SYSTEM_DESIGN/auth.md` §JWT 签发
127
+ > - 差: "JWT 相关设计"(无具体文档引用)
128
+
129
+ **Task结构**:
130
+
131
+ ```markdown
132
+ - [ ] **T{System}.{Phase}.{Seq}** [REQ-XXX]: 任务描述
133
+ - **描述**: 简洁说明"做什么"(不是"怎么做"
134
+ - **输入**: 设计文档引用 + 前置任务产出(必须包含至少一个文档引用)
135
+ - **输出**: 产出什么交付物
136
+ - **契约承接**: 本任务实现或验证的公共契约;如无则写“无”
137
+ - ** 参考**: ADR-XXX 或 System Design 章节(如有)
138
+ - **验收标准**:
139
+ - Given [前置条件]
140
+ - When [执行动作]
141
+ - Then [预期结果]
142
+ - (仅纯技术性基础任务允许使用清晰 Done When 列表)
143
+ - **验证类型**: 单元测试 | 集成测试 | E2E测试 | 冒烟测试 | 回归测试 | 手动验证 | 编译检查 | Lint检查
144
+ - **验证说明**: 如何确认任务完成 (检查什么,如何确认)
145
+ - **估时**: 预估工时(如: 2h, 6h, 1d, 2d)
146
+ - **依赖**: T{X}.{Y}.{Z} (依赖的Task ID)
147
+ - **优先级**: P0 | P1 | P2
148
+ ```
149
+
150
+ **示例**:
151
+
152
+ ```markdown
153
+ - [ ] **T1.1.1** [基础]: 设置 Vite + React 项目
154
+ - **描述**: 初始化前端项目,配置Vite、React、TypeScript
155
+ - **输入**: PRD (React技术栈要求)
156
+ - **输出**: 可运行的Hello World应用 (`src/App.tsx`, `vite.config.ts`)
157
+ - **验收标准**:
158
+ - [ ] `npm run dev` 正常启动
159
+ - [ ] 页面显示"Hello World"
160
+ - [ ] TypeScript类型检查通过
161
+ - **验证类型**: 编译检查
162
+ - **估时**: 2h
163
+ - **依赖**:
164
+ - **优先级**: P0
165
+ ```
166
+
167
+ ### 验证类型选择逻辑
168
+
169
+ > [!IMPORTANT]
170
+ > **如果 Workflow 未给出更具体约束,按以下默认顺序决策:**
171
+
172
+ 1. **局部逻辑 / 纯算法 / 数据变换** → 单元测试
173
+ 2. **跨模块 / 接口 / 数据库 / 多服务协作** → 集成测试
174
+ 3. **直接面向终端用户的关键路径** → E2E测试 或 手动验证
175
+ 4. **Sprint 退出标准 / 里程碑 gate** → 冒烟测试
176
+ 5. **修改可能影响已完成关键能力** → 回归测试
177
+ 6. **配置、脚手架、基础设施** → 编译检查 / Lint检查 / 手动验证
178
+
179
+ **选择细则**:
180
+
181
+ - 不要因为任务“看起来重要”就默认选择 E2E测试
182
+ - 如果集成测试足以证明任务完成,就不要升级为 E2E测试
183
+ - 如果只是里程碑 readiness 检查,优先使用少量冒烟测试,而不是新建大量 E2E任务
184
+ - 如果只是验证旧能力未被破坏,优先复用已有测试集合作为回归测试
185
+
186
+ ### 契约风险覆盖规则
187
+
188
+ > [!IMPORTANT]
189
+ > **若任务产出包含新的公共契约或会修改现有公共契约,必须为其分配明确验证承接。**
190
+
191
+ 公共契约至少包括:
192
+
193
+ - 操作契约
194
+ - 跨系统接口
195
+ - HTTP API
196
+ - CLI 命令 / 参数语义
197
+ - 配置结构 / 文件格式 / 状态格式
198
+ - 错误语义 / 返回结构
199
+ - 持久化结构
200
+
201
+ 规则:
202
+
203
+ - 每个公共契约至少要有一个实现任务承接
204
+ - 每个高风险公共契约至少要有一个验证承接点
205
+ - 不得仅以“实现任务已有代码变更”视为契约闭合
206
+ - 若契约属于基础规则层或低依赖纯逻辑,应优先补充单元测试,而不是直接升级为 E2E
207
+
208
+ ### 基础单测优先原则
209
+
210
+ > [!IMPORTANT]
211
+ > **对 registry、manifest、parser、planner、schema、diff、merge、normalizer、selector 等基础逻辑,优先生成单元测试任务。**
212
+
213
+ - 如果这些逻辑是多个上层流程共享的基础设施,其单元测试默认视为必选,不应依赖高层流程测试间接覆盖
214
+ - 如果一个 Sprint 新增了多个基础逻辑点,优先在同 Sprint 或紧邻 Sprint 内生成对应单测任务,不要全部拖到收尾期
215
+
216
+ ### Sprint 与冒烟测试绑定规则
217
+
218
+ > [!IMPORTANT]
219
+ > **只有在 Workflow 已提供 Sprint 路线图 / INT 任务语义时,才应生成里程碑级冒烟测试。**
220
+
221
+ - 如果上游 Workflow 已定义 `INT-S{N}`,则将冒烟测试优先绑定到这些 INT 任务
222
+ - 不要为每个普通 Level 3 开发任务单独生成冒烟测试
223
+ - 若没有明确 Sprint / 里程碑边界,则优先退回单元测试、集成测试、手动验证,而不是滥造冒烟任务
224
+
225
+ ### 接口追溯规则
226
+
227
+ > [!IMPORTANT]
228
+ > **任务间的输入/输出必须对齐。**
229
+ >
230
+ > 如果任务 B 依赖任务 A,则 B 的「输入」必须明确引用 A 的「输出」的具体产物(文件路径、接口名、数据格式)。
231
+ >
232
+ > - 好: B 输入 = “T1.1.1 产出的 `App.tsx` 组件 + `vite.config.ts` 配置”
233
+ > - 差: B 输入 = “前端项目”
234
+
235
+ ---
236
+
237
+ ## 任务元数据完整性
238
+
239
+ ### 必需字段
240
+
241
+
242
+ | 字段 | 格式 | 说明 | 示例 |
243
+ | ------------- | ----------------------- | ---------------- | -------------- |
244
+ | **ID** | T{System}.{Phase}.{Seq} | 唯一标识符 | T1.2.3 |
245
+ | **[REQ-XXX]** | [REQ-001] 或 [基础] | 关联PRD需求或类型 | [REQ-001] |
246
+ | **描述** | 简洁的动词短语 | "做什么",不是"怎么做" | 实现LoginForm组件 |
247
+ | **输入** | 前置条件列表 | 需要什么才能开始 | PRD, 设计稿 |
248
+ | **输出** | 交付物列表 | 产出什么 | LoginForm.tsx |
249
+ | **验收标准** | [ ] 列表 | Done When清单 | [ ] 组件渲染正常 |
250
+ | **估时** | h, d, w | 预估工时 | 4h, 2d, 1w |
251
+ | **依赖** | Task ID列表 | 依赖哪些Task | T1.1.1, T2.1.2 |
252
+ | **优先级** | P0, P1, P2 | Must/Should/Nice | P0 |
253
+
254
+
255
+ ---
256
+
257
+ ### 可选字段
258
+
259
+
260
+ | 字段 | 说明 | 示例 |
261
+ | ------- | ------ | ------------------ |
262
+ | **负责人** | 建议的负责人 | @frontend-dev |
263
+ | **风险** | 潜在风险 | 依赖外部API,可能不稳定 |
264
+ | **备注** | 额外说明 | 参考System Design第5章 |
265
+
266
+
267
+ ---
268
+
269
+ ## 依赖关系类型
270
+
271
+ ### 1. 逻辑依赖 (Logical Dependency)
272
+
273
+ **定义**: 技术上必须的先后顺序
274
+
275
+ **示例**:
276
+
277
+ ```
278
+ T3.1.1 (数据库Schema) → T2.2.1 (后端API实现)
279
+ T2.2.1 (后端API实现) → T1.2.1 (前端组件消费API)
280
+ ```
281
+
282
+ **如何识别**: 问"如果A没完成,B能开始吗?"
283
+
284
+ ---
285
+
286
+ ### 2. 资源依赖 (Resource Dependency)
287
+
288
+ **定义**: 共享资源导致的依赖
289
+
290
+ **示例**:
291
+
292
+ ```
293
+ T1.2.1 T1.2.2 由同一个开发者负责
294
+ → 必须串行执行(资源依赖)
295
+ ```
296
+
297
+ **如何识别**: 问"A和B能否由不同人并行执行?"
298
+
299
+ ---
300
+
301
+ ### 3. 偏好依赖 (Preference Dependency)
302
+
303
+ **定义**: 最佳实践建议的顺序(技术上可以并行)
304
+
305
+ **示例**:
306
+
307
+ ```
308
+ T1.2.1 (前端UI设计) → T2.2.1 (后端API实现)
309
+ 虽然可以并行,但先有UI设计更好
310
+ ```
311
+
312
+ **如何识别**: 问"虽然可以并行,但有推荐顺序吗?"
313
+
314
+ ---
315
+
316
+ ## 任务拆分原则
317
+
318
+ ### 原则1: 2h-2d 规则
319
+
320
+ **规则**: 单个 Task 应优先落在 2 小时到 2 天内;超过 2 天应继续拆分。
321
+
322
+ **为什么?**
323
+
324
+ - 太大: 难以估时、风险不可控
325
+ - 太小: 管理成本高、碎片化
326
+
327
+ **检查**:
328
+
329
+ - Task估时 > 2天 继续拆分
330
+ - Task估时 < 2小时 → 考虑合并
331
+
332
+ ---
333
+
334
+ ### 原则2: 单一交付物
335
+
336
+ **规则**: 每个Task应该产出一个可验证的交付物。
337
+
338
+ **示例**:
339
+
340
+ - 好: "实现LoginForm组件" → 交付物: LoginForm.tsx
341
+ - 差: "做前端" → 交付物不明确
342
+
343
+ ---
344
+
345
+ ### 原则3: Git-Friendly
346
+
347
+ **规则**: 每个Task应该对应一个可审查的PR。
348
+
349
+ **示例**:
350
+
351
+ - 好: Task完成 = 1个PR(~200-500行代码)
352
+ - 差: Task完成 = 10个PR
353
+
354
+ ---
355
+
356
+ ### 原则4: 可验证性
357
+
358
+ **规则**: 每个 Task 必须有明确、可执行、可观察的验收标准;默认使用 Given / When / Then,纯技术性基础任务可使用清晰 Done When。
359
+
360
+ **示例**:
361
+
362
+ - 好: "Given 合法输入, When 调用接口, Then 返回 200 且结构符合契约"
363
+ - 好: "[ ] 单元测试通过(仅用于纯技术性基础任务)"
364
+ - 差: "Done When: 差不多完成了"
365
+
366
+ ---
367
+
368
+ ## 任务规划守则
369
+
370
+ ### 守则1: 追溯链完整
371
+
372
+ **规则**: 每个Task必须关联PRD需求 [REQ-XXX]
373
+
374
+ **为什么?** 确保所有实现都有需求依据,避免过度设计。
375
+
376
+ **示例**:
377
+
378
+ ```markdown
379
+ - [ ] **T2.2.1** [REQ-001]: 实现 POST /auth/login 端点
380
+ ```
381
+
382
+ **检查**:
383
+
384
+ - 所有PRD需求是否都映射到了至少一个Task?
385
+ - 所有Task是否都关联了PRD需求?
386
+
387
+ ---
388
+
389
+ ### 守则2: 验收标准具体化
390
+
391
+ **规则**: 默认使用 Given / When / Then;仅当纯技术性基础任务不适合 GWT 时,才退回清晰的 Done When。
392
+
393
+ **好的验收标准**:
394
+
395
+ - Given 输入合法, When 调用接口, Then 返回 200 且结构符合契约
396
+ - Given 非法凭证, When 请求登录, Then 返回 401 且错误语义一致
397
+ - 单元测试通过(仅用于纯技术性基础任务)
398
+ - Lint无错误(仅用于纯技术性基础任务)
399
+
400
+ **差的验收标准**:
401
+
402
+ - 功能正常(太模糊)
403
+ - 代码写完了(无法验证)
404
+
405
+ ---
406
+
407
+ ### 守则3: 依赖关系可视化
408
+
409
+ **规则**: 必须提供Mermaid依赖图。
410
+
411
+ **示例**:
412
+
413
+ ```mermaid
414
+ graph TD
415
+ T1.1.1[前端项目初始化] --> T1.2.1[实现LoginForm]
416
+ T2.1.1[后端项目初始化] --> T2.2.1[实现/auth/login]
417
+ T3.1.1[数据库Schema] --> T2.2.1
418
+ T2.2.1 --> T1.2.1
419
+ ```
420
+
421
+
422
+
423
+ **为什么?** 一图胜千言,帮助理解任务顺序。
424
+
425
+ ---
426
+
427
+ ### 守则4: 估时保守
428
+
429
+ **规则**: 估时应该偏保守,包含测试和文档时间。
430
+
431
+ **估时公式**:
432
+
433
+ ```
434
+ 总估时 = 开发时间 × 1.5 + 测试时间 + 文档时间
435
+ ```
436
+
437
+ **示例**:
438
+
439
+ - 开发: 4h
440
+ - 测试: 1h
441
+ - 文档: 0.5h
442
+ - **总估时**: 4 × 1.5 + 1 + 0.5 = 7.5h → 向上取整为 **1d**
443
+
444
+ ---
445
+
446
+ ## 工具箱
447
+
448
+ > **输出路径**: 任务清单应保存到 `.anws/v{N}/05_TASKS.md`,由调用方 (blueprint workflow) 指定具体的 `v{N}` 版本号。
449
+
450
+ ### 工具1: Tasks模板
451
+
452
+ 使用WBS三级层次结构组织任务。
453
+
454
+ **模板**:
455
+
456
+ ```markdown
457
+ # 任务清单 (Task List)
458
+
459
+ ## 依赖图总览
460
+ [Mermaid依赖图]
461
+
462
+ ## System 1: [System Name]
463
+
464
+ ### Phase 1: Foundation
465
+ [Tasks列表]
466
+
467
+ ### Phase 2: Core
468
+ [Tasks列表]
469
+
470
+ ...
471
+ ```
472
+
473
+ ---
474
+
475
+ ### 工具2: 依赖分析Checklist
476
+
477
+ 在拆分任务后,使用此Checklist分析依赖:
478
+
479
+ - 识别所有逻辑依赖(A必须在B之前)
480
+ - 识别资源依赖(同一人负责的任务)
481
+ - 识别偏好依赖(推荐顺序)
482
+ - 找出可并行的任务(标记[P])
483
+ - 绘制Mermaid依赖图
484
+
485
+ ---
486
+
487
+ ### 工具3: 任务粒度检查表
488
+
489
+
490
+ | 检查项 | 标准 | 如何修正 |
491
+ | ---- | -------- | ------------ |
492
+ | 估时 | 2h-2d | 过大→拆分, 过小→合并 |
493
+ | 交付物 | 单一明确 | 多个→拆分为多个Task |
494
+ | 验收标准 | 3-5条具体标准 | 模糊→细化为可测试条件 |
495
+ | 依赖 | < 5个依赖 | 过多→重新组织Phase |
496
+
497
+
498
+ ---
499
+
500
+ ## Sprint 退出标准与集成验证任务
501
+
502
+ ### Sprint 退出标准
503
+
504
+ > [!IMPORTANT]
505
+ > **每个 Sprint/里程碑必须有明确的退出标准。**
506
+ >
507
+ > 退出标准定义"什么算做完",它不是模糊的"任务都打勾了",而是**可演示、可验证的具体状态**。
508
+
509
+ **Sprint 路线图格式**:
510
+
511
+ ```markdown
512
+ | Sprint | 代号 | 核心任务 | 退出标准 | 预估 |
513
+ |--------|------|---------|---------|------|
514
+ | S1 | Hello World | 基础设施+数据 | headless 运行 2 国 5 回合 + 基本渲染可见 | 3-4d |
515
+ | S2 | 功能成型 | 实体+交互 | 完整功能可演示 + HUD 显示资源 | 5-6d |
516
+ ```
517
+
518
+ **退出标准要求**:
519
+
520
+ - 必须是可客观验证的(可截图/录屏/日志证明)
521
+ - 必须涵盖跨系统集成(而非单个组件)
522
+ - 描述用户/开发者能观察到的行为,而非内部实现细节
523
+
524
+ ### 集成验证任务 (INT Task)
525
+
526
+ 每个 Sprint 末尾生成一个 **INT-S{N}** 任务,专门验证退出标准:
527
+
528
+ ```markdown
529
+ - [ ] **INT-S{N}** [MILESTONE]: S{N} 集成验证 — {代号}
530
+ - **描述**: 验证 S{N} 退出标准
531
+ - **输入**: S{N} 所有任务的产出
532
+ - **输出**: 集成验证报告(通过/失败 + Bug 清单)
533
+ - **验收标准**:
534
+ - Given S{N} 所有任务已完成
535
+ - When 逐条执行退出标准中的检查
536
+ - Then 全部通过 → Sprint 完成; 有失败 → 记录 Bug
537
+ - **验证说明**: 按退出标准逐条执行,截图/录屏/日志确认
538
+ - **估时**: 2-4h
539
+ - **依赖**: S{N} 最后一个任务
540
+ ```
541
+
542
+ INT 任务是该 Sprint 的"关门任务"。**未通过 INT 任务的 Sprint 不得标记为完成。**
543
+
544
+ ---
545
+
546
+ ## 常见场景与模式
547
+
548
+ ### 场景1: 新功能开发
549
+
550
+ **特征**: 实现一个新的User Story
551
+
552
+ **拆分模式**:
553
+
554
+ ```
555
+ Phase 1: 数据层 (Database)
556
+ - T3.1.1: 设计Schema
557
+ - T3.1.2: 创建Migration
558
+
559
+ Phase 2: 业务层 (Backend)
560
+ - T2.2.1: 实现API端点
561
+ - T2.2.2: 单元测试
562
+
563
+ Phase 3: 表现层 (Frontend)
564
+ - T1.3.1: 实现UI组件
565
+ - T1.3.2: 集成API
566
+
567
+ Phase 4: 验证
568
+ - T99.1: E2E测试
569
+ ```
570
+
571
+ ---
572
+
573
+ ### 场景2: 性能优化
574
+
575
+ **特征**: 优化现有功能的性能
576
+
577
+ **拆分模式**:
578
+
579
+ ```
580
+ Phase 1: 分析 (Profiling)
581
+ - T1.1: 性能基准测试
582
+ - T1.2: 识别瓶颈
583
+
584
+ Phase 2: 优化 (Optimization)
585
+ - T2.1: 添加缓存
586
+ - T2.2: 优化数据库查询
587
+
588
+ Phase 3: 验证 (Validation)
589
+ - T3.1: 性能对比测试
590
+ ```
591
+
592
+ ---
593
+
594
+ ### 场景3: Bug修复
595
+
596
+ **特征**: 修复已知缺陷
597
+
598
+ **拆分模式**:
599
+
600
+ ```
601
+ Phase 1: 复现 (Reproduction)
602
+ - T1.1: 编写复现步骤
603
+ - T1.2: 创建失败的测试用例
604
+
605
+ Phase 2: 修复 (Fix)
606
+ - T2.1: 实现修复
607
+ - T2.2: 测试用例通过
608
+
609
+ Phase 3: 回归测试 (Regression)
610
+ - T3.1: 确保未引入新Bug
611
+ ```
612
+
613
+ ---
614
+
615
+ ## 质量检查清单
616
+
617
+ 完成任务拆解后,使用此清单自检:
618
+
619
+ ### 结构完整性
620
+
621
+ - 使用WBS三级层次(System Phase → Task)
622
+ - 每个System有清晰的Phase划分
623
+ - 每个Task有完整的元数据
624
+
625
+ ### 任务质量
626
+
627
+ - 每个Task估时 2h-2d
628
+ - 每个Task有3-5条验收标准
629
+ - 每个Task关联PRD需求 [REQ-XXX]
630
+ - 每个Task描述清晰("做什么")
631
+
632
+ ### 依赖关系
633
+
634
+ - 提供Mermaid依赖图
635
+ - 标注逻辑依赖、资源依赖、偏好依赖
636
+ - 无循环依赖
637
+ - 识别可并行任务
638
+
639
+ ### 追溯链
640
+
641
+ - 所有PRD需求映射到至少一个Task
642
+ - 所有Task关联PRD需求或标注为[基础]
643
+ - 跨系统集成任务已识别
644
+
645
+ ### User Story 覆盖
646
+
647
+ - 每个 US-XXX 有足够的 tasks 覆盖其所有涉及系统
648
+ - 每个 US 的 task 链能形成可独立验证的闭环
649
+ - 高优先级 US (P0) 的 task 分布在靠前的 Sprint
650
+
651
+ ---
652
+
653
+ ## 快速上手示例
654
+
655
+ **任务**: 为"用户登录"功能拆解任务
656
+
657
+ **Step 1: 确定涉及的系统**
658
+
659
+ - Frontend System, Backend API System, Database System
660
+
661
+ **Step 2: 按Phase组织**
662
+
663
+ ```
664
+ Database System:
665
+ Phase 1: Foundation
666
+ - T3.1.1: 创建users表Schema
667
+
668
+ Backend API System:
669
+ Phase 2: Core
670
+ - T2.2.1: 实现 POST /auth/login
671
+ - T2.2.2: 单元测试
672
+
673
+ Frontend System:
674
+ Phase 2: Core
675
+ - T1.2.1: 实现LoginForm组件
676
+ - T1.2.2: 集成/auth/login API
677
+ ```
678
+
679
+ **Step 3: 分析依赖**
680
+
681
+ ```
682
+ T3.1.1 → T2.2.1 → T1.2.1 (逻辑依赖)
683
+ ```
684
+
685
+ **Step 4: 定义验收标准**
686
+
687
+ ```
688
+ T2.2.1验收:
689
+ - [ ] API返回JWT Token
690
+ - [ ] 单元测试通过
691
+ - [ ] Postman测试成功
692
+ ```
693
+
694
+ ---
695
+
696
+ **记住**: 好的任务拆解是平衡的艺术。
697
+ 不要过度拆分(管理成本高),也不要过度聚合(风险不可控)。
698
+
699
+ Happy Planning!