@zeyue0329/xiaoma-cli 6.0.0-alpha.16 → 6.0.0-alpha.18
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.
|
@@ -6,6 +6,24 @@
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## 智能体命令快速参考
|
|
10
|
+
|
|
11
|
+
> **重要**: 本工作流通过唤醒专业智能体并执行其特定命令来完成各阶段任务。
|
|
12
|
+
|
|
13
|
+
### 智能体命令汇总表
|
|
14
|
+
|
|
15
|
+
| 智能体 | 唤醒命令 | 核心工作流命令 | 用途 |
|
|
16
|
+
|--------|---------|---------------|------|
|
|
17
|
+
| Mary (Analyst) | `/analyst` | `*product-brief`, `*research` | 需求分析、业务规则匹配 |
|
|
18
|
+
| John (PM) | `/pm` | `*create-prd`, `*create-epics-and-stories` | PRD 创建、史诗故事定义 |
|
|
19
|
+
| Winston (Architect) | `/architect` | `*create-architecture`, `*validate-architecture` | 架构设计、技术决策 |
|
|
20
|
+
| Bob (SM) | `/sm` | `*sprint-planning`, `*create-story` | Sprint 规划、故事准备 |
|
|
21
|
+
| Amelia (DEV) | `/dev` | `*develop-story`, `*code-review` | TDD 开发、代码审查 |
|
|
22
|
+
| Murat (TEA) | `/tea` | `*trace`, `*test-review`, `*nfr-assess` | 测试追溯、质量验证 |
|
|
23
|
+
| Phoenix (Orchestrator) | `/phoenix` | `*auto-iterate`, `*phase-*` | 全自动编排 |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
9
27
|
## 知识库集成
|
|
10
28
|
|
|
11
29
|
### 知识库配置
|
|
@@ -57,19 +75,20 @@ knowledge_base:
|
|
|
57
75
|
### 智能体工作流集成汇总
|
|
58
76
|
|
|
59
77
|
> **重要**: 本工作流严格遵循项目现有智能体的标准工作流,确保完全兼容。
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
| Phase
|
|
65
|
-
| Phase
|
|
66
|
-
| Phase
|
|
67
|
-
| Phase 4 | Bob (SM) | `*
|
|
68
|
-
| Phase 4 |
|
|
69
|
-
| Phase 4 |
|
|
70
|
-
| Phase
|
|
71
|
-
| Phase
|
|
72
|
-
| Phase 5 | Murat (TEA) | `*
|
|
78
|
+
> **关键变更**: Phase 4 现在包含完整的故事生命周期(包括测试验证),每个故事从创建到验证完成后才处理下一个故事。
|
|
79
|
+
|
|
80
|
+
| 阶段 | 集成智能体 | 调用的工作流 | 用途 | 故事状态 |
|
|
81
|
+
|------|-----------|-------------|------|----------|
|
|
82
|
+
| Phase 1 | Mary (Analyst) | 内置分析能力 | 需求分析、业务规则匹配 | - |
|
|
83
|
+
| Phase 2 | John (PM) | 内置 PRD 能力 | PRD 创建、史诗故事定义 | - |
|
|
84
|
+
| Phase 3 | Winston (Architect) | 内置架构能力 | 架构设计、技术决策 | - |
|
|
85
|
+
| Phase 4 Step 4.1 | Bob (SM) | `*sprint-planning` | 生成 sprint-status.yaml | - |
|
|
86
|
+
| Phase 4 STEP 1 | Bob (SM) | `*create-story` | 创建故事文件 | backlog→drafted |
|
|
87
|
+
| Phase 4 STEP 2 | Bob (SM) | `*validate-create-story` | 校验故事文件 | drafted→ready-for-dev |
|
|
88
|
+
| Phase 4 STEP 3 | Amelia (DEV) | `*develop-story` | TDD 开发 | ready-for-dev→in-progress |
|
|
89
|
+
| Phase 4 STEP 4 | Amelia (DEV) | `*code-review` | 代码审查 | in-progress→review |
|
|
90
|
+
| Phase 4 STEP 5 | Murat (TEA) | `*trace` + `*test-review` | 测试验证 | review→done |
|
|
91
|
+
| Phase 5 (可选) | Murat (TEA) | `*nfr-assess` | Sprint 最终报告 | - |
|
|
73
92
|
|
|
74
93
|
### 故事状态系统 (6状态流转)
|
|
75
94
|
|
|
@@ -84,13 +103,13 @@ backlog → drafted → ready-for-dev → in-progress → review → done
|
|
|
84
103
|
└─ 仅存在于 Epic 文件中
|
|
85
104
|
```
|
|
86
105
|
|
|
87
|
-
|
|
88
|
-
- `backlog → drafted`: SM `*create-story` 创建故事文件
|
|
89
|
-
- `drafted → ready-for-dev`:
|
|
90
|
-
- `ready-for-dev → in-progress`: DEV `*develop-story`
|
|
91
|
-
- `in-progress → review`: DEV `*
|
|
92
|
-
- `review → done`:
|
|
93
|
-
- `review → in-progress`:
|
|
106
|
+
**状态转换触发点 (完整故事生命周期)**:
|
|
107
|
+
- `backlog → drafted`: STEP 1 - SM `*create-story` 创建故事文件
|
|
108
|
+
- `drafted → ready-for-dev`: STEP 2 - SM `*validate-create-story` 验证通过
|
|
109
|
+
- `ready-for-dev → in-progress`: STEP 3 - DEV `*develop-story` 开始开发
|
|
110
|
+
- `in-progress → review`: STEP 4 - DEV `*code-review` 代码审查开始
|
|
111
|
+
- `review → done`: STEP 5 - TEA `*trace` + `*test-review` 测试验证通过
|
|
112
|
+
- `review → in-progress`: 代码审查或测试验证未通过 (返回修复)
|
|
94
113
|
|
|
95
114
|
```
|
|
96
115
|
┌─────────────────────────────────────────────────────────────────────────┐
|
|
@@ -121,20 +140,22 @@ backlog → drafted → ready-for-dev → in-progress → review → done
|
|
|
121
140
|
│ ├─ 创建数据模型设计 │
|
|
122
141
|
│ └─ 输出: 架构设计文档 + ADR │
|
|
123
142
|
├─────────────────────────────────────────────────────────────────────────┤
|
|
124
|
-
│ Phase 4:
|
|
125
|
-
│ ├─ Sprint 规划
|
|
126
|
-
│ ├─ For Each Story
|
|
127
|
-
│ │ ├─
|
|
128
|
-
│ │ ├─
|
|
129
|
-
│ │ ├─
|
|
130
|
-
│ │
|
|
131
|
-
│
|
|
143
|
+
│ Phase 4: 开发实现与测试验证 [SM + DEV + TEA 能力] │
|
|
144
|
+
│ ├─ Sprint 规划 (SM) │
|
|
145
|
+
│ ├─ 🔄 For Each Story 完整生命周期循环: │
|
|
146
|
+
│ │ ├─ STEP 1: 创建用户故事 (SM) │
|
|
147
|
+
│ │ ├─ STEP 2: 校验用户故事 (SM) │
|
|
148
|
+
│ │ ├─ STEP 3: 开发用户故事 (DEV - TDD) │
|
|
149
|
+
│ │ ├─ STEP 4: 代码审查 (DEV) │
|
|
150
|
+
│ │ ├─ STEP 5: 测试验证 (TEA - 追溯+质量检查) │
|
|
151
|
+
│ │ └─ ✅ 故事完成 → 开始下一个故事 │
|
|
152
|
+
│ └─ 输出: 实现的代码 + 测试 + 每个故事的验证报告 │
|
|
132
153
|
├─────────────────────────────────────────────────────────────────────────┤
|
|
133
|
-
│ Phase 5:
|
|
134
|
-
│ ├─
|
|
135
|
-
│ ├─
|
|
136
|
-
│ ├─
|
|
137
|
-
│ └─ 输出:
|
|
154
|
+
│ Phase 5: Sprint 收尾与最终报告 [TEA 能力] (可选) │
|
|
155
|
+
│ ├─ 生成 Sprint 完整追溯矩阵 │
|
|
156
|
+
│ ├─ 生成整体质量报告 │
|
|
157
|
+
│ ├─ NFR 综合验证 │
|
|
158
|
+
│ └─ 输出: 迭代完成报告 + 质量总结 │
|
|
138
159
|
├─────────────────────────────────────────────────────────────────────────┤
|
|
139
160
|
│ 输出 │
|
|
140
161
|
│ ├─ ✅ 完整的代码实现 │
|
|
@@ -237,20 +258,83 @@ confidence: "high"
|
|
|
237
258
|
|
|
238
259
|
**角色激活**: Analyst (需求分析师)
|
|
239
260
|
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
#### 🤖 智能体执行指令
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
267
|
+
│ Phase 1: 需求分析 │
|
|
268
|
+
│ 智能体: Mary (Analyst) │
|
|
269
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
270
|
+
│ │
|
|
271
|
+
│ Step 1.1: 唤醒 Analyst 智能体 │
|
|
272
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
273
|
+
│ │ 执行命令: /analyst ││
|
|
274
|
+
│ │ 说明: 唤醒业务分析师 Mary,准备进行需求分析工作 ││
|
|
275
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
276
|
+
│ │
|
|
277
|
+
│ Step 1.2: 执行产品简报/调研工作流 │
|
|
278
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
279
|
+
│ │ 执行命令: *product-brief ││
|
|
280
|
+
│ │ 说明: 基于迭代需求文档,创建结构化的产品简报 ││
|
|
281
|
+
│ │ 输入: 迭代需求文档内容 ││
|
|
282
|
+
│ │ 输出: product-brief.md ││
|
|
283
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
284
|
+
│ │
|
|
285
|
+
│ Step 1.3: (可选) 执行深度调研 │
|
|
286
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
287
|
+
│ │ 执行命令: *research ││
|
|
288
|
+
│ │ 说明: 针对复杂需求进行市场/竞品/技术调研 ││
|
|
289
|
+
│ │ 触发条件: 需求涉及新业务领域或技术栈 ││
|
|
290
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
291
|
+
│ │
|
|
292
|
+
│ Step 1.4: 生成需求分析报告 │
|
|
293
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
294
|
+
│ │ 基于 *product-brief 输出,整理为 requirement-analysis.md ││
|
|
295
|
+
│ │ 确保包含: 功能点清单、业务规则、隐含需求、约束和风险 ││
|
|
296
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
297
|
+
│ │
|
|
298
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**完整执行序列**:
|
|
302
|
+
```bash
|
|
303
|
+
# 1. 唤醒 Analyst 智能体
|
|
304
|
+
/analyst
|
|
305
|
+
|
|
306
|
+
# 2. 执行产品简报工作流
|
|
307
|
+
*product-brief
|
|
308
|
+
|
|
309
|
+
# 3. (可选) 执行深度调研
|
|
310
|
+
*research
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
240
315
|
**自动执行内容**:
|
|
241
316
|
|
|
242
317
|
```yaml
|
|
243
318
|
phase: 1
|
|
244
319
|
name: 需求分析
|
|
245
|
-
role: Analyst
|
|
320
|
+
role: Analyst (Mary)
|
|
321
|
+
agent_activation:
|
|
322
|
+
command: "/analyst"
|
|
323
|
+
workflows:
|
|
324
|
+
- trigger: "*product-brief"
|
|
325
|
+
purpose: "创建产品简报,提取核心需求"
|
|
326
|
+
- trigger: "*research"
|
|
327
|
+
purpose: "深度调研(可选)"
|
|
328
|
+
condition: "需求涉及新业务领域时执行"
|
|
246
329
|
inputs:
|
|
247
330
|
- 迭代需求文档
|
|
248
331
|
- 业务知识库
|
|
249
332
|
outputs:
|
|
250
|
-
- requirement-analysis.md
|
|
333
|
+
- requirement-analysis.md (基于 product-brief 整理)
|
|
251
334
|
|
|
252
335
|
tasks:
|
|
253
336
|
- name: 解析需求文档
|
|
337
|
+
agent_command: "/analyst → *product-brief"
|
|
254
338
|
action: |
|
|
255
339
|
1. 读取需求文档全文
|
|
256
340
|
2. 提取功能点列表
|
|
@@ -314,22 +398,94 @@ tasks:
|
|
|
314
398
|
|
|
315
399
|
**角色激活**: PM (产品经理) + PO (产品负责人)
|
|
316
400
|
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
#### 🤖 智能体执行指令
|
|
404
|
+
|
|
405
|
+
```
|
|
406
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
407
|
+
│ Phase 2: 需求规划 │
|
|
408
|
+
│ 智能体: John (PM) │
|
|
409
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
410
|
+
│ │
|
|
411
|
+
│ Step 2.1: 唤醒 PM 智能体 │
|
|
412
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
413
|
+
│ │ 执行命令: /pm ││
|
|
414
|
+
│ │ 说明: 唤醒产品经理 John,准备进行需求规划工作 ││
|
|
415
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
416
|
+
│ │
|
|
417
|
+
│ Step 2.2: 创建 PRD 文档 │
|
|
418
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
419
|
+
│ │ 执行命令: *create-prd ││
|
|
420
|
+
│ │ 说明: 基于需求分析报告,创建完整的产品需求文档 ││
|
|
421
|
+
│ │ 输入: requirement-analysis.md / product-brief.md ││
|
|
422
|
+
│ │ 输出: prd.md ││
|
|
423
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
424
|
+
│ │
|
|
425
|
+
│ Step 2.3: (推荐) 验证 PRD │
|
|
426
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
427
|
+
│ │ 执行命令: *validate-prd ││
|
|
428
|
+
│ │ 说明: 使用全新上下文和不同 LLM 验证 PRD 质量 ││
|
|
429
|
+
│ │ 建议: 使用不同的 LLM 以获得更客观的评估 ││
|
|
430
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
431
|
+
│ │
|
|
432
|
+
│ Step 2.4: 创建史诗和故事定义 │
|
|
433
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
434
|
+
│ │ 执行命令: *create-epics-and-stories ││
|
|
435
|
+
│ │ 说明: 从 PRD 创建史诗和用户故事(在架构完成后执行) ││
|
|
436
|
+
│ │ 输入: prd.md + architecture.md ││
|
|
437
|
+
│ │ 输出: epics/epic-XXX.md ││
|
|
438
|
+
│ │ ⚠️ 注意: 故事定义写在 Epic 文件中,独立故事文件在 Phase 4 ││
|
|
439
|
+
│ │ 由 SM 的 *create-story 创建 ││
|
|
440
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
441
|
+
│ │
|
|
442
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
**完整执行序列**:
|
|
446
|
+
```bash
|
|
447
|
+
# 1. 唤醒 PM 智能体
|
|
448
|
+
/pm
|
|
449
|
+
|
|
450
|
+
# 2. 创建 PRD 文档
|
|
451
|
+
*create-prd
|
|
452
|
+
|
|
453
|
+
# 3. (推荐) 验证 PRD
|
|
454
|
+
*validate-prd
|
|
455
|
+
|
|
456
|
+
# 4. 创建史诗和故事定义 (需在架构设计后执行)
|
|
457
|
+
*create-epics-and-stories
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
317
462
|
**自动执行内容**:
|
|
318
463
|
|
|
319
464
|
```yaml
|
|
320
465
|
phase: 2
|
|
321
466
|
name: 需求规划
|
|
322
|
-
role: PM + PO
|
|
467
|
+
role: PM (John) + PO
|
|
468
|
+
agent_activation:
|
|
469
|
+
command: "/pm"
|
|
470
|
+
workflows:
|
|
471
|
+
- trigger: "*create-prd"
|
|
472
|
+
purpose: "创建产品需求文档"
|
|
473
|
+
- trigger: "*validate-prd"
|
|
474
|
+
purpose: "验证 PRD 质量(推荐)"
|
|
475
|
+
- trigger: "*create-epics-and-stories"
|
|
476
|
+
purpose: "创建史诗和故事定义"
|
|
477
|
+
prerequisite: "需在架构设计完成后执行"
|
|
323
478
|
inputs:
|
|
324
479
|
- requirement-analysis.md
|
|
325
480
|
- 业务知识库
|
|
326
481
|
outputs:
|
|
327
482
|
- prd.md
|
|
328
|
-
- epics/
|
|
329
|
-
-
|
|
483
|
+
- epics/epic-XXX.md # 包含故事定义的 Epic 文件
|
|
484
|
+
# 注意: 独立故事文件将在 Phase 4 由 *create-story 创建
|
|
330
485
|
|
|
331
486
|
tasks:
|
|
332
487
|
- name: 创建 PRD
|
|
488
|
+
agent_command: "/pm → *create-prd"
|
|
333
489
|
action: |
|
|
334
490
|
1. 基于需求分析报告创建 PRD
|
|
335
491
|
2. 定义产品目标和成功指标
|
|
@@ -337,20 +493,22 @@ tasks:
|
|
|
337
493
|
4. 定义非功能需求 (NFR)
|
|
338
494
|
output: prd.md
|
|
339
495
|
|
|
340
|
-
- name:
|
|
496
|
+
- name: 创建史诗文件(包含故事定义)
|
|
497
|
+
agent_command: "/pm → *create-epics-and-stories"
|
|
341
498
|
action: |
|
|
342
499
|
1. 将功能需求按模块分组为史诗
|
|
343
500
|
2. 定义每个史诗的业务价值
|
|
344
501
|
3. 确定史诗间的依赖关系
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
502
|
+
4. ⚠️ 重要: 故事定义写在 Epic 文件中,不单独创建故事文件
|
|
503
|
+
5. 故事文件将在 Phase 4 由 SM *create-story 工作流创建
|
|
504
|
+
output: epics/epic-XXX.md
|
|
505
|
+
note: |
|
|
506
|
+
⚠️ Phase 2 不创建独立的故事文件!
|
|
507
|
+
故事的详细定义(用户故事、接受标准、任务分解)应写在 Epic 文件中。
|
|
508
|
+
Phase 4 的 *create-story 工作流会:
|
|
509
|
+
1. 从 Epic 文件提取故事定义
|
|
510
|
+
2. 创建符合 DEV 智能体格式的故事文件
|
|
511
|
+
3. 自动设置正确的 Status: drafted
|
|
354
512
|
|
|
355
513
|
- name: PO 验收标准审核
|
|
356
514
|
action: |
|
|
@@ -401,12 +559,98 @@ tasks:
|
|
|
401
559
|
|
|
402
560
|
**角色激活**: Architect (架构师)
|
|
403
561
|
|
|
562
|
+
---
|
|
563
|
+
|
|
564
|
+
#### 🤖 智能体执行指令
|
|
565
|
+
|
|
566
|
+
```
|
|
567
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
568
|
+
│ Phase 3: 架构设计 │
|
|
569
|
+
│ 智能体: Winston (Architect) │
|
|
570
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
571
|
+
│ │
|
|
572
|
+
│ Step 3.1: 唤醒 Architect 智能体 │
|
|
573
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
574
|
+
│ │ 执行命令: /architect ││
|
|
575
|
+
│ │ 说明: 唤醒架构师 Winston,准备进行架构设计工作 ││
|
|
576
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
577
|
+
│ │
|
|
578
|
+
│ Step 3.2: 创建架构文档 │
|
|
579
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
580
|
+
│ │ 执行命令: *create-architecture ││
|
|
581
|
+
│ │ 说明: 基于 PRD 创建完整的架构设计文档 ││
|
|
582
|
+
│ │ 输入: prd.md + 现有代码库 ││
|
|
583
|
+
│ │ 输出: architecture.md + adr/ ││
|
|
584
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
585
|
+
│ │
|
|
586
|
+
│ Step 3.3: (推荐) 验证架构 │
|
|
587
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
588
|
+
│ │ 执行命令: *validate-architecture ││
|
|
589
|
+
│ │ 说明: 使用全新上下文和不同 LLM 验证架构设计 ││
|
|
590
|
+
│ │ 建议: 使用不同的 LLM 以获得更客观的评估 ││
|
|
591
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
592
|
+
│ │
|
|
593
|
+
│ Step 3.4: (可选) 实现准备验证 │
|
|
594
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
595
|
+
│ │ 执行命令: *implementation-readiness ││
|
|
596
|
+
│ │ 说明: 验证 PRD、UX、架构、史诗和故事是否对齐 ││
|
|
597
|
+
│ │ 建议: 在进入 Phase 4 开发前执行此验证 ││
|
|
598
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
599
|
+
│ │
|
|
600
|
+
│ Step 3.5: (可选) 创建架构图 │
|
|
601
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
602
|
+
│ │ 执行命令: *create-excalidraw-diagram ││
|
|
603
|
+
│ │ 说明: 创建系统架构图或技术图表 ││
|
|
604
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
605
|
+
│ │
|
|
606
|
+
│ Step 3.6: (可选) 创建数据流图 │
|
|
607
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
608
|
+
│ │ 执行命令: *create-excalidraw-dataflow ││
|
|
609
|
+
│ │ 说明: 创建数据流图 ││
|
|
610
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
611
|
+
│ │
|
|
612
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**完整执行序列**:
|
|
616
|
+
```bash
|
|
617
|
+
# 1. 唤醒 Architect 智能体
|
|
618
|
+
/architect
|
|
619
|
+
|
|
620
|
+
# 2. 创建架构文档
|
|
621
|
+
*create-architecture
|
|
622
|
+
|
|
623
|
+
# 3. (推荐) 验证架构
|
|
624
|
+
*validate-architecture
|
|
625
|
+
|
|
626
|
+
# 4. (可选) 实现准备验证
|
|
627
|
+
*implementation-readiness
|
|
628
|
+
|
|
629
|
+
# 5. (可选) 创建架构图
|
|
630
|
+
*create-excalidraw-diagram
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
---
|
|
634
|
+
|
|
404
635
|
**自动执行内容**:
|
|
405
636
|
|
|
406
637
|
```yaml
|
|
407
638
|
phase: 3
|
|
408
639
|
name: 架构设计
|
|
409
|
-
role: Architect
|
|
640
|
+
role: Architect (Winston)
|
|
641
|
+
agent_activation:
|
|
642
|
+
command: "/architect"
|
|
643
|
+
workflows:
|
|
644
|
+
- trigger: "*create-architecture"
|
|
645
|
+
purpose: "创建架构设计文档"
|
|
646
|
+
- trigger: "*validate-architecture"
|
|
647
|
+
purpose: "验证架构设计(推荐)"
|
|
648
|
+
- trigger: "*implementation-readiness"
|
|
649
|
+
purpose: "实现准备验证(可选)"
|
|
650
|
+
- trigger: "*create-excalidraw-diagram"
|
|
651
|
+
purpose: "创建架构图(可选)"
|
|
652
|
+
- trigger: "*create-excalidraw-dataflow"
|
|
653
|
+
purpose: "创建数据流图(可选)"
|
|
410
654
|
inputs:
|
|
411
655
|
- prd.md
|
|
412
656
|
- epics/
|
|
@@ -418,6 +662,7 @@ outputs:
|
|
|
418
662
|
|
|
419
663
|
tasks:
|
|
420
664
|
- name: 分析现有架构
|
|
665
|
+
agent_command: "/architect → *create-architecture (Step 1)"
|
|
421
666
|
action: |
|
|
422
667
|
1. 扫描目标代码库结构
|
|
423
668
|
2. 识别现有技术栈
|
|
@@ -425,6 +670,7 @@ tasks:
|
|
|
425
670
|
4. 识别可复用组件
|
|
426
671
|
|
|
427
672
|
- name: 设计技术方案
|
|
673
|
+
agent_command: "/architect → *create-architecture (Step 2)"
|
|
428
674
|
action: |
|
|
429
675
|
1. 基于 PRD 设计技术实现方案
|
|
430
676
|
2. 匹配技术知识库中的最佳实践
|
|
@@ -432,12 +678,14 @@ tasks:
|
|
|
432
678
|
4. 设计 API 接口
|
|
433
679
|
|
|
434
680
|
- name: 数据模型设计
|
|
681
|
+
agent_command: "/architect → *create-architecture (Step 3)"
|
|
435
682
|
action: |
|
|
436
683
|
1. 设计新增/变更的数据表
|
|
437
684
|
2. 创建 ER 图
|
|
438
685
|
3. 设计数据迁移策略
|
|
439
686
|
|
|
440
687
|
- name: 技术决策记录
|
|
688
|
+
agent_command: "/architect → *create-architecture (Step 4)"
|
|
441
689
|
action: |
|
|
442
690
|
1. 记录关键技术选型
|
|
443
691
|
2. 记录选型理由和权衡
|
|
@@ -491,6 +739,276 @@ tasks:
|
|
|
491
739
|
|
|
492
740
|
> **重要**: 本阶段严格遵循项目智能体的标准工作流,确保与 SM 和 DEV 智能体的完全兼容。
|
|
493
741
|
|
|
742
|
+
---
|
|
743
|
+
|
|
744
|
+
#### ⛔ 强制性执行约束 (MANDATORY CONSTRAINTS)
|
|
745
|
+
|
|
746
|
+
```
|
|
747
|
+
╔═══════════════════════════════════════════════════════════════════════════════╗
|
|
748
|
+
║ 🚨 绝对禁止 - ABSOLUTELY FORBIDDEN 🚨 ║
|
|
749
|
+
╠═══════════════════════════════════════════════════════════════════════════════╣
|
|
750
|
+
║ ║
|
|
751
|
+
║ 1. ❌ 禁止跳过故事文件创建 ║
|
|
752
|
+
║ - 绝对禁止直接基于 Epic 进行开发 ║
|
|
753
|
+
║ - 每个故事必须先创建独立的故事文件到 /sprint-artifacts/stories/ 目录 ║
|
|
754
|
+
║ - 没有故事文件 = 不允许开发 ║
|
|
755
|
+
║ ║
|
|
756
|
+
║ 2. ❌ 禁止跳过故事验证 ║
|
|
757
|
+
║ - 故事文件创建后必须执行 *validate-create-story 验证 ║
|
|
758
|
+
║ - 验证未通过 = 不允许进入开发阶段 ║
|
|
759
|
+
║ ║
|
|
760
|
+
║ 3. ❌ 禁止跳过单元测试 ║
|
|
761
|
+
║ - 开发完成后必须执行单元测试 ║
|
|
762
|
+
║ - 测试未通过 = 不允许进入代码审查阶段 ║
|
|
763
|
+
║ ║
|
|
764
|
+
║ 4. ❌ 禁止跳过代码审查 ║
|
|
765
|
+
║ - 所有代码必须通过 *code-review 审查 ║
|
|
766
|
+
║ - 审查未通过 = 必须返回修复 ║
|
|
767
|
+
║ ║
|
|
768
|
+
║ 5. ❌ 禁止批量处理多个故事 ║
|
|
769
|
+
║ - 必须一个故事一个故事地完成 ║
|
|
770
|
+
║ - 当前故事未完成 = 不允许开始下一个故事 ║
|
|
771
|
+
║ ║
|
|
772
|
+
╚═══════════════════════════════════════════════════════════════════════════════╝
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
#### ✅ 用户故事完整生命周期 5 步强制流程 (MANDATORY 5-STEP LIFECYCLE)
|
|
776
|
+
|
|
777
|
+
```
|
|
778
|
+
╔═══════════════════════════════════════════════════════════════════════════════╗
|
|
779
|
+
║ 🔄 用户故事完整生命周期 (每个故事必须完成全部 5 步) ║
|
|
780
|
+
╠═══════════════════════════════════════════════════════════════════════════════╣
|
|
781
|
+
║ ║
|
|
782
|
+
║ ⚠️ 关键原则: 每个故事必须完成从创建到测试验证的完整生命周期后, ║
|
|
783
|
+
║ 才能开始下一个故事!禁止批量开发后统一测试! ║
|
|
784
|
+
║ ║
|
|
785
|
+
║ 对于 sprint-status.yaml 中的每一个故事,必须严格按以下顺序执行: ║
|
|
786
|
+
║ ║
|
|
787
|
+
║ ┌─────────────────────────────────────────────────────────────────────────┐ ║
|
|
788
|
+
║ │ STEP 1: 创建用户故事 (CREATE) [SM - Bob] │ ║
|
|
789
|
+
║ │ ┌─────────────────────────────────────────────────────────────────────┐ │ ║
|
|
790
|
+
║ │ │ 命令: /sm → *create-story │ │ ║
|
|
791
|
+
║ │ │ 输出: /sprint-artifacts/stories/{story-key}.md │ │ ║
|
|
792
|
+
║ │ │ 状态: backlog → drafted │ │ ║
|
|
793
|
+
║ │ │ 🚨 门禁: 必须确认文件已创建在 stories/ 目录下 │ │ ║
|
|
794
|
+
║ │ └─────────────────────────────────────────────────────────────────────┘ │ ║
|
|
795
|
+
║ └─────────────────────────────────────────────────────────────────────────┘ ║
|
|
796
|
+
║ ↓ ║
|
|
797
|
+
║ ┌─────────────────────────────────────────────────────────────────────────┐ ║
|
|
798
|
+
║ │ STEP 2: 校验用户故事 (VALIDATE) [SM - Bob] │ ║
|
|
799
|
+
║ │ ┌─────────────────────────────────────────────────────────────────────┐ │ ║
|
|
800
|
+
║ │ │ 命令: /sm → *validate-create-story │ │ ║
|
|
801
|
+
║ │ │ 检查: 接受标准完整性、任务分解合理性、技术说明充分性 │ │ ║
|
|
802
|
+
║ │ │ 状态: drafted → ready-for-dev │ │ ║
|
|
803
|
+
║ │ │ 🚨 门禁: 验证必须通过,否则返回 STEP 1 修正 │ │ ║
|
|
804
|
+
║ │ └─────────────────────────────────────────────────────────────────────┘ │ ║
|
|
805
|
+
║ └─────────────────────────────────────────────────────────────────────────┘ ║
|
|
806
|
+
║ ↓ ║
|
|
807
|
+
║ ┌─────────────────────────────────────────────────────────────────────────┐ ║
|
|
808
|
+
║ │ STEP 3: 开发用户故事 (DEVELOP) [DEV - Amelia] │ ║
|
|
809
|
+
║ │ ┌─────────────────────────────────────────────────────────────────────┐ │ ║
|
|
810
|
+
║ │ │ 命令: /dev → *develop-story │ │ ║
|
|
811
|
+
║ │ │ 执行: TDD 驱动开发 (红-绿-重构) + 单元测试 100% 通过 │ │ ║
|
|
812
|
+
║ │ │ 状态: ready-for-dev → in-progress │ │ ║
|
|
813
|
+
║ │ │ 🚨 前置: 必须有 ready-for-dev 状态的故事文件 │ │ ║
|
|
814
|
+
║ │ │ 🚨 门禁: 所有单元测试必须 100% 通过 │ │ ║
|
|
815
|
+
║ │ └─────────────────────────────────────────────────────────────────────┘ │ ║
|
|
816
|
+
║ └─────────────────────────────────────────────────────────────────────────┘ ║
|
|
817
|
+
║ ↓ ║
|
|
818
|
+
║ ┌─────────────────────────────────────────────────────────────────────────┐ ║
|
|
819
|
+
║ │ STEP 4: 代码审查 (CODE REVIEW) [DEV - Amelia] │ ║
|
|
820
|
+
║ │ ┌─────────────────────────────────────────────────────────────────────┐ │ ║
|
|
821
|
+
║ │ │ 命令: /dev → *code-review │ │ ║
|
|
822
|
+
║ │ │ 审查: 功能正确性 + 代码质量 + 安全性 + 测试覆盖 │ │ ║
|
|
823
|
+
║ │ │ 状态: in-progress → review │ │ ║
|
|
824
|
+
║ │ │ 🚨 门禁: APPROVED 继续,CHANGES_REQUESTED 返回 STEP 3 修复 │ │ ║
|
|
825
|
+
║ │ └─────────────────────────────────────────────────────────────────────┘ │ ║
|
|
826
|
+
║ └─────────────────────────────────────────────────────────────────────────┘ ║
|
|
827
|
+
║ ↓ ║
|
|
828
|
+
║ ┌─────────────────────────────────────────────────────────────────────────┐ ║
|
|
829
|
+
║ │ STEP 5: 测试验证 (TEST VERIFICATION) [TEA - Murat] │ ║
|
|
830
|
+
║ │ ┌─────────────────────────────────────────────────────────────────────┐ │ ║
|
|
831
|
+
║ │ │ 命令: /tea → *trace + *test-review │ │ ║
|
|
832
|
+
║ │ │ 验证: 需求追溯完整性 + 测试质量评审 + 集成测试 │ │ ║
|
|
833
|
+
║ │ │ 状态: review → done (通过) 或 review → in-progress (返回修复) │ │ ║
|
|
834
|
+
║ │ │ 🚨 门禁: 追溯完整 + 测试质量通过才能标记 done │ │ ║
|
|
835
|
+
║ │ └─────────────────────────────────────────────────────────────────────┘ │ ║
|
|
836
|
+
║ └─────────────────────────────────────────────────────────────────────────┘ ║
|
|
837
|
+
║ ║
|
|
838
|
+
║ ✅ 故事完成: 状态变为 done,🔄 返回 STEP 1 开始下一个故事 ║
|
|
839
|
+
║ ║
|
|
840
|
+
╚═══════════════════════════════════════════════════════════════════════════════╝
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
#### 📋 故事文件存在性验证 (FILE EXISTENCE VALIDATION)
|
|
844
|
+
|
|
845
|
+
```yaml
|
|
846
|
+
# 在开始开发任何故事之前,必须执行以下验证:
|
|
847
|
+
|
|
848
|
+
validation_before_development:
|
|
849
|
+
check_1_sprint_status_exists:
|
|
850
|
+
file: "{sprint_artifacts}/sprint-status.yaml"
|
|
851
|
+
error_if_missing: "❌ 必须先执行 /sm → *sprint-planning 生成 sprint-status.yaml"
|
|
852
|
+
|
|
853
|
+
check_2_story_file_exists:
|
|
854
|
+
file: "{sprint_artifacts}/stories/{story-key}.md"
|
|
855
|
+
error_if_missing: "❌ 必须先执行 /sm → *create-story 创建故事文件"
|
|
856
|
+
|
|
857
|
+
check_3_story_status_valid:
|
|
858
|
+
condition: "故事文件中 Status: 必须是 ready-for-dev"
|
|
859
|
+
error_if_invalid: "❌ 故事状态不是 ready-for-dev,必须先通过验证"
|
|
860
|
+
|
|
861
|
+
# 验证命令示例:
|
|
862
|
+
verification_commands:
|
|
863
|
+
- "ls {sprint_artifacts}/sprint-status.yaml # 确认存在"
|
|
864
|
+
- "ls {sprint_artifacts}/stories/ # 列出所有故事文件"
|
|
865
|
+
- "grep 'Status:' {sprint_artifacts}/stories/{story-key}.md # 检查状态"
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
---
|
|
869
|
+
|
|
870
|
+
#### 🤖 智能体执行指令概览
|
|
871
|
+
|
|
872
|
+
```
|
|
873
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
874
|
+
│ Phase 4: 开发实现与测试验证 │
|
|
875
|
+
│ 智能体: Bob (SM) + Amelia (DEV) + Murat (TEA) │
|
|
876
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
877
|
+
│ │
|
|
878
|
+
│ 阶段流程概览: │
|
|
879
|
+
│ │
|
|
880
|
+
│ ┌──────────────────────────────────────────────────────────────┐
|
|
881
|
+
│ │ Step 4.1: Sprint 规划 (SM) │
|
|
882
|
+
│ │ ┌────────────────────────────────────────────────────────┐ │
|
|
883
|
+
│ │ │ 执行: /sm → *sprint-planning │ │
|
|
884
|
+
│ │ │ 输出: sprint-status.yaml │ │
|
|
885
|
+
│ │ │ 🚨 门禁: 必须生成 sprint-status.yaml 才能继续 │ │
|
|
886
|
+
│ │ └────────────────────────────────────────────────────────┘ │
|
|
887
|
+
│ └──────────────────────────────────────────────────────────────┘
|
|
888
|
+
│ ↓ │
|
|
889
|
+
│ ┌──────────────────────────────────────────────────────────────┐
|
|
890
|
+
│ │ Step 4.2: 🔄 For Each Story 完整生命周期循环 │
|
|
891
|
+
│ │ ⚠️ 每个故事必须完成全部 5 步后才能开始下一个故事! │
|
|
892
|
+
│ │ │
|
|
893
|
+
│ │ STEP 1: 创建用户故事 (SM - Bob) 🔴 必须 │
|
|
894
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
895
|
+
│ │ │ 执行: /sm → *create-story │ │
|
|
896
|
+
│ │ │ 输出: /sprint-artifacts/stories/{story-key}.md │ │
|
|
897
|
+
│ │ │ 状态: backlog → drafted │ │
|
|
898
|
+
│ │ │ 🚨 门禁: 确认文件已创建 │ │
|
|
899
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
900
|
+
│ │ ↓ │
|
|
901
|
+
│ │ STEP 2: 校验用户故事 (SM - Bob) 🔴 必须 │
|
|
902
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
903
|
+
│ │ │ 执行: /sm → *validate-create-story │ │
|
|
904
|
+
│ │ │ 检查: AC完整性、任务分解、技术说明 │ │
|
|
905
|
+
│ │ │ 状态: drafted → ready-for-dev │ │
|
|
906
|
+
│ │ │ 🚨 门禁: 验证通过才能继续 │ │
|
|
907
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
908
|
+
│ │ ↓ │
|
|
909
|
+
│ │ STEP 3: 开发用户故事 (DEV - Amelia) 🔴 必须 │
|
|
910
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
911
|
+
│ │ │ 执行: /dev → *develop-story │ │
|
|
912
|
+
│ │ │ 内容: TDD 开发 + 单元测试 100% 通过 │ │
|
|
913
|
+
│ │ │ 状态: ready-for-dev → in-progress │ │
|
|
914
|
+
│ │ │ 🚨 门禁: 单元测试 100% 通过 │ │
|
|
915
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
916
|
+
│ │ ↓ │
|
|
917
|
+
│ │ STEP 4: 代码审查 (DEV - Amelia) 🔴 必须 │
|
|
918
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
919
|
+
│ │ │ 执行: /dev → *code-review │ │
|
|
920
|
+
│ │ │ 审查: 功能 + 代码质量 + 安全 + 测试覆盖 │ │
|
|
921
|
+
│ │ │ 状态: in-progress → review │ │
|
|
922
|
+
│ │ │ 🚨 门禁: APPROVED 继续,否则返回 STEP 3 │ │
|
|
923
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
924
|
+
│ │ ↓ │
|
|
925
|
+
│ │ STEP 5: 测试验证 (TEA - Murat) 🔴 必须 │
|
|
926
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
927
|
+
│ │ │ 执行: /tea → *trace + *test-review │ │
|
|
928
|
+
│ │ │ 验证: 需求追溯 + 测试质量 + 集成测试 │ │
|
|
929
|
+
│ │ │ 状态: review → done (通过) 或 返回修复 │ │
|
|
930
|
+
│ │ │ 🚨 门禁: 追溯完整 + 质量通过才标记 done │ │
|
|
931
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
932
|
+
│ │ │
|
|
933
|
+
│ │ ✅ 故事完成 → 🔄 返回 STEP 1 开始下一个故事 │
|
|
934
|
+
│ └──────────────────────────────────────────────────────────────┘
|
|
935
|
+
│ │
|
|
936
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
937
|
+
```
|
|
938
|
+
|
|
939
|
+
**完整执行序列 (5 步强制流程)**:
|
|
940
|
+
```bash
|
|
941
|
+
# === Step 4.1: Sprint 规划 ===
|
|
942
|
+
# 1. 唤醒 SM 智能体
|
|
943
|
+
/sm
|
|
944
|
+
|
|
945
|
+
# 2. 执行 Sprint 规划
|
|
946
|
+
*sprint-planning
|
|
947
|
+
|
|
948
|
+
# 🚨 门禁检查: 确认 sprint-status.yaml 已生成
|
|
949
|
+
ls {sprint_artifacts}/sprint-status.yaml
|
|
950
|
+
|
|
951
|
+
# === Step 4.2: 🔄 故事完整生命周期循环 (对每个故事重复 5 步流程) ===
|
|
952
|
+
|
|
953
|
+
# ╔═══════════════════════════════════════════════════════════════╗
|
|
954
|
+
# ║ 🔄 FOR EACH STORY - 完整生命周期循环开始 ║
|
|
955
|
+
# ╚═══════════════════════════════════════════════════════════════╝
|
|
956
|
+
|
|
957
|
+
# ============================================================
|
|
958
|
+
# STEP 1: 创建用户故事 (SM - Bob) 🔴 必须执行
|
|
959
|
+
# ============================================================
|
|
960
|
+
/sm
|
|
961
|
+
*create-story
|
|
962
|
+
|
|
963
|
+
# 🚨 门禁检查: 确认故事文件已创建
|
|
964
|
+
ls {sprint_artifacts}/stories/{story-key}.md
|
|
965
|
+
|
|
966
|
+
# ============================================================
|
|
967
|
+
# STEP 2: 校验用户故事 (SM - Bob) 🔴 必须执行
|
|
968
|
+
# ============================================================
|
|
969
|
+
/sm
|
|
970
|
+
*validate-create-story
|
|
971
|
+
|
|
972
|
+
# 🚨 门禁检查: 确认故事状态为 ready-for-dev
|
|
973
|
+
grep "Status: ready-for-dev" {sprint_artifacts}/stories/{story-key}.md
|
|
974
|
+
|
|
975
|
+
# ============================================================
|
|
976
|
+
# STEP 3: 开发用户故事 (DEV - Amelia) 🔴 必须执行
|
|
977
|
+
# ============================================================
|
|
978
|
+
/dev
|
|
979
|
+
*develop-story
|
|
980
|
+
|
|
981
|
+
# 🚨 门禁检查: 单元测试必须 100% 通过 (TDD 开发中已执行)
|
|
982
|
+
# 如果测试失败,必须修复后重新运行,不允许跳过
|
|
983
|
+
|
|
984
|
+
# ============================================================
|
|
985
|
+
# STEP 4: 代码审查 (DEV - Amelia) 🔴 必须执行
|
|
986
|
+
# ============================================================
|
|
987
|
+
/dev
|
|
988
|
+
*code-review
|
|
989
|
+
|
|
990
|
+
# 🚨 门禁检查:
|
|
991
|
+
# - APPROVED: 继续到 STEP 5
|
|
992
|
+
# - CHANGES_REQUESTED: 返回 STEP 3 修复后重新审查
|
|
993
|
+
|
|
994
|
+
# ============================================================
|
|
995
|
+
# STEP 5: 测试验证 (TEA - Murat) 🔴 必须执行
|
|
996
|
+
# ============================================================
|
|
997
|
+
/tea
|
|
998
|
+
*trace # 需求追溯验证
|
|
999
|
+
*test-review # 测试质量评审
|
|
1000
|
+
|
|
1001
|
+
# 🚨 门禁检查:
|
|
1002
|
+
# - 追溯完整 + 测试质量通过: 故事状态变为 done
|
|
1003
|
+
# - 验证失败: 返回 STEP 3 修复后重新验证
|
|
1004
|
+
|
|
1005
|
+
# ╔═══════════════════════════════════════════════════════════════╗
|
|
1006
|
+
# ║ ✅ 故事完成 → 🔄 返回 STEP 1 开始下一个故事 ║
|
|
1007
|
+
# ╚═══════════════════════════════════════════════════════════════╝
|
|
1008
|
+
```
|
|
1009
|
+
|
|
1010
|
+
---
|
|
1011
|
+
|
|
494
1012
|
**故事状态定义** (与 SM 智能体一致):
|
|
495
1013
|
|
|
496
1014
|
```yaml
|
|
@@ -514,7 +1032,7 @@ epic_status:
|
|
|
514
1032
|
|
|
515
1033
|
```yaml
|
|
516
1034
|
phase: 4
|
|
517
|
-
name:
|
|
1035
|
+
name: 开发实现与测试验证
|
|
518
1036
|
inputs:
|
|
519
1037
|
- architecture.md
|
|
520
1038
|
- epics/*.md # 包含故事定义的 Epic 文件
|
|
@@ -525,21 +1043,36 @@ outputs:
|
|
|
525
1043
|
- 实现的代码
|
|
526
1044
|
- 测试代码
|
|
527
1045
|
- code-review-reports/
|
|
1046
|
+
- traceability-matrix.md # 需求追溯矩阵
|
|
1047
|
+
- test-review-reports/ # 测试质量报告
|
|
528
1048
|
|
|
529
|
-
# 调用的智能体工作流
|
|
1049
|
+
# 调用的智能体工作流 (完整故事生命周期)
|
|
530
1050
|
workflows_invoked:
|
|
531
|
-
-
|
|
532
|
-
|
|
533
|
-
purpose: "生成 sprint-status.yaml"
|
|
534
|
-
- agent: SM (Bob)
|
|
1051
|
+
- step: "STEP 1"
|
|
1052
|
+
agent: SM (Bob)
|
|
535
1053
|
workflow: create-story
|
|
536
|
-
purpose: "
|
|
537
|
-
|
|
538
|
-
|
|
1054
|
+
purpose: "创建用户故事文件"
|
|
1055
|
+
status_change: "backlog → drafted"
|
|
1056
|
+
- step: "STEP 2"
|
|
1057
|
+
agent: SM (Bob)
|
|
1058
|
+
workflow: validate-create-story
|
|
1059
|
+
purpose: "校验用户故事"
|
|
1060
|
+
status_change: "drafted → ready-for-dev"
|
|
1061
|
+
- step: "STEP 3"
|
|
1062
|
+
agent: DEV (Amelia)
|
|
1063
|
+
workflow: develop-story
|
|
539
1064
|
purpose: "TDD 驱动的故事实现"
|
|
540
|
-
|
|
1065
|
+
status_change: "ready-for-dev → in-progress"
|
|
1066
|
+
- step: "STEP 4"
|
|
1067
|
+
agent: DEV (Amelia)
|
|
541
1068
|
workflow: code-review
|
|
542
1069
|
purpose: "代码审查验证"
|
|
1070
|
+
status_change: "in-progress → review"
|
|
1071
|
+
- step: "STEP 5"
|
|
1072
|
+
agent: TEA (Murat)
|
|
1073
|
+
workflow: trace + test-review
|
|
1074
|
+
purpose: "测试验证 (需求追溯 + 测试质量)"
|
|
1075
|
+
status_change: "review → done"
|
|
543
1076
|
```
|
|
544
1077
|
|
|
545
1078
|
---
|
|
@@ -548,9 +1081,52 @@ workflows_invoked:
|
|
|
548
1081
|
|
|
549
1082
|
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/sprint-planning/workflow.yaml`
|
|
550
1083
|
|
|
1084
|
+
---
|
|
1085
|
+
|
|
1086
|
+
##### 🤖 智能体执行指令
|
|
1087
|
+
|
|
1088
|
+
```
|
|
1089
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1090
|
+
│ Step 4.1: Sprint 规划 │
|
|
1091
|
+
│ 智能体: Bob (SM) │
|
|
1092
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1093
|
+
│ │
|
|
1094
|
+
│ 执行步骤: │
|
|
1095
|
+
│ │
|
|
1096
|
+
│ 1. 唤醒 SM 智能体 │
|
|
1097
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1098
|
+
│ │ 执行命令: /sm │ │
|
|
1099
|
+
│ │ 说明: 唤醒 Scrum Master Bob,准备进行 Sprint 规划 │ │
|
|
1100
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1101
|
+
│ │
|
|
1102
|
+
│ 2. 执行 Sprint 规划工作流 │
|
|
1103
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1104
|
+
│ │ 执行命令: *sprint-planning │ │
|
|
1105
|
+
│ │ 说明: 分析 Epic 文件,生成 sprint-status.yaml │ │
|
|
1106
|
+
│ │ 输入: epics/*.md │ │
|
|
1107
|
+
│ │ 输出: sprint-status.yaml │ │
|
|
1108
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1109
|
+
│ │
|
|
1110
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1111
|
+
```
|
|
1112
|
+
|
|
1113
|
+
**执行命令**:
|
|
1114
|
+
```bash
|
|
1115
|
+
# 唤醒 SM 智能体
|
|
1116
|
+
/sm
|
|
1117
|
+
|
|
1118
|
+
# 执行 Sprint 规划
|
|
1119
|
+
*sprint-planning
|
|
1120
|
+
```
|
|
1121
|
+
|
|
1122
|
+
---
|
|
1123
|
+
|
|
551
1124
|
```yaml
|
|
552
1125
|
task: sprint_planning
|
|
553
1126
|
role: SM (Bob)
|
|
1127
|
+
agent_activation:
|
|
1128
|
+
command: "/sm"
|
|
1129
|
+
workflow: "*sprint-planning"
|
|
554
1130
|
invoke_workflow: "*sprint-planning"
|
|
555
1131
|
actions:
|
|
556
1132
|
- name: 分析 Epic 文件
|
|
@@ -587,45 +1163,240 @@ actions:
|
|
|
587
1163
|
|
|
588
1164
|
---
|
|
589
1165
|
|
|
590
|
-
#### Step 4.2: 故事开发循环
|
|
1166
|
+
#### Step 4.2: 故事开发循环 (5 步强制流程)
|
|
591
1167
|
|
|
592
|
-
|
|
1168
|
+
> ⚠️ **强制要求**: 对于每个故事,必须严格按照以下 5 步流程执行,禁止跳过任何步骤!
|
|
593
1169
|
|
|
594
1170
|
```
|
|
595
1171
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
596
|
-
│
|
|
1172
|
+
│ 故事生命周期管理 (5 步强制流程) │
|
|
597
1173
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
598
1174
|
│ │
|
|
599
|
-
│
|
|
600
|
-
│ ├─
|
|
1175
|
+
│ 🔴 STEP 1: 创建用户故事 (SM - Bob) [必须] │
|
|
1176
|
+
│ ├─ 命令: /sm → *create-story │
|
|
601
1177
|
│ ├─ 输入: Epic 中的故事定义 │
|
|
602
|
-
│ ├─ 输出: stories/{story-key}.md
|
|
603
|
-
│
|
|
1178
|
+
│ ├─ 输出: /sprint-artifacts/stories/{story-key}.md │
|
|
1179
|
+
│ ├─ 状态: backlog → drafted │
|
|
1180
|
+
│ └─ 🚨 门禁: 必须确认文件已创建,否则不能继续 │
|
|
1181
|
+
│ │
|
|
1182
|
+
│ 🔴 STEP 2: 校验用户故事 (SM - Bob) [必须] │
|
|
1183
|
+
│ ├─ 命令: /sm → *validate-create-story │
|
|
1184
|
+
│ ├─ 检查: 接受标准完整性、任务分解合理性、技术说明充分性 │
|
|
1185
|
+
│ ├─ 状态: drafted → ready-for-dev │
|
|
1186
|
+
│ └─ 🚨 门禁: 验证必须通过,失败则返回 STEP 1 修正 │
|
|
604
1187
|
│ │
|
|
605
|
-
│
|
|
606
|
-
│ ├─
|
|
607
|
-
│ ├─
|
|
1188
|
+
│ 🔴 STEP 3: 开发用户故事 (DEV - Amelia) [必须] │
|
|
1189
|
+
│ ├─ 命令: /dev → *develop-story │
|
|
1190
|
+
│ ├─ 前置: 必须有 ready-for-dev 状态的故事文件 │
|
|
608
1191
|
│ ├─ 执行: TDD 驱动开发 (红-绿-重构) │
|
|
609
|
-
│
|
|
1192
|
+
│ ├─ 状态: ready-for-dev → in-progress │
|
|
1193
|
+
│ └─ 🚨 前置检查: 如果故事文件不存在或状态不对,必须先完成 STEP 1-2 │
|
|
1194
|
+
│ │
|
|
1195
|
+
│ 🔴 STEP 4: 自测用户故事 (DEV - Amelia) [必须] │
|
|
1196
|
+
│ ├─ 命令: 运行单元测试 (npm test / pytest / go test) │
|
|
1197
|
+
│ ├─ 检查: 所有测试必须 100% 通过 │
|
|
1198
|
+
│ ├─ 状态: in-progress → review │
|
|
1199
|
+
│ └─ 🚨 门禁: 测试未 100% 通过则不能进入 STEP 5,必须修复 │
|
|
1200
|
+
│ │
|
|
1201
|
+
│ 🔴 STEP 5: 代码审查 + 集成测试 (DEV - Amelia) [必须] │
|
|
1202
|
+
│ ├─ 命令: /dev → *code-review │
|
|
1203
|
+
│ ├─ 审查: 功能正确性 + 代码质量 + 安全性 + 集成兼容性 │
|
|
1204
|
+
│ ├─ 结果: │
|
|
1205
|
+
│ │ ├─ APPROVED → 状态变为 done,故事完成 │
|
|
1206
|
+
│ │ └─ CHANGES_REQUESTED → 返回 STEP 3 修复 │
|
|
1207
|
+
│ └─ 🚨 门禁: 只有 APPROVED 才能标记 done │
|
|
610
1208
|
│ │
|
|
611
|
-
│
|
|
612
|
-
│ ├─ 调用: *code-review │
|
|
613
|
-
│ ├─ 输入: review 状态的故事 │
|
|
614
|
-
│ ├─ 审查: 功能正确性 + 代码质量 + 安全性 │
|
|
615
|
-
│ └─ 状态: review → done (通过) 或 返回修复 │
|
|
1209
|
+
│ ✅ 故事完成后,返回 STEP 1 处理下一个故事 │
|
|
616
1210
|
│ │
|
|
617
1211
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
618
1212
|
```
|
|
619
1213
|
|
|
1214
|
+
#### 📊 状态流转图 (5 步流程对应)
|
|
1215
|
+
|
|
1216
|
+
```
|
|
1217
|
+
STEP 1 STEP 2
|
|
1218
|
+
┌──────────────┐ ┌──────────────┐
|
|
1219
|
+
backlog ────│ *create-story │───▶│ *validate │───▶ ready-for-dev
|
|
1220
|
+
│ (SM) │ │ (SM) │
|
|
1221
|
+
└──────────────┘ └──────────────┘
|
|
1222
|
+
│
|
|
1223
|
+
│ STEP 3
|
|
1224
|
+
▼
|
|
1225
|
+
┌──────────────┐
|
|
1226
|
+
│ *develop-story│
|
|
1227
|
+
│ (DEV) │
|
|
1228
|
+
└──────────────┘
|
|
1229
|
+
│
|
|
1230
|
+
▼
|
|
1231
|
+
in-progress
|
|
1232
|
+
│
|
|
1233
|
+
│ STEP 4 (自测)
|
|
1234
|
+
▼
|
|
1235
|
+
┌──────────────┐
|
|
1236
|
+
│ 运行单元测试 │
|
|
1237
|
+
│ 100% 通过 │
|
|
1238
|
+
└──────────────┘
|
|
1239
|
+
│
|
|
1240
|
+
▼
|
|
1241
|
+
review
|
|
1242
|
+
│
|
|
1243
|
+
│ STEP 5
|
|
1244
|
+
▼
|
|
1245
|
+
┌──────────────┐
|
|
1246
|
+
┌────────│ *code-review │────────┐
|
|
1247
|
+
│ │ (DEV) │ │
|
|
1248
|
+
│ └──────────────┘ │
|
|
1249
|
+
│ │
|
|
1250
|
+
APPROVED CHANGES_REQUESTED
|
|
1251
|
+
│ │
|
|
1252
|
+
▼ │
|
|
1253
|
+
done ◄─────────────────────────────┘
|
|
1254
|
+
(返回 STEP 3)
|
|
1255
|
+
```
|
|
1256
|
+
|
|
620
1257
|
---
|
|
621
1258
|
|
|
622
|
-
#### Step 4.2.1:
|
|
1259
|
+
#### Step 4.2.1: 🔴 STEP 1 - 创建用户故事 (create-story) [必须]
|
|
623
1260
|
|
|
624
1261
|
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/create-story/workflow.yaml`
|
|
625
1262
|
|
|
1263
|
+
> ⚠️ **强制要求**: 此步骤为必须执行步骤,禁止跳过!必须生成故事文件后才能进入 STEP 2!
|
|
1264
|
+
|
|
1265
|
+
---
|
|
1266
|
+
|
|
1267
|
+
##### 🤖 智能体执行指令
|
|
1268
|
+
|
|
1269
|
+
```
|
|
1270
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1271
|
+
│ 🔴 STEP 1: 创建用户故事 [必须] │
|
|
1272
|
+
│ 智能体: Bob (SM) │
|
|
1273
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1274
|
+
│ │
|
|
1275
|
+
│ 执行步骤: │
|
|
1276
|
+
│ │
|
|
1277
|
+
│ 1. 唤醒 SM 智能体 │
|
|
1278
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1279
|
+
│ │ 执行命令: /sm │ │
|
|
1280
|
+
│ │ 说明: 唤醒 Scrum Master Bob,准备创建故事文件 │ │
|
|
1281
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1282
|
+
│ │
|
|
1283
|
+
│ 2. 🔴 创建故事文件 [必须] │
|
|
1284
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1285
|
+
│ │ 执行命令: *create-story │ │
|
|
1286
|
+
│ │ 说明: 从 Epic 中提取故事定义,创建独立的故事文件 │ │
|
|
1287
|
+
│ │ 输入: sprint-status.yaml + epics/*.md │ │
|
|
1288
|
+
│ │ 输出: /sprint-artifacts/stories/{story-key}.md │ │
|
|
1289
|
+
│ │ 状态: backlog → drafted │ │
|
|
1290
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1291
|
+
│ │
|
|
1292
|
+
│ 🚨 门禁检查 (GATE 1): │
|
|
1293
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1294
|
+
│ │ # 必须验证故事文件已创建 │ │
|
|
1295
|
+
│ │ ls -la {sprint_artifacts}/stories/{story-key}.md │ │
|
|
1296
|
+
│ │ │ │
|
|
1297
|
+
│ │ ❌ 如果文件不存在:禁止继续!必须先创建故事文件! │ │
|
|
1298
|
+
│ │ ✅ 如果文件存在:可以进入 STEP 2 │ │
|
|
1299
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1300
|
+
│ │
|
|
1301
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1302
|
+
```
|
|
1303
|
+
|
|
1304
|
+
**执行命令**:
|
|
1305
|
+
```bash
|
|
1306
|
+
# 唤醒 SM 智能体
|
|
1307
|
+
/sm
|
|
1308
|
+
|
|
1309
|
+
# 🔴 [必须] 创建故事文件
|
|
1310
|
+
*create-story
|
|
1311
|
+
|
|
1312
|
+
# 🚨 门禁检查:验证故事文件已创建
|
|
1313
|
+
ls -la {sprint_artifacts}/stories/{story-key}.md
|
|
1314
|
+
# 如果文件不存在,禁止继续!
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
---
|
|
1318
|
+
|
|
1319
|
+
#### Step 4.2.2: 🔴 STEP 2 - 校验用户故事 (validate-story) [必须]
|
|
1320
|
+
|
|
1321
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/create-story/workflow.yaml` (validate-create-story)
|
|
1322
|
+
|
|
1323
|
+
> ⚠️ **强制要求**: 此步骤为必须执行步骤,禁止跳过!验证通过后才能进入 STEP 3!
|
|
1324
|
+
|
|
1325
|
+
---
|
|
1326
|
+
|
|
1327
|
+
##### 🤖 智能体执行指令
|
|
1328
|
+
|
|
1329
|
+
```
|
|
1330
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1331
|
+
│ 🔴 STEP 2: 校验用户故事 [必须] │
|
|
1332
|
+
│ 智能体: Bob (SM) │
|
|
1333
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1334
|
+
│ │
|
|
1335
|
+
│ 前置条件检查: │
|
|
1336
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1337
|
+
│ │ # 验证故事文件存在且状态为 drafted │ │
|
|
1338
|
+
│ │ grep "Status: drafted" {sprint_artifacts}/stories/*.md │ │
|
|
1339
|
+
│ │ │ │
|
|
1340
|
+
│ │ ❌ 如果没有 drafted 状态的故事:返回 STEP 1 │ │
|
|
1341
|
+
│ │ ✅ 如果存在:继续执行验证 │ │
|
|
1342
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1343
|
+
│ │
|
|
1344
|
+
│ 执行步骤: │
|
|
1345
|
+
│ │
|
|
1346
|
+
│ 1. 唤醒 SM 智能体 │
|
|
1347
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1348
|
+
│ │ 执行命令: /sm │ │
|
|
1349
|
+
│ │ 说明: 唤醒 Scrum Master Bob,准备验证故事 │ │
|
|
1350
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1351
|
+
│ │
|
|
1352
|
+
│ 2. 🔴 验证故事文件 [必须] │
|
|
1353
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1354
|
+
│ │ 执行命令: *validate-create-story │ │
|
|
1355
|
+
│ │ 说明: 验证故事质量,检查接受标准完整性 │ │
|
|
1356
|
+
│ │ 验证内容: │ │
|
|
1357
|
+
│ │ - 接受标准完整性 (Given-When-Then) │ │
|
|
1358
|
+
│ │ - 任务分解合理性 │ │
|
|
1359
|
+
│ │ - 技术说明充分性 │ │
|
|
1360
|
+
│ │ 状态: drafted → ready-for-dev │ │
|
|
1361
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1362
|
+
│ │
|
|
1363
|
+
│ 🚨 门禁检查 (GATE 2): │
|
|
1364
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1365
|
+
│ │ # 验证故事状态已更新为 ready-for-dev │ │
|
|
1366
|
+
│ │ grep "Status: ready-for-dev" {story-file} │ │
|
|
1367
|
+
│ │ │ │
|
|
1368
|
+
│ │ ❌ 验证未通过:返回 STEP 1 修正故事 │ │
|
|
1369
|
+
│ │ ✅ 验证通过:可以进入 STEP 3 │ │
|
|
1370
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1371
|
+
│ │
|
|
1372
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1373
|
+
```
|
|
1374
|
+
|
|
1375
|
+
**执行命令**:
|
|
1376
|
+
```bash
|
|
1377
|
+
# 唤醒 SM 智能体
|
|
1378
|
+
/sm
|
|
1379
|
+
|
|
1380
|
+
# 🔴 [必须] 验证故事文件
|
|
1381
|
+
*validate-create-story
|
|
1382
|
+
|
|
1383
|
+
# 🚨 门禁检查:验证故事状态已更新
|
|
1384
|
+
grep "Status: ready-for-dev" {sprint_artifacts}/stories/{story-key}.md
|
|
1385
|
+
# 如果状态不是 ready-for-dev,禁止继续!
|
|
1386
|
+
```
|
|
1387
|
+
|
|
1388
|
+
---
|
|
1389
|
+
|
|
626
1390
|
```yaml
|
|
627
1391
|
task: prepare_story
|
|
628
1392
|
role: SM (Bob)
|
|
1393
|
+
agent_activation:
|
|
1394
|
+
command: "/sm"
|
|
1395
|
+
workflows:
|
|
1396
|
+
- trigger: "*create-story"
|
|
1397
|
+
purpose: "创建故事文件"
|
|
1398
|
+
- trigger: "*validate-create-story"
|
|
1399
|
+
purpose: "验证故事(推荐)"
|
|
629
1400
|
invoke_workflow: "*create-story"
|
|
630
1401
|
|
|
631
1402
|
for_each: story in sprint_status.development_status
|
|
@@ -664,9 +1435,13 @@ actions:
|
|
|
664
1435
|
|
|
665
1436
|
**故事文件格式** (符合 DEV 智能体要求):
|
|
666
1437
|
|
|
1438
|
+
> ⚠️ **关键**: 必须包含 `Status:` 行,且位于标题之后!
|
|
1439
|
+
|
|
667
1440
|
```markdown
|
|
668
1441
|
# Story: {story-key}
|
|
669
1442
|
|
|
1443
|
+
Status: drafted
|
|
1444
|
+
|
|
670
1445
|
## Story
|
|
671
1446
|
As a [用户角色],
|
|
672
1447
|
I want [功能],
|
|
@@ -707,20 +1482,110 @@ So that [价值].
|
|
|
707
1482
|
|
|
708
1483
|
## Change Log
|
|
709
1484
|
[变更日志]
|
|
710
|
-
|
|
711
|
-
## Status
|
|
712
|
-
drafted <!-- 将更新为: ready-for-dev → in-progress → review → done -->
|
|
713
1485
|
```
|
|
714
1486
|
|
|
1487
|
+
> **注意**: `Status:` 行位于文件顶部(标题之后),不是在底部!
|
|
1488
|
+
> 状态值将随开发进度更新: `drafted → ready-for-dev → in-progress → review → done`
|
|
1489
|
+
|
|
715
1490
|
---
|
|
716
1491
|
|
|
717
|
-
#### Step 4.2.
|
|
1492
|
+
#### Step 4.2.3: 🔴 STEP 3 - 开发用户故事 (develop-story) [必须]
|
|
718
1493
|
|
|
719
1494
|
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/dev-story/workflow.yaml`
|
|
720
1495
|
|
|
1496
|
+
> ⚠️ **强制要求**: 此步骤为必须执行步骤!必须基于 `/sprint-artifacts/stories/{story-key}.md` 故事文件进行开发!
|
|
1497
|
+
|
|
1498
|
+
> 🚨 **前置条件**: 必须存在状态为 `ready-for-dev` 的故事文件,否则必须返回 STEP 1-2 先创建并验证故事!
|
|
1499
|
+
|
|
1500
|
+
---
|
|
1501
|
+
|
|
1502
|
+
##### 🤖 智能体执行指令
|
|
1503
|
+
|
|
1504
|
+
```
|
|
1505
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1506
|
+
│ 🔴 STEP 3: 开发用户故事 [必须] │
|
|
1507
|
+
│ 智能体: Amelia (DEV) │
|
|
1508
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1509
|
+
│ │
|
|
1510
|
+
│ 前置条件检查 (强制!): │
|
|
1511
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1512
|
+
│ │ # 🚨 必须验证故事文件存在且状态为 ready-for-dev │ │
|
|
1513
|
+
│ │ ls {sprint_artifacts}/stories/{story-key}.md │ │
|
|
1514
|
+
│ │ grep "Status: ready-for-dev" {story-file} │ │
|
|
1515
|
+
│ │ │ │
|
|
1516
|
+
│ │ ❌ 如果故事文件不存在:禁止开发!返回 STEP 1 │ │
|
|
1517
|
+
│ │ ❌ 如果状态不是 ready-for-dev:返回 STEP 1-2 │ │
|
|
1518
|
+
│ │ ✅ 如果存在且状态正确:继续开发 │ │
|
|
1519
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1520
|
+
│ │
|
|
1521
|
+
│ 执行步骤: │
|
|
1522
|
+
│ │
|
|
1523
|
+
│ 1. 唤醒 DEV 智能体 │
|
|
1524
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1525
|
+
│ │ 执行命令: /dev │ │
|
|
1526
|
+
│ │ 说明: 唤醒开发者 Amelia,准备进行 TDD 开发 │ │
|
|
1527
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1528
|
+
│ │
|
|
1529
|
+
│ 2. 🔴 执行故事开发工作流 [必须] │
|
|
1530
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1531
|
+
│ │ 执行命令: *develop-story │ │
|
|
1532
|
+
│ │ 说明: 基于故事文件执行 TDD 驱动开发 │ │
|
|
1533
|
+
│ │ 输入: /sprint-artifacts/stories/{story-key}.md │ │
|
|
1534
|
+
│ │ 执行流程: │ │
|
|
1535
|
+
│ │ - Step 4: 标记为 in-progress │ │
|
|
1536
|
+
│ │ - Step 5: TDD 实现 (红-绿-重构) │ │
|
|
1537
|
+
│ │ - Step 6: 编写全面测试 │ │
|
|
1538
|
+
│ │ - Step 7: 运行验证和测试 │ │
|
|
1539
|
+
│ │ - Step 8: 验证并标记任务完成 │ │
|
|
1540
|
+
│ │ 状态: ready-for-dev → in-progress │ │
|
|
1541
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1542
|
+
│ │
|
|
1543
|
+
│ 🚨 关键规则 (绝对不能违反): │
|
|
1544
|
+
│ ┌─────────────────────────────────────────────────────────────┐ │
|
|
1545
|
+
│ │ ❌ 禁止基于 Epic 直接开发!必须基于 Story 文件! │ │
|
|
1546
|
+
│ │ ❌ 禁止跳过故事文件验证! │ │
|
|
1547
|
+
│ │ ✅ 故事文件是唯一的事实来源 │ │
|
|
1548
|
+
│ │ ✅ 严格按照 Tasks/Subtasks 顺序执行 │ │
|
|
1549
|
+
│ │ ✅ 绝不实现故事文件中未定义的内容 │ │
|
|
1550
|
+
│ │ ✅ 每个任务完成前必须有测试覆盖 │ │
|
|
1551
|
+
│ └─────────────────────────────────────────────────────────────┘ │
|
|
1552
|
+
│ │
|
|
1553
|
+
│ 🚨 门禁检查 (GATE 3): │
|
|
1554
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1555
|
+
│ │ # 开发完成后,必须验证: │ │
|
|
1556
|
+
│ │ 1. 故事状态已变为 in-progress │ │
|
|
1557
|
+
│ │ 2. 所有 Tasks 已有代码实现 │ │
|
|
1558
|
+
│ │ 3. 测试文件已创建 │ │
|
|
1559
|
+
│ │ │ │
|
|
1560
|
+
│ │ ❌ 开发未完成:不能进入 STEP 4 │ │
|
|
1561
|
+
│ │ ✅ 开发完成:可以进入 STEP 4 (自测) │ │
|
|
1562
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1563
|
+
│ │
|
|
1564
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1565
|
+
```
|
|
1566
|
+
|
|
1567
|
+
**执行命令**:
|
|
1568
|
+
```bash
|
|
1569
|
+
# 🚨 前置检查:验证故事文件存在
|
|
1570
|
+
ls {sprint_artifacts}/stories/{story-key}.md
|
|
1571
|
+
grep "Status: ready-for-dev" {sprint_artifacts}/stories/{story-key}.md
|
|
1572
|
+
# 如果检查失败,禁止继续!必须返回 STEP 1-2
|
|
1573
|
+
|
|
1574
|
+
# 唤醒 DEV 智能体
|
|
1575
|
+
/dev
|
|
1576
|
+
|
|
1577
|
+
# 🔴 [必须] 执行故事开发 (基于故事文件!)
|
|
1578
|
+
*develop-story
|
|
1579
|
+
```
|
|
1580
|
+
|
|
1581
|
+
---
|
|
1582
|
+
|
|
721
1583
|
```yaml
|
|
722
1584
|
task: develop_story
|
|
723
1585
|
role: DEV (Amelia)
|
|
1586
|
+
agent_activation:
|
|
1587
|
+
command: "/dev"
|
|
1588
|
+
workflow: "*develop-story"
|
|
724
1589
|
invoke_workflow: "*develop-story"
|
|
725
1590
|
|
|
726
1591
|
precondition:
|
|
@@ -762,69 +1627,313 @@ critical_rules:
|
|
|
762
1627
|
status_transitions:
|
|
763
1628
|
on_start: "ready-for-dev → in-progress"
|
|
764
1629
|
on_complete: "in-progress → review"
|
|
1630
|
+
|
|
1631
|
+
# ⚠️ 强制状态更新操作 - 必须执行!
|
|
1632
|
+
mandatory_updates:
|
|
1633
|
+
on_start:
|
|
1634
|
+
- action: "编辑故事文件: Status: ready-for-dev → Status: in-progress"
|
|
1635
|
+
- action: "编辑 sprint-status.yaml: story_key: ready-for-dev → story_key: in-progress"
|
|
1636
|
+
on_complete:
|
|
1637
|
+
- action: "编辑故事文件: Status: in-progress → Status: review"
|
|
1638
|
+
- action: "编辑 sprint-status.yaml: story_key: in-progress → story_key: review"
|
|
765
1639
|
```
|
|
766
1640
|
|
|
767
1641
|
---
|
|
768
1642
|
|
|
769
|
-
#### Step 4.2.
|
|
1643
|
+
#### Step 4.2.4: 🔴 STEP 4 - 代码审查 (code-review) [必须]
|
|
770
1644
|
|
|
771
1645
|
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/code-review/workflow.yaml`
|
|
772
1646
|
|
|
1647
|
+
> ⚠️ **强制要求**: 此步骤为必须执行步骤!代码审查通过 (APPROVED) 后才能进入测试验证阶段!
|
|
1648
|
+
|
|
1649
|
+
---
|
|
1650
|
+
|
|
1651
|
+
##### 🤖 智能体执行指令
|
|
1652
|
+
|
|
1653
|
+
```
|
|
1654
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1655
|
+
│ 🔴 STEP 4: 代码审查 [必须] │
|
|
1656
|
+
│ 智能体: Amelia (DEV) │
|
|
1657
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1658
|
+
│ │
|
|
1659
|
+
│ 前置条件检查: │
|
|
1660
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1661
|
+
│ │ # 验证故事状态为 in-progress 且单元测试已通过 │ │
|
|
1662
|
+
│ │ grep "Status: in-progress" {story-file} │ │
|
|
1663
|
+
│ │ # 验证所有单元测试已通过 (STEP 3 中执行) │ │
|
|
1664
|
+
│ │ │ │
|
|
1665
|
+
│ │ ❌ 如果状态不是 in-progress:返回 STEP 3 │ │
|
|
1666
|
+
│ │ ✅ 如果状态正确且测试通过:继续执行代码审查 │ │
|
|
1667
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1668
|
+
│ │
|
|
1669
|
+
│ 执行步骤: │
|
|
1670
|
+
│ │
|
|
1671
|
+
│ 1. 唤醒 DEV 智能体 (建议全新上下文) │
|
|
1672
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1673
|
+
│ │ 执行命令: /dev │ │
|
|
1674
|
+
│ │ 说明: 唤醒开发者 Amelia,准备进行代码审查 │ │
|
|
1675
|
+
│ │ 建议: 使用全新上下文和不同 LLM 以获得更客观的评估 │ │
|
|
1676
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1677
|
+
│ │
|
|
1678
|
+
│ 2. 🔴 执行代码审查工作流 [必须] │
|
|
1679
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1680
|
+
│ │ 执行命令: *code-review │ │
|
|
1681
|
+
│ │ 审查维度: │ │
|
|
1682
|
+
│ │ - 功能正确性: 是否满足所有接受标准 │ │
|
|
1683
|
+
│ │ - 代码质量: 清晰可读、命名规范、遵循项目规范 │ │
|
|
1684
|
+
│ │ - 安全性: 注入风险、敏感数据处理、认证授权 │ │
|
|
1685
|
+
│ │ - 测试覆盖: 测试充分性、边界情况覆盖 │ │
|
|
1686
|
+
│ │ 状态: in-progress → review │ │
|
|
1687
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1688
|
+
│ │
|
|
1689
|
+
│ 🚨 审查结果处理: │
|
|
1690
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1691
|
+
│ │ APPROVED (通过): │ │
|
|
1692
|
+
│ │ - 状态更新为 review │ │
|
|
1693
|
+
│ │ - 继续到 STEP 5 (测试验证) │ │
|
|
1694
|
+
│ │ │ │
|
|
1695
|
+
│ │ CHANGES_REQUESTED (需修改): │ │
|
|
1696
|
+
│ │ - 返回 STEP 3 修复问题 │ │
|
|
1697
|
+
│ │ - 修复后重新执行 STEP 3-4 │ │
|
|
1698
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1699
|
+
│ │
|
|
1700
|
+
│ 🚨 门禁检查 (GATE 4): │
|
|
1701
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1702
|
+
│ │ # 代码审查结果验证 │ │
|
|
1703
|
+
│ │ 1. 审查结果必须为 APPROVED │ │
|
|
1704
|
+
│ │ 2. 故事状态已更新为 review │ │
|
|
1705
|
+
│ │ │ │
|
|
1706
|
+
│ │ ❌ 审查未通过:返回 STEP 3 修复! │ │
|
|
1707
|
+
│ │ ✅ 审查通过:可以进入 STEP 5 (测试验证) │ │
|
|
1708
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1709
|
+
│ │
|
|
1710
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1711
|
+
```
|
|
1712
|
+
|
|
1713
|
+
**执行命令**:
|
|
1714
|
+
```bash
|
|
1715
|
+
# 唤醒 DEV 智能体 (建议全新上下文)
|
|
1716
|
+
/dev
|
|
1717
|
+
|
|
1718
|
+
# 🔴 [必须] 执行代码审查
|
|
1719
|
+
*code-review
|
|
1720
|
+
|
|
1721
|
+
# 🚨 门禁检查:
|
|
1722
|
+
# - APPROVED: 继续到 STEP 5 (测试验证)
|
|
1723
|
+
# - CHANGES_REQUESTED: 返回 STEP 3 修复
|
|
1724
|
+
```
|
|
1725
|
+
|
|
1726
|
+
---
|
|
1727
|
+
|
|
773
1728
|
```yaml
|
|
774
1729
|
task: code_review
|
|
775
1730
|
role: DEV (Amelia)
|
|
776
|
-
|
|
1731
|
+
mandatory: true
|
|
777
1732
|
|
|
778
1733
|
precondition:
|
|
779
|
-
- sprint_status[story_key] == "
|
|
1734
|
+
- sprint_status[story_key] == "in-progress"
|
|
1735
|
+
- all_unit_tests_passed == true
|
|
780
1736
|
|
|
781
1737
|
review_dimensions:
|
|
782
|
-
functionality:
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
1738
|
+
- functionality: "是否满足所有接受标准"
|
|
1739
|
+
- code_quality: "清晰可读、命名规范、遵循项目规范"
|
|
1740
|
+
- security: "注入风险、敏感数据处理、认证授权"
|
|
1741
|
+
- test_coverage: "测试充分性、边界情况覆盖"
|
|
1742
|
+
|
|
1743
|
+
gate_check:
|
|
1744
|
+
pass_condition: "APPROVED"
|
|
1745
|
+
on_pass:
|
|
1746
|
+
- action: "更新故事状态: in-progress → review"
|
|
1747
|
+
- action: "编辑故事文件: Status: in-progress → Status: review"
|
|
1748
|
+
- next_step: "STEP 5 - 测试验证 (TEA)"
|
|
1749
|
+
on_fail:
|
|
1750
|
+
- action: "返回 STEP 3 修复"
|
|
1751
|
+
- next_step: "修复后重新执行 STEP 3-4"
|
|
1752
|
+
```
|
|
786
1753
|
|
|
787
|
-
|
|
788
|
-
- 代码是否清晰可读
|
|
789
|
-
- 命名是否规范
|
|
790
|
-
- 是否遵循项目规范
|
|
1754
|
+
---
|
|
791
1755
|
|
|
792
|
-
|
|
793
|
-
- 是否存在注入风险
|
|
794
|
-
- 敏感数据处理
|
|
795
|
-
- 认证授权正确性
|
|
1756
|
+
#### Step 4.2.5: 🔴 STEP 5 - 测试验证 (test-verification) [必须]
|
|
796
1757
|
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
1758
|
+
**调用工作流**:
|
|
1759
|
+
- `{xiaoma_folder}/xmc/workflows/testarch/trace/workflow.yaml` (需求追溯)
|
|
1760
|
+
- `{xiaoma_folder}/xmc/workflows/testarch/test-review/workflow.yaml` (测试质量评审)
|
|
1761
|
+
|
|
1762
|
+
> ⚠️ **强制要求**: 此步骤为必须执行步骤!测试验证通过后才能标记故事为 done!这是故事生命周期的最后一步!
|
|
1763
|
+
|
|
1764
|
+
---
|
|
1765
|
+
|
|
1766
|
+
##### 🤖 智能体执行指令
|
|
1767
|
+
|
|
1768
|
+
```
|
|
1769
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1770
|
+
│ 🔴 STEP 5: 测试验证 [必须] - 故事生命周期最后一步 │
|
|
1771
|
+
│ 智能体: Murat (TEA) │
|
|
1772
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1773
|
+
│ │
|
|
1774
|
+
│ 前置条件检查: │
|
|
1775
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1776
|
+
│ │ # 验证故事状态为 review 且代码审查已通过 │ │
|
|
1777
|
+
│ │ grep "Status: review" {story-file} │ │
|
|
1778
|
+
│ │ │ │
|
|
1779
|
+
│ │ ❌ 如果状态不是 review:返回 STEP 4 完成代码审查 │ │
|
|
1780
|
+
│ │ ✅ 如果状态正确:继续执行测试验证 │ │
|
|
1781
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1782
|
+
│ │
|
|
1783
|
+
│ 执行步骤: │
|
|
1784
|
+
│ │
|
|
1785
|
+
│ 1. 唤醒 TEA 智能体 │
|
|
1786
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1787
|
+
│ │ 执行命令: /tea │ │
|
|
1788
|
+
│ │ 说明: 唤醒测试架构师 Murat,准备进行测试验证 │ │
|
|
1789
|
+
│ │ 建议: 使用全新上下文以获得更客观的测试评估 │ │
|
|
1790
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1791
|
+
│ │
|
|
1792
|
+
│ 2. 🔴 执行需求追溯验证 [必须] │
|
|
1793
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1794
|
+
│ │ 执行命令: *trace │ │
|
|
1795
|
+
│ │ 说明: 验证代码实现与需求的追溯关系 │ │
|
|
1796
|
+
│ │ 验证内容: │ │
|
|
1797
|
+
│ │ - 需求覆盖: 每个接受标准都有对应的代码实现 │ │
|
|
1798
|
+
│ │ - 测试覆盖: 每个接受标准都有对应的测试用例 │ │
|
|
1799
|
+
│ │ - 追溯完整: 需求 ↔ 代码 ↔ 测试 三向追溯 │ │
|
|
1800
|
+
│ │ - 无遗漏: 没有未实现的需求项 │ │
|
|
1801
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1802
|
+
│ │
|
|
1803
|
+
│ 3. 🔴 执行测试质量评审 [必须] │
|
|
1804
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1805
|
+
│ │ 执行命令: *test-review │ │
|
|
1806
|
+
│ │ 说明: 评审测试用例的质量和完整性 │ │
|
|
1807
|
+
│ │ 评审维度: │ │
|
|
1808
|
+
│ │ - 测试充分性: 测试用例是否覆盖所有场景 │ │
|
|
1809
|
+
│ │ - 边界测试: 边界条件和异常情况是否测试 │ │
|
|
1810
|
+
│ │ - 测试质量: 断言是否明确、测试是否独立 │ │
|
|
1811
|
+
│ │ - 集成测试: 模块间交互是否验证 │ │
|
|
1812
|
+
│ │ - 回归测试: 是否可防止功能退化 │ │
|
|
1813
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1814
|
+
│ │
|
|
1815
|
+
│ 🚨 验证结果处理: │
|
|
1816
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1817
|
+
│ │ PASS (通过): │ │
|
|
1818
|
+
│ │ - 状态: review → done │ │
|
|
1819
|
+
│ │ - 故事完成!处理下一个故事 │ │
|
|
1820
|
+
│ │ │ │
|
|
1821
|
+
│ │ FAIL (失败): │ │
|
|
1822
|
+
│ │ - 状态: review → in-progress │ │
|
|
1823
|
+
│ │ - 返回 STEP 3 修复问题 │ │
|
|
1824
|
+
│ │ - 修复后重新执行 STEP 3-5 │ │
|
|
1825
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1826
|
+
│ │
|
|
1827
|
+
│ 🚨 门禁检查 (GATE 5 - 最终门禁): │
|
|
1828
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1829
|
+
│ │ # 故事完成验证 │ │
|
|
1830
|
+
│ │ 1. 需求追溯完整 (*trace 通过) │ │
|
|
1831
|
+
│ │ 2. 测试质量达标 (*test-review 通过) │ │
|
|
1832
|
+
│ │ 3. 所有测试 100% 通过 │ │
|
|
1833
|
+
│ │ 4. 故事状态已更新为 done │ │
|
|
1834
|
+
│ │ │ │
|
|
1835
|
+
│ │ ❌ 验证未通过:返回 STEP 3 修复 │ │
|
|
1836
|
+
│ │ ✅ 验证通过:故事完成,处理下一个故事 │ │
|
|
1837
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1838
|
+
│ │
|
|
1839
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1840
|
+
```
|
|
1841
|
+
|
|
1842
|
+
**执行命令**:
|
|
1843
|
+
```bash
|
|
1844
|
+
# 🚨 前置检查:验证故事状态为 review
|
|
1845
|
+
grep "Status: review" {sprint_artifacts}/stories/{story-key}.md
|
|
1846
|
+
# 如果状态不是 review,禁止继续!必须返回 STEP 4
|
|
1847
|
+
|
|
1848
|
+
# 唤醒 TEA 智能体 (建议全新上下文)
|
|
1849
|
+
/tea
|
|
1850
|
+
|
|
1851
|
+
# 🔴 [必须] 执行需求追溯验证
|
|
1852
|
+
*trace
|
|
1853
|
+
|
|
1854
|
+
# 🔴 [必须] 执行测试质量评审
|
|
1855
|
+
*test-review
|
|
1856
|
+
|
|
1857
|
+
# 根据验证结果处理:
|
|
1858
|
+
# PASS → 故事完成,处理下一个故事
|
|
1859
|
+
# FAIL → 返回 STEP 3 修复
|
|
1860
|
+
```
|
|
801
1861
|
|
|
802
|
-
|
|
803
|
-
- 测试是否充分
|
|
804
|
-
- 边界情况覆盖
|
|
805
|
-
- 测试可维护性
|
|
1862
|
+
---
|
|
806
1863
|
|
|
807
|
-
|
|
808
|
-
|
|
1864
|
+
```yaml
|
|
1865
|
+
task: test_verification
|
|
1866
|
+
role: TEA (Murat)
|
|
1867
|
+
agent_activation:
|
|
1868
|
+
command: "/tea"
|
|
1869
|
+
workflows:
|
|
1870
|
+
- "*trace"
|
|
1871
|
+
- "*test-review"
|
|
1872
|
+
recommendation: "使用全新上下文以获得更客观的测试评估"
|
|
1873
|
+
|
|
1874
|
+
precondition:
|
|
1875
|
+
- sprint_status[story_key] == "review"
|
|
1876
|
+
- code_review_result == "APPROVED"
|
|
1877
|
+
|
|
1878
|
+
verification_steps:
|
|
1879
|
+
trace:
|
|
1880
|
+
workflow: "*trace"
|
|
1881
|
+
purpose: "需求追溯验证"
|
|
1882
|
+
checks:
|
|
1883
|
+
- 每个接受标准都有对应的代码实现
|
|
1884
|
+
- 每个接受标准都有对应的测试用例
|
|
1885
|
+
- 需求 ↔ 代码 ↔ 测试 三向追溯完整
|
|
1886
|
+
- 没有未实现的需求项
|
|
1887
|
+
|
|
1888
|
+
test_review:
|
|
1889
|
+
workflow: "*test-review"
|
|
1890
|
+
purpose: "测试质量评审"
|
|
1891
|
+
dimensions:
|
|
1892
|
+
test_adequacy:
|
|
1893
|
+
- 测试用例是否覆盖所有场景
|
|
1894
|
+
- 正常流程和异常流程是否都有测试
|
|
1895
|
+
boundary_testing:
|
|
1896
|
+
- 边界条件是否测试
|
|
1897
|
+
- 异常输入是否测试
|
|
1898
|
+
test_quality:
|
|
1899
|
+
- 断言是否明确
|
|
1900
|
+
- 测试是否独立可重复
|
|
1901
|
+
integration_testing:
|
|
1902
|
+
- 模块间交互是否验证
|
|
1903
|
+
- API 契约是否测试
|
|
1904
|
+
regression_prevention:
|
|
1905
|
+
- 是否可防止功能退化
|
|
1906
|
+
|
|
1907
|
+
verification_outcome:
|
|
1908
|
+
PASS:
|
|
809
1909
|
action: "更新状态为 done"
|
|
810
1910
|
update_sprint_status:
|
|
811
1911
|
story_key: "review → done"
|
|
1912
|
+
# ⚠️ 强制执行以下操作!
|
|
1913
|
+
mandatory_updates:
|
|
1914
|
+
- "编辑故事文件: Status: review → Status: done"
|
|
1915
|
+
- "编辑 sprint-status.yaml: story_key: review → story_key: done"
|
|
812
1916
|
|
|
813
|
-
|
|
1917
|
+
FAIL:
|
|
814
1918
|
action: "生成修复任务,返回开发"
|
|
815
|
-
|
|
816
|
-
#
|
|
1919
|
+
return_to_step: "STEP 3"
|
|
1920
|
+
# ⚠️ 强制执行以下操作!
|
|
1921
|
+
mandatory_updates:
|
|
1922
|
+
- "编辑故事文件: Status: review → Status: in-progress"
|
|
1923
|
+
- "编辑 sprint-status.yaml: story_key: review → story_key: in-progress"
|
|
1924
|
+
note: "修复后需要重新执行 STEP 3 → STEP 4 → STEP 5"
|
|
817
1925
|
|
|
818
1926
|
best_practice: |
|
|
819
|
-
|
|
1927
|
+
建议使用全新上下文执行测试验证以获得更客观的评估
|
|
820
1928
|
```
|
|
821
1929
|
|
|
822
1930
|
---
|
|
823
1931
|
|
|
824
|
-
#### Step 4.2.
|
|
1932
|
+
#### Step 4.2.6: 更新 Sprint 状态 (每个故事完成后)
|
|
825
1933
|
|
|
826
1934
|
```yaml
|
|
827
1935
|
task: update_sprint_status
|
|
1936
|
+
description: "每个故事完成 5 步流程后自动更新 Sprint 状态"
|
|
828
1937
|
after_each_story:
|
|
829
1938
|
- name: 更新故事状态
|
|
830
1939
|
file: "{sprint_artifacts}/sprint-status.yaml"
|
|
@@ -889,148 +1998,175 @@ For Each Task in Story:
|
|
|
889
1998
|
|
|
890
1999
|
---
|
|
891
2000
|
|
|
892
|
-
### Step 5:
|
|
2001
|
+
### Step 5: Sprint 收尾与最终报告 (Phase 5) [可选]
|
|
893
2002
|
|
|
894
|
-
**角色激活**: TEA (测试架构师 - Murat)
|
|
2003
|
+
**角色激活**: TEA (测试架构师 - Murat) / SM (Scrum Master - Bob)
|
|
895
2004
|
|
|
896
|
-
>
|
|
2005
|
+
> **说明**: 本阶段为可选阶段,在所有用户故事完成后执行。用于生成 Sprint 级别的综合报告和收尾工作。
|
|
2006
|
+
> **注意**: 每个故事的测试验证已在 Phase 4 的 STEP 5 中由 TEA 完成,此阶段主要是 Sprint 级别的汇总。
|
|
897
2007
|
|
|
898
|
-
|
|
2008
|
+
---
|
|
899
2009
|
|
|
900
|
-
|
|
901
|
-
phase: 5
|
|
902
|
-
name: 测试验证
|
|
903
|
-
role: TEA (Murat)
|
|
904
|
-
inputs:
|
|
905
|
-
- 实现的代码
|
|
906
|
-
- 测试代码
|
|
907
|
-
- prd.md
|
|
908
|
-
- stories/
|
|
909
|
-
- architecture.md
|
|
910
|
-
outputs:
|
|
911
|
-
- test-report.md
|
|
912
|
-
- quality-report.md
|
|
913
|
-
- traceability-matrix.md
|
|
914
|
-
- coverage-report/
|
|
2010
|
+
#### 🤖 智能体执行指令
|
|
915
2011
|
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
2012
|
+
```
|
|
2013
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
2014
|
+
│ Phase 5: Sprint 收尾与最终报告 [可选] │
|
|
2015
|
+
│ 智能体: TEA (Murat) / SM (Bob) │
|
|
2016
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
2017
|
+
│ │
|
|
2018
|
+
│ 前置条件检查: │
|
|
2019
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
2020
|
+
│ │ # 验证所有故事状态为 done │ │
|
|
2021
|
+
│ │ # 如果存在未完成的故事,则不执行本阶段 │ │
|
|
2022
|
+
│ │ grep "Status: done" {sprint_artifacts}/stories/*.md │ │
|
|
2023
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
2024
|
+
│ │
|
|
2025
|
+
│ Step 5.1: 唤醒 TEA 智能体 (可选 - 生成质量报告) │
|
|
2026
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
2027
|
+
│ │ 执行命令: /tea ││
|
|
2028
|
+
│ │ 说明: 唤醒测试架构师 Murat,生成 Sprint 级别质量报告 ││
|
|
2029
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
2030
|
+
│ │
|
|
2031
|
+
│ Step 5.2: NFR 验证 (可选 - 非功能需求综合评估) │
|
|
2032
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
2033
|
+
│ │ 执行命令: *nfr-assess ││
|
|
2034
|
+
│ │ 说明: 验证整个 Sprint 的非功能性需求 (性能、安全、可用性) ││
|
|
2035
|
+
│ │ 输出: nfr-assessment-report.md ││
|
|
2036
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
2037
|
+
│ │
|
|
2038
|
+
│ Step 5.3: (可选) 测试自动化增强 │
|
|
2039
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
2040
|
+
│ │ 执行命令: *automate ││
|
|
2041
|
+
│ │ 说明: 生成额外的测试自动化代码 ││
|
|
2042
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
2043
|
+
│ │
|
|
2044
|
+
│ Step 5.4: (可选) CI/CD 流水线 │
|
|
2045
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
2046
|
+
│ │ 执行命令: *ci ││
|
|
2047
|
+
│ │ 说明: 搭建 CI/CD 质量流水线脚手架 ││
|
|
2048
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
2049
|
+
│ │
|
|
2050
|
+
│ Step 5.5: 生成 Sprint 最终报告 │
|
|
2051
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
2052
|
+
│ │ 输出: sprint-summary-report.md ││
|
|
2053
|
+
│ │ 内容: ││
|
|
2054
|
+
│ │ - Sprint 执行摘要 ││
|
|
2055
|
+
│ │ - 故事完成统计 ││
|
|
2056
|
+
│ │ - 质量指标汇总 ││
|
|
2057
|
+
│ │ - 问题和经验教训 ││
|
|
2058
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
2059
|
+
│ │
|
|
2060
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
927
2061
|
```
|
|
928
2062
|
|
|
929
|
-
|
|
2063
|
+
**执行序列** (可选):
|
|
2064
|
+
```bash
|
|
2065
|
+
# 前置检查:验证所有故事已完成
|
|
2066
|
+
# 如果有未完成的故事,跳过本阶段
|
|
930
2067
|
|
|
931
|
-
|
|
2068
|
+
# 1. (可选) 唤醒 TEA 智能体进行 Sprint 级别质量报告
|
|
2069
|
+
/tea
|
|
932
2070
|
|
|
933
|
-
|
|
2071
|
+
# 2. (可选) NFR 综合验证
|
|
2072
|
+
*nfr-assess
|
|
934
2073
|
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
role: TEA (Murat)
|
|
938
|
-
invoke_workflow: "*trace"
|
|
939
|
-
|
|
940
|
-
actions:
|
|
941
|
-
- name: 构建追溯矩阵
|
|
942
|
-
map:
|
|
943
|
-
- FR → Stories → Tests
|
|
944
|
-
- AC → Test Cases
|
|
945
|
-
- NFR → Validation Tests
|
|
2074
|
+
# 3. (可选) 测试自动化增强
|
|
2075
|
+
*automate
|
|
946
2076
|
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
- 每个 FR 都有对应测试
|
|
950
|
-
- 每个 AC 都有对应测试用例
|
|
951
|
-
- 无遗漏的需求
|
|
2077
|
+
# 4. (可选) CI/CD 流水线
|
|
2078
|
+
*ci
|
|
952
2079
|
|
|
953
|
-
|
|
954
|
-
|
|
2080
|
+
# 5. 生成 Sprint 最终报告
|
|
2081
|
+
# 自动生成 sprint-summary-report.md
|
|
955
2082
|
```
|
|
956
2083
|
|
|
957
2084
|
---
|
|
958
2085
|
|
|
959
|
-
|
|
2086
|
+
**自动执行内容**:
|
|
960
2087
|
|
|
961
2088
|
```yaml
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
2089
|
+
phase: 5
|
|
2090
|
+
name: Sprint 收尾与最终报告
|
|
2091
|
+
optional: true
|
|
2092
|
+
role: TEA (Murat) / SM (Bob)
|
|
2093
|
+
precondition:
|
|
2094
|
+
- all_stories_status == "done"
|
|
2095
|
+
|
|
2096
|
+
agent_activation:
|
|
2097
|
+
command: "/tea"
|
|
2098
|
+
optional_workflows:
|
|
2099
|
+
- trigger: "*nfr-assess"
|
|
2100
|
+
purpose: "Sprint 级别非功能性需求验证"
|
|
2101
|
+
- trigger: "*automate"
|
|
2102
|
+
purpose: "测试自动化增强(可选)"
|
|
2103
|
+
- trigger: "*ci"
|
|
2104
|
+
purpose: "CI/CD 流水线(可选)"
|
|
2105
|
+
|
|
2106
|
+
inputs:
|
|
2107
|
+
- 所有已完成的故事文件
|
|
2108
|
+
- 各故事的测试报告
|
|
2109
|
+
- sprint-status.yaml
|
|
2110
|
+
outputs:
|
|
2111
|
+
- sprint-summary-report.md
|
|
2112
|
+
- nfr-assessment-report.md (可选)
|
|
2113
|
+
|
|
2114
|
+
note: |
|
|
2115
|
+
由于每个故事已在 Phase 4 的 STEP 5 中完成 TEA 测试验证:
|
|
2116
|
+
- *trace (需求追溯)
|
|
2117
|
+
- *test-review (测试质量评审)
|
|
2118
|
+
|
|
2119
|
+
本阶段主要做 Sprint 级别的汇总和可选的增强工作。
|
|
984
2120
|
```
|
|
985
2121
|
|
|
986
2122
|
---
|
|
987
2123
|
|
|
988
|
-
#### Step 5.
|
|
989
|
-
|
|
990
|
-
**调用工作流**: `{xiaoma_folder}/xmc/workflows/testarch/test-review/workflow.yaml`
|
|
2124
|
+
#### Step 5.1: Sprint 级别质量汇总
|
|
991
2125
|
|
|
992
2126
|
```yaml
|
|
993
|
-
task:
|
|
2127
|
+
task: sprint_quality_summary
|
|
2128
|
+
optional: true
|
|
994
2129
|
role: TEA (Murat)
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
- name:
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
- name:
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
output:
|
|
1017
|
-
test_review_report:
|
|
1018
|
-
score: "[A-F]"
|
|
1019
|
-
issues: []
|
|
1020
|
-
recommendations: []
|
|
2130
|
+
description: "汇总所有故事的测试验证结果,生成 Sprint 级别报告"
|
|
2131
|
+
|
|
2132
|
+
aggregation:
|
|
2133
|
+
- name: 故事完成统计
|
|
2134
|
+
metrics:
|
|
2135
|
+
total_stories: count(stories)
|
|
2136
|
+
completed_stories: count(stories where status == "done")
|
|
2137
|
+
completion_rate: completed_stories / total_stories * 100%
|
|
2138
|
+
|
|
2139
|
+
- name: 测试覆盖汇总
|
|
2140
|
+
metrics:
|
|
2141
|
+
total_tests: sum(story.test_count)
|
|
2142
|
+
passed_tests: sum(story.passed_tests)
|
|
2143
|
+
pass_rate: passed_tests / total_tests * 100%
|
|
2144
|
+
coverage: average(story.coverage)
|
|
2145
|
+
|
|
2146
|
+
- name: 质量指标汇总
|
|
2147
|
+
metrics:
|
|
2148
|
+
code_review_issues: sum(story.review_issues)
|
|
2149
|
+
bugs_found: count(bugs)
|
|
2150
|
+
bugs_fixed: count(bugs where status == "fixed")
|
|
1021
2151
|
```
|
|
1022
2152
|
|
|
1023
2153
|
---
|
|
1024
2154
|
|
|
1025
|
-
#### Step 5.
|
|
2155
|
+
#### Step 5.2: NFR 综合验证 (可选)
|
|
1026
2156
|
|
|
1027
2157
|
**调用工作流**: `{xiaoma_folder}/xmc/workflows/testarch/nfr-assess/workflow.yaml`
|
|
1028
2158
|
|
|
2159
|
+
**执行命令**: `/tea → *nfr-assess`
|
|
2160
|
+
|
|
1029
2161
|
```yaml
|
|
1030
2162
|
task: nfr_validation
|
|
1031
2163
|
role: TEA (Murat)
|
|
2164
|
+
optional: true
|
|
2165
|
+
agent_command: "/tea → *nfr-assess"
|
|
1032
2166
|
invoke_workflow: "*nfr-assess"
|
|
1033
2167
|
|
|
2168
|
+
description: "Sprint 级别的非功能性需求综合评估"
|
|
2169
|
+
|
|
1034
2170
|
validations:
|
|
1035
2171
|
performance:
|
|
1036
2172
|
- nfr_id: "NFR-PERF-001"
|
|
@@ -1046,10 +2182,6 @@ validations:
|
|
|
1046
2182
|
requirement: "所有 API 需要认证"
|
|
1047
2183
|
test_method: "安全扫描"
|
|
1048
2184
|
|
|
1049
|
-
- nfr_id: "NFR-SEC-002"
|
|
1050
|
-
requirement: "敏感数据加密传输"
|
|
1051
|
-
test_method: "HTTPS 验证"
|
|
1052
|
-
|
|
1053
2185
|
usability:
|
|
1054
2186
|
- nfr_id: "NFR-USA-001"
|
|
1055
2187
|
requirement: "支持响应式布局"
|
|
@@ -1058,79 +2190,43 @@ validations:
|
|
|
1058
2190
|
|
|
1059
2191
|
---
|
|
1060
2192
|
|
|
1061
|
-
#### Step 5.
|
|
2193
|
+
#### Step 5.3: 生成 Sprint 最终报告
|
|
1062
2194
|
|
|
1063
2195
|
```yaml
|
|
1064
|
-
task:
|
|
1065
|
-
actions:
|
|
1066
|
-
- name: 代码覆盖率检查
|
|
1067
|
-
threshold:
|
|
1068
|
-
statements: ">= 80%"
|
|
1069
|
-
branches: ">= 75%"
|
|
1070
|
-
functions: ">= 85%"
|
|
1071
|
-
lines: ">= 80%"
|
|
1072
|
-
|
|
1073
|
-
- name: 代码质量检查
|
|
1074
|
-
run: "npm run lint"
|
|
1075
|
-
threshold:
|
|
1076
|
-
errors: 0
|
|
1077
|
-
warnings: "<= 10"
|
|
1078
|
-
|
|
1079
|
-
- name: 安全扫描
|
|
1080
|
-
run: "npm audit"
|
|
1081
|
-
threshold:
|
|
1082
|
-
critical: 0
|
|
1083
|
-
high: 0
|
|
1084
|
-
|
|
1085
|
-
- name: 类型检查
|
|
1086
|
-
run: "npm run type-check"
|
|
1087
|
-
threshold:
|
|
1088
|
-
errors: 0
|
|
1089
|
-
|
|
1090
|
-
- name: 构建验证
|
|
1091
|
-
run: "npm run build"
|
|
1092
|
-
threshold:
|
|
1093
|
-
success: true
|
|
1094
|
-
```
|
|
1095
|
-
|
|
1096
|
-
---
|
|
1097
|
-
|
|
1098
|
-
#### Step 5.6: 生成测试报告
|
|
1099
|
-
|
|
1100
|
-
```yaml
|
|
1101
|
-
task: generate_reports
|
|
2196
|
+
task: generate_sprint_report
|
|
1102
2197
|
outputs:
|
|
1103
|
-
- name:
|
|
2198
|
+
- name: sprint-summary-report.md
|
|
1104
2199
|
content:
|
|
1105
|
-
- 执行摘要
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
-
|
|
1122
|
-
|
|
2200
|
+
- Sprint 执行摘要
|
|
2201
|
+
- Sprint 目标
|
|
2202
|
+
- 计划 vs 实际完成
|
|
2203
|
+
- 关键成果
|
|
2204
|
+
- 故事完成详情
|
|
2205
|
+
- 已完成故事列表
|
|
2206
|
+
- 各故事状态
|
|
2207
|
+
- 工作量统计
|
|
2208
|
+
- 质量指标
|
|
2209
|
+
- 测试通过率
|
|
2210
|
+
- 代码覆盖率
|
|
2211
|
+
- 代码审查结果
|
|
2212
|
+
- 问题和风险
|
|
2213
|
+
- 遇到的阻塞问题
|
|
2214
|
+
- 解决方案
|
|
2215
|
+
- 遗留问题
|
|
2216
|
+
- 经验教训
|
|
2217
|
+
- 做得好的方面
|
|
2218
|
+
- 需要改进的方面
|
|
2219
|
+
- 下个 Sprint 建议
|
|
1123
2220
|
```
|
|
1124
2221
|
|
|
1125
2222
|
---
|
|
1126
2223
|
|
|
1127
|
-
|
|
1128
|
-
- [ ]
|
|
1129
|
-
- [ ]
|
|
1130
|
-
- [ ]
|
|
1131
|
-
- [ ]
|
|
1132
|
-
- [ ] NFR 验证通过
|
|
1133
|
-
- [ ] 需求追溯完整 (100%)
|
|
2224
|
+
**Sprint 完成检查清单**:
|
|
2225
|
+
- [ ] 所有故事状态为 done
|
|
2226
|
+
- [ ] 所有测试验证通过 (Phase 4 STEP 5)
|
|
2227
|
+
- [ ] sprint-status.yaml 已更新
|
|
2228
|
+
- [ ] Sprint 最终报告已生成 (可选)
|
|
2229
|
+
- [ ] NFR 验证通过 (可选)
|
|
1134
2230
|
|
|
1135
2231
|
---
|
|
1136
2232
|
|
|
@@ -1309,6 +2405,100 @@ status_sync:
|
|
|
1309
2405
|
note: "DEV 智能体会处理审查反馈"
|
|
1310
2406
|
```
|
|
1311
2407
|
|
|
2408
|
+
### 4. 强制状态更新操作 (MANDATORY)
|
|
2409
|
+
|
|
2410
|
+
> ⚠️ **关键**: 以下操作是**必须执行**的,不是可选的描述!
|
|
2411
|
+
|
|
2412
|
+
#### 4.1 Phase 4 开始前 - 创建 sprint-status.yaml
|
|
2413
|
+
|
|
2414
|
+
**必须首先执行** `*sprint-planning` 或手动创建:
|
|
2415
|
+
|
|
2416
|
+
```bash
|
|
2417
|
+
# 在 {sprint_artifacts} 目录创建 sprint-status.yaml
|
|
2418
|
+
# 示例路径: docs/sprint-artifacts/sprint-status.yaml
|
|
2419
|
+
```
|
|
2420
|
+
|
|
2421
|
+
```yaml
|
|
2422
|
+
# sprint-status.yaml - 必须创建此文件
|
|
2423
|
+
generated: "{date}"
|
|
2424
|
+
project: "{project_name}"
|
|
2425
|
+
tracking_system: file-system
|
|
2426
|
+
story_location: "{sprint_artifacts}"
|
|
2427
|
+
|
|
2428
|
+
development_status:
|
|
2429
|
+
epic-1: backlog
|
|
2430
|
+
1-1-story-name: backlog
|
|
2431
|
+
1-2-story-name: backlog
|
|
2432
|
+
# ... 列出所有故事
|
|
2433
|
+
```
|
|
2434
|
+
|
|
2435
|
+
#### 4.2 状态更新文件编辑操作
|
|
2436
|
+
|
|
2437
|
+
**每次状态变化时,必须执行以下两个更新**:
|
|
2438
|
+
|
|
2439
|
+
##### 更新 1: sprint-status.yaml
|
|
2440
|
+
|
|
2441
|
+
```yaml
|
|
2442
|
+
# 编辑 sprint-status.yaml 中的 development_status
|
|
2443
|
+
# 将故事状态从旧值改为新值
|
|
2444
|
+
|
|
2445
|
+
# 示例: 1-1-user-auth 从 backlog 变为 drafted
|
|
2446
|
+
development_status:
|
|
2447
|
+
1-1-user-auth: drafted # 原来是 backlog
|
|
2448
|
+
```
|
|
2449
|
+
|
|
2450
|
+
##### 更新 2: 故事文件
|
|
2451
|
+
|
|
2452
|
+
故事文件必须使用以下格式(符合 SM/DEV 智能体要求):
|
|
2453
|
+
|
|
2454
|
+
```markdown
|
|
2455
|
+
# Story 1.1: User Authentication
|
|
2456
|
+
|
|
2457
|
+
Status: drafted
|
|
2458
|
+
|
|
2459
|
+
## Story
|
|
2460
|
+
As a user,
|
|
2461
|
+
I want to authenticate,
|
|
2462
|
+
so that I can access the system.
|
|
2463
|
+
|
|
2464
|
+
## Acceptance Criteria
|
|
2465
|
+
...
|
|
2466
|
+
```
|
|
2467
|
+
|
|
2468
|
+
**状态行位置**: 在标题之后,第一个 `## ` 节之前
|
|
2469
|
+
|
|
2470
|
+
**允许的状态值**:
|
|
2471
|
+
- `drafted` - 故事文件已创建
|
|
2472
|
+
- `ready-for-dev` - 准备开发
|
|
2473
|
+
- `in-progress` - 开发中
|
|
2474
|
+
- `review` - 等待审查
|
|
2475
|
+
- `done` - 已完成
|
|
2476
|
+
|
|
2477
|
+
#### 4.3 状态更新检查点
|
|
2478
|
+
|
|
2479
|
+
在以下时间点**必须**更新状态:
|
|
2480
|
+
|
|
2481
|
+
| 时间点 | 触发动作 | 更新内容 |
|
|
2482
|
+
|--------|---------|---------|
|
|
2483
|
+
| `*create-story` 完成 | 故事文件创建 | `backlog → drafted` (或 `ready-for-dev`) |
|
|
2484
|
+
| `*develop-story` Step 4 | 开始开发 | `ready-for-dev → in-progress` |
|
|
2485
|
+
| `*develop-story` Step 9 | 开发完成 | `in-progress → review` |
|
|
2486
|
+
| `*code-review` APPROVED | 审查通过 | `review → done` |
|
|
2487
|
+
|
|
2488
|
+
#### 4.4 验证状态更新
|
|
2489
|
+
|
|
2490
|
+
每个阶段完成后,验证状态一致性:
|
|
2491
|
+
|
|
2492
|
+
```bash
|
|
2493
|
+
# 检查 sprint-status.yaml 中的状态
|
|
2494
|
+
grep "story-key" sprint-status.yaml
|
|
2495
|
+
|
|
2496
|
+
# 检查故事文件中的状态
|
|
2497
|
+
head -5 stories/story-key.md | grep "Status:"
|
|
2498
|
+
```
|
|
2499
|
+
|
|
2500
|
+
**状态必须同步**: `sprint-status.yaml` 和故事文件中的状态必须一致!
|
|
2501
|
+
|
|
1312
2502
|
---
|
|
1313
2503
|
|
|
1314
2504
|
## 执行完成
|