@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
- | Phase 1 | Mary (Analyst) | 内置分析能力 | 需求分析、业务规则匹配 |
64
- | Phase 2 | John (PM) | 内置 PRD 能力 | PRD 创建、史诗故事定义 |
65
- | Phase 3 | Winston (Architect) | 内置架构能力 | 架构设计、技术决策 |
66
- | Phase 4 | Bob (SM) | `*sprint-planning` | 生成 sprint-status.yaml |
67
- | Phase 4 | Bob (SM) | `*create-story` | 创建故事文件 (backlog→drafted→ready-for-dev) |
68
- | Phase 4 | Amelia (DEV) | `*develop-story` | TDD 开发 (ready-for-devin-progress→review) |
69
- | Phase 4 | Amelia (DEV) | `*code-review` | 代码审查 (reviewdone) |
70
- | Phase 5 | Murat (TEA) | `*trace` | 需求到测试追踪 |
71
- | Phase 5 | Murat (TEA) | `*test-review` | 测试质量评审 |
72
- | Phase 5 | Murat (TEA) | `*nfr-assess` | NFR 验证 |
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` | 创建故事文件 | backlogdrafted |
87
+ | Phase 4 STEP 2 | Bob (SM) | `*validate-create-story` | 校验故事文件 | draftedready-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`: SM `*create-story` `*validate-create-story` 验证通过
90
- - `ready-for-dev → in-progress`: DEV `*develop-story` Step 4
91
- - `in-progress → review`: DEV `*develop-story` Step 9
92
- - `review → done`: DEV `*code-review` APPROVED
93
- - `review → in-progress`: DEV `*code-review` CHANGES_REQUESTED (返回修复)
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: 开发实现 [SM + DEV 能力]
125
- │ ├─ Sprint 规划
126
- │ ├─ For Each Story:
127
- │ │ ├─ 创建故事上下文
128
- │ │ ├─ TDD 驱动实现
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: 测试验证 [TEA 能力]
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
- - stories/
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
- output: epics/
346
-
347
- - name: 分解用户故事
348
- action: |
349
- 1. 将每个史诗分解为用户故事
350
- 2. 使用 INVEST 原则验证故事质量
351
- 3. 定义接受标准 (Given/When/Then)
352
- 4. 估算故事点
353
- output: stories/
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
- - agent: SM (Bob)
532
- workflow: sprint-planning
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
- - agent: DEV (Amelia)
538
- workflow: dev-story
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
- - agent: DEV (Amelia)
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
- Step 4.2.1: 故事准备 (SM - Bob)
600
- │ ├─ 调用: *create-story
1175
+ 🔴 STEP 1: 创建用户故事 (SM - Bob) [必须]
1176
+ │ ├─ 命令: /sm → *create-story
601
1177
  │ ├─ 输入: Epic 中的故事定义 │
602
- │ ├─ 输出: stories/{story-key}.md
603
- └─ 状态: backlog → drafted → ready-for-dev
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
- Step 4.2.2: 故事开发 (DEV - Amelia)
606
- │ ├─ 调用: *develop-story
607
- │ ├─ 输入: ready-for-dev 状态的故事
1188
+ 🔴 STEP 3: 开发用户故事 (DEV - Amelia) [必须]
1189
+ │ ├─ 命令: /dev → *develop-story
1190
+ │ ├─ 前置: 必须有 ready-for-dev 状态的故事文件
608
1191
  │ ├─ 执行: TDD 驱动开发 (红-绿-重构) │
609
- └─ 状态: ready-for-dev → in-progress → review
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
- Step 4.2.3: 代码审查 (DEV - Amelia)
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: 故事准备 (create-story)
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.2: 故事开发 (develop-story)
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.3: 代码审查 (code-review)
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
- invoke_workflow: "*code-review"
1731
+ mandatory: true
777
1732
 
778
1733
  precondition:
779
- - sprint_status[story_key] == "review"
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
- code_quality:
788
- - 代码是否清晰可读
789
- - 命名是否规范
790
- - 是否遵循项目规范
1754
+ ---
791
1755
 
792
- security:
793
- - 是否存在注入风险
794
- - 敏感数据处理
795
- - 认证授权正确性
1756
+ #### Step 4.2.5: 🔴 STEP 5 - 测试验证 (test-verification) [必须]
796
1757
 
797
- performance:
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
- test_coverage:
803
- - 测试是否充分
804
- - 边界情况覆盖
805
- - 测试可维护性
1862
+ ---
806
1863
 
807
- review_outcome:
808
- APPROVED:
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
- CHANGES_REQUESTED:
1917
+ FAIL:
814
1918
  action: "生成修复任务,返回开发"
815
- insert_review_followups: true
816
- # DEV 智能体会在下次执行时处理审查反馈
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
- 建议使用不同的 LLM 执行代码审查以获得更客观的评估
1927
+ 建议使用全新上下文执行测试验证以获得更客观的评估
820
1928
  ```
821
1929
 
822
1930
  ---
823
1931
 
824
- #### Step 4.2.4: 更新 Sprint 状态
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: 测试验证阶段 (Phase 5)
2001
+ ### Step 5: Sprint 收尾与最终报告 (Phase 5) [可选]
893
2002
 
894
- **角色激活**: TEA (测试架构师 - Murat)
2003
+ **角色激活**: TEA (测试架构师 - Murat) / SM (Scrum Master - Bob)
895
2004
 
896
- > **重要**: 本阶段集成 TEA 智能体的专用测试工作流,提供全面的测试验证能力。
2005
+ > **说明**: 本阶段为可选阶段,在所有用户故事完成后执行。用于生成 Sprint 级别的综合报告和收尾工作。
2006
+ > **注意**: 每个故事的测试验证已在 Phase 4 的 STEP 5 中由 TEA 完成,此阶段主要是 Sprint 级别的汇总。
897
2007
 
898
- **自动执行内容**:
2008
+ ---
899
2009
 
900
- ```yaml
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
- # 调用的 TEA 智能体工作流
917
- workflows_invoked:
918
- - agent: TEA (Murat)
919
- workflow: trace
920
- purpose: "需求到测试的追踪映射"
921
- - agent: TEA (Murat)
922
- workflow: test-review
923
- purpose: "测试质量评审"
924
- - agent: TEA (Murat)
925
- workflow: nfr-assess
926
- purpose: "非功能性需求验证"
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
- #### Step 5.1: 需求追溯验证
2068
+ # 1. (可选) 唤醒 TEA 智能体进行 Sprint 级别质量报告
2069
+ /tea
932
2070
 
933
- **调用工作流**: `{xiaoma_folder}/xmc/workflows/testarch/trace/workflow.yaml`
2071
+ # 2. (可选) NFR 综合验证
2072
+ *nfr-assess
934
2073
 
935
- ```yaml
936
- task: requirement_traceability
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
- - name: 验证覆盖完整性
948
- check:
949
- - 每个 FR 都有对应测试
950
- - 每个 AC 都有对应测试用例
951
- - 无遗漏的需求
2077
+ # 4. (可选) CI/CD 流水线
2078
+ *ci
952
2079
 
953
- - name: 生成追溯报告
954
- output: "traceability-matrix.md"
2080
+ # 5. 生成 Sprint 最终报告
2081
+ # 自动生成 sprint-summary-report.md
955
2082
  ```
956
2083
 
957
2084
  ---
958
2085
 
959
- #### Step 5.2: 执行测试套件
2086
+ **自动执行内容**:
960
2087
 
961
2088
  ```yaml
962
- task: execute_test_suites
963
- actions:
964
- - name: 运行单元测试
965
- command: "npm run test:unit"
966
- collect:
967
- - 通过/失败数量
968
- - 覆盖率报告
969
- - 失败详情
970
-
971
- - name: 运行集成测试
972
- command: "npm run test:integration"
973
- collect:
974
- - 通过/失败数量
975
- - API 测试结果
976
- - 数据库测试结果
977
-
978
- - name: 运行端到端测试
979
- command: "npm run test:e2e"
980
- if: e2e_tests_exist
981
- collect:
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.3: 测试质量评审
989
-
990
- **调用工作流**: `{xiaoma_folder}/xmc/workflows/testarch/test-review/workflow.yaml`
2124
+ #### Step 5.1: Sprint 级别质量汇总
991
2125
 
992
2126
  ```yaml
993
- task: test_quality_review
2127
+ task: sprint_quality_summary
2128
+ optional: true
994
2129
  role: TEA (Murat)
995
- invoke_workflow: "*test-review"
996
-
997
- review_criteria:
998
- - name: 测试充分性
999
- check:
1000
- - 关键路径是否覆盖
1001
- - 边界条件是否测试
1002
- - 异常场景是否覆盖
1003
-
1004
- - name: 测试质量
1005
- check:
1006
- - 测试是否独立
1007
- - 断言是否明确
1008
- - 测试是否可维护
1009
-
1010
- - name: 测试模式
1011
- check:
1012
- - AAA 模式 (Arrange-Act-Assert)
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.4: NFR 验证
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.5: 质量门禁检查
2193
+ #### Step 5.3: 生成 Sprint 最终报告
1062
2194
 
1063
2195
  ```yaml
1064
- task: quality_gate_check
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: test-report.md
2198
+ - name: sprint-summary-report.md
1104
2199
  content:
1105
- - 执行摘要
1106
- - 测试执行详情
1107
- - 代码覆盖率
1108
- - 需求追溯
1109
- - 问题和建议
1110
-
1111
- - name: quality-report.md
1112
- content:
1113
- - 质量门禁结果
1114
- - 代码质量分析
1115
- - 安全扫描结果
1116
- - NFR 验证结果
1117
-
1118
- - name: traceability-matrix.md
1119
- content:
1120
- - FR → Story → Test 映射
1121
- - AC → Test Case 映射
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
- - [ ] 测试覆盖率 >= 80%
1129
- - [ ] 所有测试通过 (100%)
1130
- - [ ] 无严重安全漏洞 (0 critical/high)
1131
- - [ ] 代码质量评分 >= B
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
  ## 执行完成