@haaaiawd/anws 2.2.4 → 2.2.6
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/README.md +21 -26
- package/lib/manifest.js +2 -1
- package/package.json +1 -1
- package/templates/.agents/skills/anws-system/SKILL.md +108 -108
- package/templates/.agents/skills/code-reviewer/SKILL.md +8 -7
- package/templates/.agents/skills/e2e-testing-guide/SKILL.md +134 -135
- package/templates/.agents/skills/task-planner/SKILL.md +253 -699
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE_05A.md +163 -0
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE_05B.md +175 -0
- package/templates/.agents/skills/task-reviewer/SKILL.md +6 -6
- package/templates/.agents/workflows/blueprint.md +44 -358
- package/templates/.agents/workflows/challenge.md +40 -37
- package/templates/.agents/workflows/change.md +339 -346
- package/templates/.agents/workflows/craft.md +5 -12
- package/templates/.agents/workflows/design-system.md +674 -631
- package/templates/.agents/workflows/explore.md +399 -400
- package/templates/.agents/workflows/forge.md +90 -99
- package/templates/.agents/workflows/genesis.md +351 -353
- package/templates/.agents/workflows/probe.md +241 -243
- package/templates/.agents/workflows/quickstart.md +123 -123
- package/templates/.agents/workflows/upgrade.md +1 -11
- package/templates/AGENTS.md +149 -149
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +0 -214
|
@@ -1,699 +1,253 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
description: 使用WBS
|
|
5
|
-
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
20
|
-
4.
|
|
21
|
-
5.
|
|
22
|
-
6.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
>
|
|
46
|
-
>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
###
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
>
|
|
233
|
-
>
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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!
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: task-planner
|
|
4
|
+
description: 使用 WBS 将系统设计文档分解为执行主清单(05A_TASKS.md)与验证计划(05B_VERIFICATION_PLAN.md),支持依赖分析、验证追溯与证据定义。
|
|
5
|
+
|
|
6
|
+
# Task Planner
|
|
7
|
+
|
|
8
|
+
你是任务拆解与验证编排技能,目标是输出两份文档:
|
|
9
|
+
|
|
10
|
+
- `.anws/v{N}/05A_TASKS.md`(执行主清单)
|
|
11
|
+
- `.anws/v{N}/05B_VERIFICATION_PLAN.md`(验证计划)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 快速流程
|
|
16
|
+
|
|
17
|
+
1. 读取 `01_PRD.md`、`02_ARCHITECTURE_OVERVIEW.md`
|
|
18
|
+
2. 读取 `03_ADR/` 与 `04_SYSTEM_DESIGN/`(如存在)
|
|
19
|
+
3. 若 ADR 中存在测试策略/质量门禁,必须优先遵循,不得自行改重
|
|
20
|
+
4. 提取公共契约(HTTP API / CLI / 配置 / 错误语义 / 数据结构等)
|
|
21
|
+
5. 生成 WBS 任务(System → Phase → Task)到 `05A`
|
|
22
|
+
6. 为每个任务生成验证锚点与证据要求到 `05B`
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 分轨职责
|
|
27
|
+
|
|
28
|
+
### 05A_TASKS.md(执行主清单)
|
|
29
|
+
|
|
30
|
+
- WBS 任务列表与依赖
|
|
31
|
+
- Sprint 路线图
|
|
32
|
+
- INT 里程碑任务
|
|
33
|
+
- 进度 checkbox
|
|
34
|
+
- User Story Overlay
|
|
35
|
+
|
|
36
|
+
### 05B_VERIFICATION_PLAN.md(验证计划)
|
|
37
|
+
|
|
38
|
+
- 验证分层策略
|
|
39
|
+
- 风险类别覆盖规则
|
|
40
|
+
- Task-by-Task 验证计划
|
|
41
|
+
- Contract Coverage Overlay
|
|
42
|
+
- Testing Coverage Overlay
|
|
43
|
+
- Verification Traceability Matrix
|
|
44
|
+
|
|
45
|
+
> [!IMPORTANT]
|
|
46
|
+
> 上述三项为 05B 的硬性必选章节,不可删除:
|
|
47
|
+
>
|
|
48
|
+
> - Contract Coverage Overlay
|
|
49
|
+
> - Testing Coverage Overlay
|
|
50
|
+
> - Verification Traceability Matrix
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 任务格式(05A)
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
- [ ] **T{System}.{Phase}.{Seq}** [REQ-XXX]: 任务标题
|
|
58
|
+
- **描述**: 做什么(不是怎么做)
|
|
59
|
+
- **输入**: 设计文档引用 + 前置任务产出(必须包含至少一个文档引用)
|
|
60
|
+
- **输出**: 产出的文件/组件/接口
|
|
61
|
+
- **契约承接**: 本任务实现或验证的公共契约;如无则写"无"
|
|
62
|
+
- **参考**: ADR-XXX 或 System Design 章节(如有)
|
|
63
|
+
- **验收标准**:
|
|
64
|
+
- Given [前置条件]
|
|
65
|
+
- When [执行动作]
|
|
66
|
+
- Then [预期结果]
|
|
67
|
+
- (仅纯技术性基础任务允许使用清晰 Done When 列表)
|
|
68
|
+
- **验证类型**: 单元测试 | API接口功能测试 | 集成测试 | E2E测试 | 冒烟测试 | 回归测试 | 手动验证 | 编译检查 | Lint检查
|
|
69
|
+
- **验证摘要**: 验证目标与边界(不展开完整用例)
|
|
70
|
+
- **验证引用**: `05B_VERIFICATION_PLAN.md#t-x-y-z`
|
|
71
|
+
- **证据产出**: `tests/...`, `reports/...`, `screenshots/...`, `logs/...`
|
|
72
|
+
- **估时**: Xh
|
|
73
|
+
- **依赖**: T{A}.{B}.{C}
|
|
74
|
+
- **优先级**: P0 | P1 | P2
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 验证格式(05B)
|
|
80
|
+
|
|
81
|
+
### Task-by-Task 条目
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
### T{X}.{Y}.{Z}
|
|
85
|
+
- 关联需求:
|
|
86
|
+
- 关联契约:
|
|
87
|
+
- 风险类别:
|
|
88
|
+
- 单元测试覆盖:
|
|
89
|
+
- API接口功能测试覆盖:
|
|
90
|
+
- 集成/E2E/冒烟覆盖:
|
|
91
|
+
- 前置数据:
|
|
92
|
+
- 断言:
|
|
93
|
+
- 证据:
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 追溯矩阵
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
## Verification Traceability Matrix
|
|
100
|
+
| REQ/Contract | Task | Verification | Test Material | Evidence | Status |
|
|
101
|
+
|---|---|---|---|---|---|
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 验证类型选择逻辑
|
|
107
|
+
|
|
108
|
+
按"最轻但足够"原则:
|
|
109
|
+
|
|
110
|
+
1. 局部逻辑 / 纯算法 / 状态转换 / 异常处理 → 单元测试
|
|
111
|
+
2. HTTP API / CLI API / 权限边界 / 错误语义 / 数据变更接口 → API接口功能测试
|
|
112
|
+
3. 跨模块 / 数据库 / 多服务协作 → 集成测试
|
|
113
|
+
4. 直接面向终端用户的关键路径 → E2E测试 或 手动验证
|
|
114
|
+
5. Sprint 退出关口 / 里程碑 gate → 冒烟测试(优先绑定 `INT-S{N}`)
|
|
115
|
+
6. 修改可能影响已完成关键能力 → 回归测试
|
|
116
|
+
7. 配置/脚手架/基础设施 → 编译检查 / Lint检查 / 手动验证
|
|
117
|
+
|
|
118
|
+
**选择细则**:
|
|
119
|
+
|
|
120
|
+
- 不要因为任务"看起来重要"就默认选择 E2E测试
|
|
121
|
+
- 任务暴露或修改对外 API → 必须明确正常请求/代表性异常请求/错误语义如何验证
|
|
122
|
+
- 涉及数据变更接口 → 验证说明必须包含 before/after 断言
|
|
123
|
+
- 涉及鉴权/角色/权限边界 → 验证说明必须包含权限不足场景
|
|
124
|
+
|
|
125
|
+
### E2E 执行边界(强约束)
|
|
126
|
+
|
|
127
|
+
- `task-planner` 只负责在 `05A_TASKS.md` / `05B_VERIFICATION_PLAN.md` 记录 E2E 触发设想、覆盖范围和证据预期
|
|
128
|
+
- 规划阶段不得调用或执行 `e2e-testing-guide`
|
|
129
|
+
- 实际 E2E 指南生成与实机验证由 `/forge` 根据任务触发执行
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 测试标准(硬约束)
|
|
134
|
+
|
|
135
|
+
> [!IMPORTANT]
|
|
136
|
+
> **项目验收必须同时包含单元测试与 API 接口功能测试。**
|
|
137
|
+
|
|
138
|
+
### 单元测试内容要求
|
|
139
|
+
|
|
140
|
+
- **核心业务计算逻辑**: 正常输入、边界输入、非法输入,验证处理结果符合预期
|
|
141
|
+
- **关键状态转换逻辑**: 创建、执行、失败、重试等状态分别规划用例
|
|
142
|
+
- **异常处理逻辑**: 构造空值、超范围参数、非法状态,验证错误信息正确且系统稳定
|
|
143
|
+
|
|
144
|
+
### API接口功能测试内容要求
|
|
145
|
+
|
|
146
|
+
- **核心业务接口**: 正常请求参数下返回正确响应
|
|
147
|
+
- **异常请求场景**: 参数缺失、参数格式错误、权限不足,验证错误码和错误信息符合接口设计规范
|
|
148
|
+
- **数据变更接口**: 验证调用前后系统状态或数据结果正确(before/after 断言)
|
|
149
|
+
|
|
150
|
+
### 反测试膨胀原则
|
|
151
|
+
|
|
152
|
+
- 目标是**风险类别闭合**,不是测试数量最大化
|
|
153
|
+
- 优先等价类划分、边界值、代表性错误样本、参数化测试或表驱动测试
|
|
154
|
+
- 禁止全组合笛卡尔积枚举
|
|
155
|
+
- 单元测试负责细粒度逻辑,API接口功能测试负责对外契约,E2E 只保留关键用户链路
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 契约覆盖规则
|
|
160
|
+
|
|
161
|
+
> [!IMPORTANT]
|
|
162
|
+
> **若任务产出包含或修改公共契约,必须为其分配明确验证承接。**
|
|
163
|
+
|
|
164
|
+
公共契约至少包括:操作契约、跨系统接口、HTTP API、CLI 命令/参数语义、配置结构、文件格式、错误语义、持久化结构。
|
|
165
|
+
|
|
166
|
+
规则:
|
|
167
|
+
|
|
168
|
+
- 每个公共契约至少有一个实现任务承接
|
|
169
|
+
- 每个高风险公共契约至少有一个验证承接点
|
|
170
|
+
- 不得仅以"实现任务有代码变更"视为契约闭合
|
|
171
|
+
- 基础规则层/低依赖纯逻辑 → 优先单元测试
|
|
172
|
+
- HTTP API / CLI API / 对外接口 → 优先 API接口功能测试
|
|
173
|
+
- 错误码/错误信息/权限不足语义/数据变更前后状态 → 属于可观察契约,不得遗漏
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## WBS 方法
|
|
178
|
+
|
|
179
|
+
### 三级层次
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
Level 1: System(系统级) ← 来自 Architecture Overview 的系统清单
|
|
183
|
+
Level 2: Phase(阶段级) ← Foundation / Core / Integration / Polish
|
|
184
|
+
Level 3: Task(任务级) ← 2h–2d 粒度的具体任务
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Sprint 路线图格式
|
|
188
|
+
|
|
189
|
+
```markdown
|
|
190
|
+
## Sprint 路线图
|
|
191
|
+
|
|
192
|
+
| Sprint | 代号 | 核心任务 | 退出标准 | 预估 |
|
|
193
|
+
|--------|------|---------|---------|------|
|
|
194
|
+
| S1 | Hello World | 基础设施 + 核心数据 | headless 运行通过 + 基本渲染可见 | 3-4d |
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
退出标准要求:
|
|
198
|
+
|
|
199
|
+
- 可客观验证(截图/录屏/日志)
|
|
200
|
+
- 描述用户或开发者能观察到的行为
|
|
201
|
+
- 涵盖跨系统集成
|
|
202
|
+
|
|
203
|
+
### 集成验证任务 (INT-S{N})
|
|
204
|
+
|
|
205
|
+
```markdown
|
|
206
|
+
- [ ] **INT-S{N}** [MILESTONE]: S{N} 集成验证 — {代号}
|
|
207
|
+
- **描述**: 验证 S{N} 退出标准
|
|
208
|
+
- **输入**: S{N} 所有任务的产出
|
|
209
|
+
- **输出**: 集成验证报告(通过/失败 + Bug 清单)
|
|
210
|
+
- **验收标准**:
|
|
211
|
+
- Given S{N} 所有任务已完成
|
|
212
|
+
- When 逐条执行退出标准中的检查
|
|
213
|
+
- Then 全部通过 → Sprint 完成; 有失败 → 记录 Bug
|
|
214
|
+
- **验证说明**: 按退出标准逐条执行,截图/录屏/日志确认
|
|
215
|
+
- **估时**: 2-4h
|
|
216
|
+
- **依赖**: S{N} 最后一个任务
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
INT 任务是该 Sprint 的"关门任务"。**未通过 INT 任务的 Sprint 不得标记为完成。**
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## 任务质量守则
|
|
224
|
+
|
|
225
|
+
### 粒度
|
|
226
|
+
|
|
227
|
+
- 单个 Task 优先落在 2h–2d;超过 2d 应继续拆分
|
|
228
|
+
- 太小(< 2h)考虑合并
|
|
229
|
+
|
|
230
|
+
### 输入/输出追溯
|
|
231
|
+
|
|
232
|
+
> [!IMPORTANT]
|
|
233
|
+
> **任务间的输入/输出必须对齐。**
|
|
234
|
+
>
|
|
235
|
+
> 如果 Task B 依赖 Task A,则 B 的「输入」必须明确引用 A 的「输出」的具体产物(文件路径、接口名、数据格式)。
|
|
236
|
+
|
|
237
|
+
### 验收标准
|
|
238
|
+
|
|
239
|
+
- 默认使用 Given / When / Then
|
|
240
|
+
- 仅纯技术性基础任务(配置、脚手架)允许清晰 Done When 列表
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 输出质量检查
|
|
245
|
+
|
|
246
|
+
- `05A` 与 `05B` 已同时生成
|
|
247
|
+
- 每个 05A 任务都包含 `验证引用` 与 `证据产出`
|
|
248
|
+
- `05B` 含 Task-by-Task 计划与追溯矩阵
|
|
249
|
+
- User Story Overlay 在 `05A`
|
|
250
|
+
- Contract Coverage Overlay、Testing Coverage Overlay、Verification Traceability Matrix 在 `05B`
|
|
251
|
+
- 冒烟测试优先绑定 `INT-S{N}`,未扩散到普通开发任务
|
|
252
|
+
- 未出现 E2E 测试滥用现象
|
|
253
|
+
|