@zeyue0329/xiaoma-cli 6.0.0-alpha.15 → 6.0.0-alpha.17
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
|
### 知识库配置
|
|
@@ -54,6 +72,44 @@ knowledge_base:
|
|
|
54
72
|
|
|
55
73
|
本工作流实现从需求文档到代码实现的全自动化执行,融合7大智能体能力,通过知识库驱动所有决策,实现零人工干预的端到端开发。
|
|
56
74
|
|
|
75
|
+
### 智能体工作流集成汇总
|
|
76
|
+
|
|
77
|
+
> **重要**: 本工作流严格遵循项目现有智能体的标准工作流,确保完全兼容。
|
|
78
|
+
|
|
79
|
+
| 阶段 | 集成智能体 | 调用的工作流 | 用途 |
|
|
80
|
+
|------|-----------|-------------|------|
|
|
81
|
+
| Phase 1 | Mary (Analyst) | 内置分析能力 | 需求分析、业务规则匹配 |
|
|
82
|
+
| Phase 2 | John (PM) | 内置 PRD 能力 | PRD 创建、史诗故事定义 |
|
|
83
|
+
| Phase 3 | Winston (Architect) | 内置架构能力 | 架构设计、技术决策 |
|
|
84
|
+
| Phase 4 | Bob (SM) | `*sprint-planning` | 生成 sprint-status.yaml |
|
|
85
|
+
| Phase 4 | Bob (SM) | `*create-story` | 创建故事文件 (backlog→drafted→ready-for-dev) |
|
|
86
|
+
| Phase 4 | Amelia (DEV) | `*develop-story` | TDD 开发 (ready-for-dev→in-progress→review) |
|
|
87
|
+
| Phase 4 | Amelia (DEV) | `*code-review` | 代码审查 (review→done) |
|
|
88
|
+
| Phase 5 | Murat (TEA) | `*trace` | 需求到测试追踪 |
|
|
89
|
+
| Phase 5 | Murat (TEA) | `*test-review` | 测试质量评审 |
|
|
90
|
+
| Phase 5 | Murat (TEA) | `*nfr-assess` | NFR 验证 |
|
|
91
|
+
|
|
92
|
+
### 故事状态系统 (6状态流转)
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
backlog → drafted → ready-for-dev → in-progress → review → done
|
|
96
|
+
│ │ │ │ │ │
|
|
97
|
+
│ │ │ │ │ └─ 故事完成
|
|
98
|
+
│ │ │ │ └─ 等待代码审查
|
|
99
|
+
│ │ │ └─ 开发进行中
|
|
100
|
+
│ │ └─ 可以开始开发
|
|
101
|
+
│ └─ 故事文件已创建
|
|
102
|
+
└─ 仅存在于 Epic 文件中
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**状态转换触发点**:
|
|
106
|
+
- `backlog → drafted`: SM `*create-story` 创建故事文件
|
|
107
|
+
- `drafted → ready-for-dev`: SM `*create-story` 或 `*validate-create-story` 验证通过
|
|
108
|
+
- `ready-for-dev → in-progress`: DEV `*develop-story` Step 4
|
|
109
|
+
- `in-progress → review`: DEV `*develop-story` Step 9
|
|
110
|
+
- `review → done`: DEV `*code-review` APPROVED
|
|
111
|
+
- `review → in-progress`: DEV `*code-review` CHANGES_REQUESTED (返回修复)
|
|
112
|
+
|
|
57
113
|
```
|
|
58
114
|
┌─────────────────────────────────────────────────────────────────────────┐
|
|
59
115
|
│ 全自动迭代开发流程 │
|
|
@@ -199,20 +255,83 @@ confidence: "high"
|
|
|
199
255
|
|
|
200
256
|
**角色激活**: Analyst (需求分析师)
|
|
201
257
|
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
#### 🤖 智能体执行指令
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
264
|
+
│ Phase 1: 需求分析 │
|
|
265
|
+
│ 智能体: Mary (Analyst) │
|
|
266
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
267
|
+
│ │
|
|
268
|
+
│ Step 1.1: 唤醒 Analyst 智能体 │
|
|
269
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
270
|
+
│ │ 执行命令: /analyst ││
|
|
271
|
+
│ │ 说明: 唤醒业务分析师 Mary,准备进行需求分析工作 ││
|
|
272
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
273
|
+
│ │
|
|
274
|
+
│ Step 1.2: 执行产品简报/调研工作流 │
|
|
275
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
276
|
+
│ │ 执行命令: *product-brief ││
|
|
277
|
+
│ │ 说明: 基于迭代需求文档,创建结构化的产品简报 ││
|
|
278
|
+
│ │ 输入: 迭代需求文档内容 ││
|
|
279
|
+
│ │ 输出: product-brief.md ││
|
|
280
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
281
|
+
│ │
|
|
282
|
+
│ Step 1.3: (可选) 执行深度调研 │
|
|
283
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
284
|
+
│ │ 执行命令: *research ││
|
|
285
|
+
│ │ 说明: 针对复杂需求进行市场/竞品/技术调研 ││
|
|
286
|
+
│ │ 触发条件: 需求涉及新业务领域或技术栈 ││
|
|
287
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
288
|
+
│ │
|
|
289
|
+
│ Step 1.4: 生成需求分析报告 │
|
|
290
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
291
|
+
│ │ 基于 *product-brief 输出,整理为 requirement-analysis.md ││
|
|
292
|
+
│ │ 确保包含: 功能点清单、业务规则、隐含需求、约束和风险 ││
|
|
293
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
294
|
+
│ │
|
|
295
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
**完整执行序列**:
|
|
299
|
+
```bash
|
|
300
|
+
# 1. 唤醒 Analyst 智能体
|
|
301
|
+
/analyst
|
|
302
|
+
|
|
303
|
+
# 2. 执行产品简报工作流
|
|
304
|
+
*product-brief
|
|
305
|
+
|
|
306
|
+
# 3. (可选) 执行深度调研
|
|
307
|
+
*research
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
202
312
|
**自动执行内容**:
|
|
203
313
|
|
|
204
314
|
```yaml
|
|
205
315
|
phase: 1
|
|
206
316
|
name: 需求分析
|
|
207
|
-
role: Analyst
|
|
317
|
+
role: Analyst (Mary)
|
|
318
|
+
agent_activation:
|
|
319
|
+
command: "/analyst"
|
|
320
|
+
workflows:
|
|
321
|
+
- trigger: "*product-brief"
|
|
322
|
+
purpose: "创建产品简报,提取核心需求"
|
|
323
|
+
- trigger: "*research"
|
|
324
|
+
purpose: "深度调研(可选)"
|
|
325
|
+
condition: "需求涉及新业务领域时执行"
|
|
208
326
|
inputs:
|
|
209
327
|
- 迭代需求文档
|
|
210
328
|
- 业务知识库
|
|
211
329
|
outputs:
|
|
212
|
-
- requirement-analysis.md
|
|
330
|
+
- requirement-analysis.md (基于 product-brief 整理)
|
|
213
331
|
|
|
214
332
|
tasks:
|
|
215
333
|
- name: 解析需求文档
|
|
334
|
+
agent_command: "/analyst → *product-brief"
|
|
216
335
|
action: |
|
|
217
336
|
1. 读取需求文档全文
|
|
218
337
|
2. 提取功能点列表
|
|
@@ -276,22 +395,94 @@ tasks:
|
|
|
276
395
|
|
|
277
396
|
**角色激活**: PM (产品经理) + PO (产品负责人)
|
|
278
397
|
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
#### 🤖 智能体执行指令
|
|
401
|
+
|
|
402
|
+
```
|
|
403
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
404
|
+
│ Phase 2: 需求规划 │
|
|
405
|
+
│ 智能体: John (PM) │
|
|
406
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
407
|
+
│ │
|
|
408
|
+
│ Step 2.1: 唤醒 PM 智能体 │
|
|
409
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
410
|
+
│ │ 执行命令: /pm ││
|
|
411
|
+
│ │ 说明: 唤醒产品经理 John,准备进行需求规划工作 ││
|
|
412
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
413
|
+
│ │
|
|
414
|
+
│ Step 2.2: 创建 PRD 文档 │
|
|
415
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
416
|
+
│ │ 执行命令: *create-prd ││
|
|
417
|
+
│ │ 说明: 基于需求分析报告,创建完整的产品需求文档 ││
|
|
418
|
+
│ │ 输入: requirement-analysis.md / product-brief.md ││
|
|
419
|
+
│ │ 输出: prd.md ││
|
|
420
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
421
|
+
│ │
|
|
422
|
+
│ Step 2.3: (推荐) 验证 PRD │
|
|
423
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
424
|
+
│ │ 执行命令: *validate-prd ││
|
|
425
|
+
│ │ 说明: 使用全新上下文和不同 LLM 验证 PRD 质量 ││
|
|
426
|
+
│ │ 建议: 使用不同的 LLM 以获得更客观的评估 ││
|
|
427
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
428
|
+
│ │
|
|
429
|
+
│ Step 2.4: 创建史诗和故事定义 │
|
|
430
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
431
|
+
│ │ 执行命令: *create-epics-and-stories ││
|
|
432
|
+
│ │ 说明: 从 PRD 创建史诗和用户故事(在架构完成后执行) ││
|
|
433
|
+
│ │ 输入: prd.md + architecture.md ││
|
|
434
|
+
│ │ 输出: epics/epic-XXX.md ││
|
|
435
|
+
│ │ ⚠️ 注意: 故事定义写在 Epic 文件中,独立故事文件在 Phase 4 ││
|
|
436
|
+
│ │ 由 SM 的 *create-story 创建 ││
|
|
437
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
438
|
+
│ │
|
|
439
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
**完整执行序列**:
|
|
443
|
+
```bash
|
|
444
|
+
# 1. 唤醒 PM 智能体
|
|
445
|
+
/pm
|
|
446
|
+
|
|
447
|
+
# 2. 创建 PRD 文档
|
|
448
|
+
*create-prd
|
|
449
|
+
|
|
450
|
+
# 3. (推荐) 验证 PRD
|
|
451
|
+
*validate-prd
|
|
452
|
+
|
|
453
|
+
# 4. 创建史诗和故事定义 (需在架构设计后执行)
|
|
454
|
+
*create-epics-and-stories
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
279
459
|
**自动执行内容**:
|
|
280
460
|
|
|
281
461
|
```yaml
|
|
282
462
|
phase: 2
|
|
283
463
|
name: 需求规划
|
|
284
|
-
role: PM + PO
|
|
464
|
+
role: PM (John) + PO
|
|
465
|
+
agent_activation:
|
|
466
|
+
command: "/pm"
|
|
467
|
+
workflows:
|
|
468
|
+
- trigger: "*create-prd"
|
|
469
|
+
purpose: "创建产品需求文档"
|
|
470
|
+
- trigger: "*validate-prd"
|
|
471
|
+
purpose: "验证 PRD 质量(推荐)"
|
|
472
|
+
- trigger: "*create-epics-and-stories"
|
|
473
|
+
purpose: "创建史诗和故事定义"
|
|
474
|
+
prerequisite: "需在架构设计完成后执行"
|
|
285
475
|
inputs:
|
|
286
476
|
- requirement-analysis.md
|
|
287
477
|
- 业务知识库
|
|
288
478
|
outputs:
|
|
289
479
|
- prd.md
|
|
290
|
-
- epics/
|
|
291
|
-
-
|
|
480
|
+
- epics/epic-XXX.md # 包含故事定义的 Epic 文件
|
|
481
|
+
# 注意: 独立故事文件将在 Phase 4 由 *create-story 创建
|
|
292
482
|
|
|
293
483
|
tasks:
|
|
294
484
|
- name: 创建 PRD
|
|
485
|
+
agent_command: "/pm → *create-prd"
|
|
295
486
|
action: |
|
|
296
487
|
1. 基于需求分析报告创建 PRD
|
|
297
488
|
2. 定义产品目标和成功指标
|
|
@@ -299,20 +490,22 @@ tasks:
|
|
|
299
490
|
4. 定义非功能需求 (NFR)
|
|
300
491
|
output: prd.md
|
|
301
492
|
|
|
302
|
-
- name:
|
|
493
|
+
- name: 创建史诗文件(包含故事定义)
|
|
494
|
+
agent_command: "/pm → *create-epics-and-stories"
|
|
303
495
|
action: |
|
|
304
496
|
1. 将功能需求按模块分组为史诗
|
|
305
497
|
2. 定义每个史诗的业务价值
|
|
306
498
|
3. 确定史诗间的依赖关系
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
499
|
+
4. ⚠️ 重要: 故事定义写在 Epic 文件中,不单独创建故事文件
|
|
500
|
+
5. 故事文件将在 Phase 4 由 SM *create-story 工作流创建
|
|
501
|
+
output: epics/epic-XXX.md
|
|
502
|
+
note: |
|
|
503
|
+
⚠️ Phase 2 不创建独立的故事文件!
|
|
504
|
+
故事的详细定义(用户故事、接受标准、任务分解)应写在 Epic 文件中。
|
|
505
|
+
Phase 4 的 *create-story 工作流会:
|
|
506
|
+
1. 从 Epic 文件提取故事定义
|
|
507
|
+
2. 创建符合 DEV 智能体格式的故事文件
|
|
508
|
+
3. 自动设置正确的 Status: drafted
|
|
316
509
|
|
|
317
510
|
- name: PO 验收标准审核
|
|
318
511
|
action: |
|
|
@@ -363,12 +556,98 @@ tasks:
|
|
|
363
556
|
|
|
364
557
|
**角色激活**: Architect (架构师)
|
|
365
558
|
|
|
559
|
+
---
|
|
560
|
+
|
|
561
|
+
#### 🤖 智能体执行指令
|
|
562
|
+
|
|
563
|
+
```
|
|
564
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
565
|
+
│ Phase 3: 架构设计 │
|
|
566
|
+
│ 智能体: Winston (Architect) │
|
|
567
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
568
|
+
│ │
|
|
569
|
+
│ Step 3.1: 唤醒 Architect 智能体 │
|
|
570
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
571
|
+
│ │ 执行命令: /architect ││
|
|
572
|
+
│ │ 说明: 唤醒架构师 Winston,准备进行架构设计工作 ││
|
|
573
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
574
|
+
│ │
|
|
575
|
+
│ Step 3.2: 创建架构文档 │
|
|
576
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
577
|
+
│ │ 执行命令: *create-architecture ││
|
|
578
|
+
│ │ 说明: 基于 PRD 创建完整的架构设计文档 ││
|
|
579
|
+
│ │ 输入: prd.md + 现有代码库 ││
|
|
580
|
+
│ │ 输出: architecture.md + adr/ ││
|
|
581
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
582
|
+
│ │
|
|
583
|
+
│ Step 3.3: (推荐) 验证架构 │
|
|
584
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
585
|
+
│ │ 执行命令: *validate-architecture ││
|
|
586
|
+
│ │ 说明: 使用全新上下文和不同 LLM 验证架构设计 ││
|
|
587
|
+
│ │ 建议: 使用不同的 LLM 以获得更客观的评估 ││
|
|
588
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
589
|
+
│ │
|
|
590
|
+
│ Step 3.4: (可选) 实现准备验证 │
|
|
591
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
592
|
+
│ │ 执行命令: *implementation-readiness ││
|
|
593
|
+
│ │ 说明: 验证 PRD、UX、架构、史诗和故事是否对齐 ││
|
|
594
|
+
│ │ 建议: 在进入 Phase 4 开发前执行此验证 ││
|
|
595
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
596
|
+
│ │
|
|
597
|
+
│ Step 3.5: (可选) 创建架构图 │
|
|
598
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
599
|
+
│ │ 执行命令: *create-excalidraw-diagram ││
|
|
600
|
+
│ │ 说明: 创建系统架构图或技术图表 ││
|
|
601
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
602
|
+
│ │
|
|
603
|
+
│ Step 3.6: (可选) 创建数据流图 │
|
|
604
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
605
|
+
│ │ 执行命令: *create-excalidraw-dataflow ││
|
|
606
|
+
│ │ 说明: 创建数据流图 ││
|
|
607
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
608
|
+
│ │
|
|
609
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
**完整执行序列**:
|
|
613
|
+
```bash
|
|
614
|
+
# 1. 唤醒 Architect 智能体
|
|
615
|
+
/architect
|
|
616
|
+
|
|
617
|
+
# 2. 创建架构文档
|
|
618
|
+
*create-architecture
|
|
619
|
+
|
|
620
|
+
# 3. (推荐) 验证架构
|
|
621
|
+
*validate-architecture
|
|
622
|
+
|
|
623
|
+
# 4. (可选) 实现准备验证
|
|
624
|
+
*implementation-readiness
|
|
625
|
+
|
|
626
|
+
# 5. (可选) 创建架构图
|
|
627
|
+
*create-excalidraw-diagram
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
---
|
|
631
|
+
|
|
366
632
|
**自动执行内容**:
|
|
367
633
|
|
|
368
634
|
```yaml
|
|
369
635
|
phase: 3
|
|
370
636
|
name: 架构设计
|
|
371
|
-
role: Architect
|
|
637
|
+
role: Architect (Winston)
|
|
638
|
+
agent_activation:
|
|
639
|
+
command: "/architect"
|
|
640
|
+
workflows:
|
|
641
|
+
- trigger: "*create-architecture"
|
|
642
|
+
purpose: "创建架构设计文档"
|
|
643
|
+
- trigger: "*validate-architecture"
|
|
644
|
+
purpose: "验证架构设计(推荐)"
|
|
645
|
+
- trigger: "*implementation-readiness"
|
|
646
|
+
purpose: "实现准备验证(可选)"
|
|
647
|
+
- trigger: "*create-excalidraw-diagram"
|
|
648
|
+
purpose: "创建架构图(可选)"
|
|
649
|
+
- trigger: "*create-excalidraw-dataflow"
|
|
650
|
+
purpose: "创建数据流图(可选)"
|
|
372
651
|
inputs:
|
|
373
652
|
- prd.md
|
|
374
653
|
- epics/
|
|
@@ -380,6 +659,7 @@ outputs:
|
|
|
380
659
|
|
|
381
660
|
tasks:
|
|
382
661
|
- name: 分析现有架构
|
|
662
|
+
agent_command: "/architect → *create-architecture (Step 1)"
|
|
383
663
|
action: |
|
|
384
664
|
1. 扫描目标代码库结构
|
|
385
665
|
2. 识别现有技术栈
|
|
@@ -387,6 +667,7 @@ tasks:
|
|
|
387
667
|
4. 识别可复用组件
|
|
388
668
|
|
|
389
669
|
- name: 设计技术方案
|
|
670
|
+
agent_command: "/architect → *create-architecture (Step 2)"
|
|
390
671
|
action: |
|
|
391
672
|
1. 基于 PRD 设计技术实现方案
|
|
392
673
|
2. 匹配技术知识库中的最佳实践
|
|
@@ -394,12 +675,14 @@ tasks:
|
|
|
394
675
|
4. 设计 API 接口
|
|
395
676
|
|
|
396
677
|
- name: 数据模型设计
|
|
678
|
+
agent_command: "/architect → *create-architecture (Step 3)"
|
|
397
679
|
action: |
|
|
398
680
|
1. 设计新增/变更的数据表
|
|
399
681
|
2. 创建 ER 图
|
|
400
682
|
3. 设计数据迁移策略
|
|
401
683
|
|
|
402
684
|
- name: 技术决策记录
|
|
685
|
+
agent_command: "/architect → *create-architecture (Step 4)"
|
|
403
686
|
action: |
|
|
404
687
|
1. 记录关键技术选型
|
|
405
688
|
2. 记录选型理由和权衡
|
|
@@ -449,121 +732,1082 @@ tasks:
|
|
|
449
732
|
|
|
450
733
|
### Step 4: 开发实现阶段 (Phase 4)
|
|
451
734
|
|
|
452
|
-
**角色激活**: SM (Scrum Master) + DEV (
|
|
735
|
+
**角色激活**: SM (Scrum Master - Bob) + DEV (Developer - Amelia)
|
|
736
|
+
|
|
737
|
+
> **重要**: 本阶段严格遵循项目智能体的标准工作流,确保与 SM 和 DEV 智能体的完全兼容。
|
|
738
|
+
|
|
739
|
+
---
|
|
740
|
+
|
|
741
|
+
#### 🤖 智能体执行指令概览
|
|
742
|
+
|
|
743
|
+
```
|
|
744
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
745
|
+
│ Phase 4: 开发实现 │
|
|
746
|
+
│ 智能体: Bob (SM) + Amelia (DEV) │
|
|
747
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
748
|
+
│ │
|
|
749
|
+
│ 阶段流程概览: │
|
|
750
|
+
│ │
|
|
751
|
+
│ ┌──────────────────────────────────────────────────────────────┐
|
|
752
|
+
│ │ Step 4.1: Sprint 规划 (SM) │
|
|
753
|
+
│ │ ┌────────────────────────────────────────────────────────┐ │
|
|
754
|
+
│ │ │ 执行: /sm → *sprint-planning │ │
|
|
755
|
+
│ │ │ 输出: sprint-status.yaml │ │
|
|
756
|
+
│ │ └────────────────────────────────────────────────────────┘ │
|
|
757
|
+
│ └──────────────────────────────────────────────────────────────┘
|
|
758
|
+
│ ↓ │
|
|
759
|
+
│ ┌──────────────────────────────────────────────────────────────┐
|
|
760
|
+
│ │ Step 4.2: For Each Story 循环 │
|
|
761
|
+
│ │ │
|
|
762
|
+
│ │ Step 4.2.1: 故事准备 (SM) │
|
|
763
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
764
|
+
│ │ │ 执行: /sm → *create-story │ │
|
|
765
|
+
│ │ │ 状态: backlog → drafted → ready-for-dev │ │
|
|
766
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
767
|
+
│ │ ↓ │
|
|
768
|
+
│ │ Step 4.2.2: 故事开发 (DEV) │
|
|
769
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
770
|
+
│ │ │ 执行: /dev → *develop-story │ │
|
|
771
|
+
│ │ │ 状态: ready-for-dev → in-progress → review │ │
|
|
772
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
773
|
+
│ │ ↓ │
|
|
774
|
+
│ │ Step 4.2.3: 代码审查 (DEV) │
|
|
775
|
+
│ │ ┌────────────────────────────────────────────────────┐ │
|
|
776
|
+
│ │ │ 执行: /dev → *code-review │ │
|
|
777
|
+
│ │ │ 状态: review → done (通过) 或 返回修复 │ │
|
|
778
|
+
│ │ └────────────────────────────────────────────────────┘ │
|
|
779
|
+
│ │ │
|
|
780
|
+
│ └──────────────────────────────────────────────────────────────┘
|
|
781
|
+
│ │
|
|
782
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
**完整执行序列**:
|
|
786
|
+
```bash
|
|
787
|
+
# === Step 4.1: Sprint 规划 ===
|
|
788
|
+
# 1. 唤醒 SM 智能体
|
|
789
|
+
/sm
|
|
790
|
+
|
|
791
|
+
# 2. 执行 Sprint 规划
|
|
792
|
+
*sprint-planning
|
|
793
|
+
|
|
794
|
+
# === Step 4.2: 故事开发循环 (对每个故事重复) ===
|
|
795
|
+
|
|
796
|
+
# --- Step 4.2.1: 故事准备 (SM) ---
|
|
797
|
+
# 3. 唤醒 SM 智能体 (如果不在当前上下文)
|
|
798
|
+
/sm
|
|
799
|
+
|
|
800
|
+
# 4. 创建故事文件
|
|
801
|
+
*create-story
|
|
802
|
+
|
|
803
|
+
# 5. (推荐) 验证故事
|
|
804
|
+
*validate-create-story
|
|
805
|
+
|
|
806
|
+
# --- Step 4.2.2: 故事开发 (DEV) ---
|
|
807
|
+
# 6. 唤醒 DEV 智能体
|
|
808
|
+
/dev
|
|
809
|
+
|
|
810
|
+
# 7. 执行故事开发
|
|
811
|
+
*develop-story
|
|
812
|
+
|
|
813
|
+
# --- Step 4.2.3: 代码审查 (DEV) ---
|
|
814
|
+
# 8. 唤醒 DEV 智能体 (建议使用全新上下文)
|
|
815
|
+
/dev
|
|
816
|
+
|
|
817
|
+
# 9. 执行代码审查
|
|
818
|
+
*code-review
|
|
819
|
+
|
|
820
|
+
# --- 重复 Step 4.2 直到所有故事完成 ---
|
|
821
|
+
```
|
|
822
|
+
|
|
823
|
+
---
|
|
824
|
+
|
|
825
|
+
**故事状态定义** (与 SM 智能体一致):
|
|
826
|
+
|
|
827
|
+
```yaml
|
|
828
|
+
# 故事状态流转 (6状态系统)
|
|
829
|
+
story_status:
|
|
830
|
+
backlog: "故事仅存在于 epic 文件中"
|
|
831
|
+
drafted: "故事文件已创建于 stories 文件夹"
|
|
832
|
+
ready-for-dev: "故事草稿已审核,可以开始开发"
|
|
833
|
+
in-progress: "开发者正在积极实现中"
|
|
834
|
+
review: "实现完成,等待代码审查"
|
|
835
|
+
done: "故事已完成"
|
|
836
|
+
|
|
837
|
+
# Epic 状态
|
|
838
|
+
epic_status:
|
|
839
|
+
backlog: "Epic 尚未开始"
|
|
840
|
+
in-progress: "Epic 正在进行中"
|
|
841
|
+
done: "Epic 中所有故事已完成"
|
|
842
|
+
```
|
|
453
843
|
|
|
454
844
|
**自动执行内容**:
|
|
455
845
|
|
|
456
846
|
```yaml
|
|
457
847
|
phase: 4
|
|
458
848
|
name: 开发实现
|
|
459
|
-
role: SM + DEV
|
|
460
849
|
inputs:
|
|
461
850
|
- architecture.md
|
|
462
|
-
-
|
|
851
|
+
- epics/*.md # 包含故事定义的 Epic 文件
|
|
463
852
|
- 技术知识库
|
|
464
853
|
outputs:
|
|
854
|
+
- sprint-status.yaml # 使用 SM 智能体的标准格式
|
|
855
|
+
- stories/*.md # 独立故事文件
|
|
465
856
|
- 实现的代码
|
|
466
857
|
- 测试代码
|
|
467
|
-
-
|
|
858
|
+
- code-review-reports/
|
|
859
|
+
|
|
860
|
+
# 调用的智能体工作流
|
|
861
|
+
workflows_invoked:
|
|
862
|
+
- agent: SM (Bob)
|
|
863
|
+
workflow: sprint-planning
|
|
864
|
+
purpose: "生成 sprint-status.yaml"
|
|
865
|
+
- agent: SM (Bob)
|
|
866
|
+
workflow: create-story
|
|
867
|
+
purpose: "为每个故事创建详细故事文件"
|
|
868
|
+
- agent: DEV (Amelia)
|
|
869
|
+
workflow: dev-story
|
|
870
|
+
purpose: "TDD 驱动的故事实现"
|
|
871
|
+
- agent: DEV (Amelia)
|
|
872
|
+
workflow: code-review
|
|
873
|
+
purpose: "代码审查验证"
|
|
874
|
+
```
|
|
468
875
|
|
|
469
|
-
|
|
470
|
-
- name: Sprint 规划
|
|
471
|
-
role: SM
|
|
472
|
-
action: |
|
|
473
|
-
1. 基于故事优先级和依赖关系排序
|
|
474
|
-
2. 创建 sprint-status.yaml
|
|
475
|
-
3. 确定故事执行顺序
|
|
876
|
+
---
|
|
476
877
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
878
|
+
#### Step 4.1: Sprint 规划 (SM 角色)
|
|
879
|
+
|
|
880
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/sprint-planning/workflow.yaml`
|
|
881
|
+
|
|
882
|
+
---
|
|
883
|
+
|
|
884
|
+
##### 🤖 智能体执行指令
|
|
885
|
+
|
|
886
|
+
```
|
|
887
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
888
|
+
│ Step 4.1: Sprint 规划 │
|
|
889
|
+
│ 智能体: Bob (SM) │
|
|
890
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
891
|
+
│ │
|
|
892
|
+
│ 执行步骤: │
|
|
893
|
+
│ │
|
|
894
|
+
│ 1. 唤醒 SM 智能体 │
|
|
895
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
896
|
+
│ │ 执行命令: /sm │ │
|
|
897
|
+
│ │ 说明: 唤醒 Scrum Master Bob,准备进行 Sprint 规划 │ │
|
|
898
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
899
|
+
│ │
|
|
900
|
+
│ 2. 执行 Sprint 规划工作流 │
|
|
901
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
902
|
+
│ │ 执行命令: *sprint-planning │ │
|
|
903
|
+
│ │ 说明: 分析 Epic 文件,生成 sprint-status.yaml │ │
|
|
904
|
+
│ │ 输入: epics/*.md │ │
|
|
905
|
+
│ │ 输出: sprint-status.yaml │ │
|
|
906
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
907
|
+
│ │
|
|
908
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
489
909
|
```
|
|
490
910
|
|
|
491
|
-
|
|
911
|
+
**执行命令**:
|
|
912
|
+
```bash
|
|
913
|
+
# 唤醒 SM 智能体
|
|
914
|
+
/sm
|
|
915
|
+
|
|
916
|
+
# 执行 Sprint 规划
|
|
917
|
+
*sprint-planning
|
|
918
|
+
```
|
|
919
|
+
|
|
920
|
+
---
|
|
921
|
+
|
|
922
|
+
```yaml
|
|
923
|
+
task: sprint_planning
|
|
924
|
+
role: SM (Bob)
|
|
925
|
+
agent_activation:
|
|
926
|
+
command: "/sm"
|
|
927
|
+
workflow: "*sprint-planning"
|
|
928
|
+
invoke_workflow: "*sprint-planning"
|
|
929
|
+
actions:
|
|
930
|
+
- name: 分析 Epic 文件
|
|
931
|
+
scan:
|
|
932
|
+
- "{output_folder}/*epic*.md"
|
|
933
|
+
extract:
|
|
934
|
+
- Epic ID 和名称
|
|
935
|
+
- 所有故事标识符
|
|
936
|
+
- 依赖关系
|
|
937
|
+
|
|
938
|
+
- name: 生成 sprint-status.yaml
|
|
939
|
+
output_format: |
|
|
940
|
+
# Sprint Status File (SM 智能体标准格式)
|
|
941
|
+
generated: {date}
|
|
942
|
+
project: {project_name}
|
|
943
|
+
project_key: {project_key}
|
|
944
|
+
tracking_system: file-system
|
|
945
|
+
story_location: "{sprint_artifacts}"
|
|
946
|
+
|
|
947
|
+
development_status:
|
|
948
|
+
epic-1: backlog
|
|
949
|
+
1-1-story-name: backlog
|
|
950
|
+
1-2-story-name: backlog
|
|
951
|
+
epic-1-retrospective: optional
|
|
952
|
+
epic-2: backlog
|
|
953
|
+
2-1-story-name: backlog
|
|
954
|
+
|
|
955
|
+
- name: 确定开发顺序
|
|
956
|
+
criteria:
|
|
957
|
+
- 技术依赖(基础组件优先)
|
|
958
|
+
- 业务依赖(前置功能优先)
|
|
959
|
+
- 优先级排序
|
|
960
|
+
```
|
|
961
|
+
|
|
962
|
+
---
|
|
963
|
+
|
|
964
|
+
#### Step 4.2: 故事开发循环
|
|
965
|
+
|
|
966
|
+
**对于每个故事,执行完整的状态转换和开发循环**:
|
|
967
|
+
|
|
968
|
+
```
|
|
969
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
970
|
+
│ 故事生命周期管理 │
|
|
971
|
+
├─────────────────────────────────────────────────────────────────────────────┤
|
|
972
|
+
│ │
|
|
973
|
+
│ Step 4.2.1: 故事准备 (SM - Bob) │
|
|
974
|
+
│ ├─ 调用: *create-story │
|
|
975
|
+
│ ├─ 输入: Epic 中的故事定义 │
|
|
976
|
+
│ ├─ 输出: stories/{story-key}.md │
|
|
977
|
+
│ └─ 状态: backlog → drafted → ready-for-dev │
|
|
978
|
+
│ │
|
|
979
|
+
│ Step 4.2.2: 故事开发 (DEV - Amelia) │
|
|
980
|
+
│ ├─ 调用: *develop-story │
|
|
981
|
+
│ ├─ 输入: ready-for-dev 状态的故事 │
|
|
982
|
+
│ ├─ 执行: TDD 驱动开发 (红-绿-重构) │
|
|
983
|
+
│ └─ 状态: ready-for-dev → in-progress → review │
|
|
984
|
+
│ │
|
|
985
|
+
│ Step 4.2.3: 代码审查 (DEV - Amelia) │
|
|
986
|
+
│ ├─ 调用: *code-review │
|
|
987
|
+
│ ├─ 输入: review 状态的故事 │
|
|
988
|
+
│ ├─ 审查: 功能正确性 + 代码质量 + 安全性 │
|
|
989
|
+
│ └─ 状态: review → done (通过) 或 返回修复 │
|
|
990
|
+
│ │
|
|
991
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
992
|
+
```
|
|
993
|
+
|
|
994
|
+
---
|
|
995
|
+
|
|
996
|
+
#### Step 4.2.1: 故事准备 (create-story)
|
|
997
|
+
|
|
998
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/create-story/workflow.yaml`
|
|
999
|
+
|
|
1000
|
+
---
|
|
1001
|
+
|
|
1002
|
+
##### 🤖 智能体执行指令
|
|
1003
|
+
|
|
1004
|
+
```
|
|
1005
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1006
|
+
│ Step 4.2.1: 故事准备 │
|
|
1007
|
+
│ 智能体: Bob (SM) │
|
|
1008
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1009
|
+
│ │
|
|
1010
|
+
│ 执行步骤: │
|
|
1011
|
+
│ │
|
|
1012
|
+
│ 1. 唤醒 SM 智能体 │
|
|
1013
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1014
|
+
│ │ 执行命令: /sm │ │
|
|
1015
|
+
│ │ 说明: 唤醒 Scrum Master Bob,准备创建故事文件 │ │
|
|
1016
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1017
|
+
│ │
|
|
1018
|
+
│ 2. 创建故事文件 │
|
|
1019
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1020
|
+
│ │ 执行命令: *create-story │ │
|
|
1021
|
+
│ │ 说明: 从 Epic 中提取故事定义,创建独立的故事文件 │ │
|
|
1022
|
+
│ │ 输入: sprint-status.yaml + epics/*.md │ │
|
|
1023
|
+
│ │ 输出: stories/{story-key}.md │ │
|
|
1024
|
+
│ │ 状态: backlog → drafted → ready-for-dev │ │
|
|
1025
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1026
|
+
│ │
|
|
1027
|
+
│ 3. (推荐) 验证故事文件 │
|
|
1028
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1029
|
+
│ │ 执行命令: *validate-create-story │ │
|
|
1030
|
+
│ │ 说明: 使用全新上下文验证故事质量 │ │
|
|
1031
|
+
│ │ 建议: 使用不同的 LLM 以获得更客观的评估 │ │
|
|
1032
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1033
|
+
│ │
|
|
1034
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1035
|
+
```
|
|
1036
|
+
|
|
1037
|
+
**执行命令**:
|
|
1038
|
+
```bash
|
|
1039
|
+
# 唤醒 SM 智能体
|
|
1040
|
+
/sm
|
|
1041
|
+
|
|
1042
|
+
# 创建故事文件
|
|
1043
|
+
*create-story
|
|
1044
|
+
|
|
1045
|
+
# (推荐) 验证故事文件
|
|
1046
|
+
*validate-create-story
|
|
1047
|
+
```
|
|
1048
|
+
|
|
1049
|
+
---
|
|
1050
|
+
|
|
1051
|
+
```yaml
|
|
1052
|
+
task: prepare_story
|
|
1053
|
+
role: SM (Bob)
|
|
1054
|
+
agent_activation:
|
|
1055
|
+
command: "/sm"
|
|
1056
|
+
workflows:
|
|
1057
|
+
- trigger: "*create-story"
|
|
1058
|
+
purpose: "创建故事文件"
|
|
1059
|
+
- trigger: "*validate-create-story"
|
|
1060
|
+
purpose: "验证故事(推荐)"
|
|
1061
|
+
invoke_workflow: "*create-story"
|
|
1062
|
+
|
|
1063
|
+
for_each: story in sprint_status.development_status
|
|
1064
|
+
where: status == "backlog" AND is_story (not epic/retrospective)
|
|
1065
|
+
|
|
1066
|
+
actions:
|
|
1067
|
+
- name: 创建故事文件
|
|
1068
|
+
inputs:
|
|
1069
|
+
- sprint_status: "{sprint_artifacts}/sprint-status.yaml"
|
|
1070
|
+
- epics_file: "{output_folder}/epics.md"
|
|
1071
|
+
- prd_file: "{output_folder}/PRD.md"
|
|
1072
|
+
- architecture_file: "{output_folder}/architecture.md"
|
|
1073
|
+
|
|
1074
|
+
- name: 生成故事上下文
|
|
1075
|
+
include:
|
|
1076
|
+
- 用户故事描述
|
|
1077
|
+
- 接受标准 (Given-When-Then)
|
|
1078
|
+
- 技术说明 (Dev Notes)
|
|
1079
|
+
- 任务/子任务分解
|
|
1080
|
+
- 相关文件列表
|
|
1081
|
+
|
|
1082
|
+
- name: 更新状态
|
|
1083
|
+
update_sprint_status:
|
|
1084
|
+
story_key: "backlog → drafted"
|
|
1085
|
+
|
|
1086
|
+
- name: 自动验证并标记 ready-for-dev
|
|
1087
|
+
# SM 智能体的 create-story 支持直接标记 ready-for-dev
|
|
1088
|
+
validate:
|
|
1089
|
+
- 接受标准完整性
|
|
1090
|
+
- 任务分解合理性
|
|
1091
|
+
- 技术说明充分性
|
|
1092
|
+
on_pass:
|
|
1093
|
+
update_sprint_status:
|
|
1094
|
+
story_key: "drafted → ready-for-dev"
|
|
1095
|
+
```
|
|
1096
|
+
|
|
1097
|
+
**故事文件格式** (符合 DEV 智能体要求):
|
|
1098
|
+
|
|
1099
|
+
> ⚠️ **关键**: 必须包含 `Status:` 行,且位于标题之后!
|
|
1100
|
+
|
|
1101
|
+
```markdown
|
|
1102
|
+
# Story: {story-key}
|
|
1103
|
+
|
|
1104
|
+
Status: drafted
|
|
1105
|
+
|
|
1106
|
+
## Story
|
|
1107
|
+
As a [用户角色],
|
|
1108
|
+
I want [功能],
|
|
1109
|
+
So that [价值].
|
|
1110
|
+
|
|
1111
|
+
## Acceptance Criteria
|
|
1112
|
+
- [ ] **AC-001**: Given [条件], When [操作], Then [结果]
|
|
1113
|
+
- [ ] **AC-002**: ...
|
|
1114
|
+
|
|
1115
|
+
## Tasks/Subtasks
|
|
1116
|
+
- [ ] TASK-001: [任务描述]
|
|
1117
|
+
- [ ] SUBTASK-001-1: [子任务]
|
|
1118
|
+
- [ ] SUBTASK-001-2: [子任务]
|
|
1119
|
+
- [ ] TASK-002: [任务描述]
|
|
1120
|
+
|
|
1121
|
+
## Dev Notes
|
|
1122
|
+
### Architecture Requirements
|
|
1123
|
+
[架构设计中的相关部分]
|
|
1124
|
+
|
|
1125
|
+
### Technical Specifications
|
|
1126
|
+
[技术实现说明]
|
|
1127
|
+
|
|
1128
|
+
### Coding Standards
|
|
1129
|
+
[从知识库获取的编码规范]
|
|
1130
|
+
|
|
1131
|
+
## Dev Agent Record
|
|
1132
|
+
### Implementation Plan
|
|
1133
|
+
[开发过程中填写]
|
|
1134
|
+
|
|
1135
|
+
### Debug Log
|
|
1136
|
+
[调试日志]
|
|
1137
|
+
|
|
1138
|
+
### Completion Notes
|
|
1139
|
+
[完成说明]
|
|
1140
|
+
|
|
1141
|
+
## File List
|
|
1142
|
+
[变更的文件列表]
|
|
1143
|
+
|
|
1144
|
+
## Change Log
|
|
1145
|
+
[变更日志]
|
|
1146
|
+
```
|
|
1147
|
+
|
|
1148
|
+
> **注意**: `Status:` 行位于文件顶部(标题之后),不是在底部!
|
|
1149
|
+
> 状态值将随开发进度更新: `drafted → ready-for-dev → in-progress → review → done`
|
|
1150
|
+
|
|
1151
|
+
---
|
|
1152
|
+
|
|
1153
|
+
#### Step 4.2.2: 故事开发 (develop-story)
|
|
1154
|
+
|
|
1155
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/dev-story/workflow.yaml`
|
|
1156
|
+
|
|
1157
|
+
---
|
|
1158
|
+
|
|
1159
|
+
##### 🤖 智能体执行指令
|
|
1160
|
+
|
|
1161
|
+
```
|
|
1162
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1163
|
+
│ Step 4.2.2: 故事开发 │
|
|
1164
|
+
│ 智能体: Amelia (DEV) │
|
|
1165
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1166
|
+
│ │
|
|
1167
|
+
│ 执行步骤: │
|
|
1168
|
+
│ │
|
|
1169
|
+
│ 1. 唤醒 DEV 智能体 │
|
|
1170
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1171
|
+
│ │ 执行命令: /dev │ │
|
|
1172
|
+
│ │ 说明: 唤醒开发者 Amelia,准备进行 TDD 开发 │ │
|
|
1173
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1174
|
+
│ │
|
|
1175
|
+
│ 2. 执行故事开发工作流 │
|
|
1176
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1177
|
+
│ │ 执行命令: *develop-story │ │
|
|
1178
|
+
│ │ 说明: 执行 TDD 驱动的故事开发 │ │
|
|
1179
|
+
│ │ 前置条件: 故事状态为 ready-for-dev │ │
|
|
1180
|
+
│ │ 执行流程: │ │
|
|
1181
|
+
│ │ - Step 4: 标记为 in-progress │ │
|
|
1182
|
+
│ │ - Step 5: TDD 实现 (红-绿-重构) │ │
|
|
1183
|
+
│ │ - Step 6: 编写全面测试 │ │
|
|
1184
|
+
│ │ - Step 7: 运行验证和测试 │ │
|
|
1185
|
+
│ │ - Step 8: 验证并标记任务完成 │ │
|
|
1186
|
+
│ │ - Step 9: 标记为 review │ │
|
|
1187
|
+
│ │ 状态: ready-for-dev → in-progress → review │ │
|
|
1188
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1189
|
+
│ │
|
|
1190
|
+
│ ⚠️ 关键规则: │
|
|
1191
|
+
│ - 故事文件是唯一的事实来源 │
|
|
1192
|
+
│ - 严格按照 Tasks/Subtasks 顺序执行 │
|
|
1193
|
+
│ - 绝不实现故事文件中未定义的内容 │
|
|
1194
|
+
│ - 每个任务完成前必须有测试覆盖 │
|
|
1195
|
+
│ - 所有测试必须 100% 通过才能继续 │
|
|
1196
|
+
│ │
|
|
1197
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1198
|
+
```
|
|
1199
|
+
|
|
1200
|
+
**执行命令**:
|
|
1201
|
+
```bash
|
|
1202
|
+
# 唤醒 DEV 智能体
|
|
1203
|
+
/dev
|
|
1204
|
+
|
|
1205
|
+
# 执行故事开发
|
|
1206
|
+
*develop-story
|
|
1207
|
+
```
|
|
1208
|
+
|
|
1209
|
+
---
|
|
1210
|
+
|
|
1211
|
+
```yaml
|
|
1212
|
+
task: develop_story
|
|
1213
|
+
role: DEV (Amelia)
|
|
1214
|
+
agent_activation:
|
|
1215
|
+
command: "/dev"
|
|
1216
|
+
workflow: "*develop-story"
|
|
1217
|
+
invoke_workflow: "*develop-story"
|
|
1218
|
+
|
|
1219
|
+
precondition:
|
|
1220
|
+
- sprint_status[story_key] == "ready-for-dev"
|
|
1221
|
+
|
|
1222
|
+
execution_flow:
|
|
1223
|
+
# DEV 智能体 dev-story 工作流的 10 个步骤
|
|
1224
|
+
step_1: "查找 ready-for-dev 故事并加载"
|
|
1225
|
+
step_2: "加载项目上下文和故事信息"
|
|
1226
|
+
step_3: "检测是否是代码审查后的继续"
|
|
1227
|
+
step_4: "标记故事为 in-progress"
|
|
1228
|
+
step_5: "TDD 实现 (红-绿-重构)"
|
|
1229
|
+
step_6: "编写全面测试"
|
|
1230
|
+
step_7: "运行验证和测试"
|
|
1231
|
+
step_8: "验证并标记任务完成"
|
|
1232
|
+
step_9: "故事完成,标记为 review"
|
|
1233
|
+
step_10: "完成沟通和用户支持"
|
|
1234
|
+
|
|
1235
|
+
tdd_cycle:
|
|
1236
|
+
red_phase:
|
|
1237
|
+
- 根据接受标准编写失败测试
|
|
1238
|
+
- 确认测试失败原因是功能未实现
|
|
1239
|
+
|
|
1240
|
+
green_phase:
|
|
1241
|
+
- 实现最小代码使测试通过
|
|
1242
|
+
- 运行测试确认通过
|
|
1243
|
+
|
|
1244
|
+
refactor_phase:
|
|
1245
|
+
- 优化代码结构
|
|
1246
|
+
- 确保测试仍然通过
|
|
1247
|
+
|
|
1248
|
+
critical_rules:
|
|
1249
|
+
- "故事文件是唯一的事实来源"
|
|
1250
|
+
- "严格按照 Tasks/Subtasks 顺序执行"
|
|
1251
|
+
- "绝不实现故事文件中未定义的内容"
|
|
1252
|
+
- "每个任务完成前必须有测试覆盖"
|
|
1253
|
+
- "所有测试必须 100% 通过才能继续"
|
|
1254
|
+
|
|
1255
|
+
status_transitions:
|
|
1256
|
+
on_start: "ready-for-dev → in-progress"
|
|
1257
|
+
on_complete: "in-progress → review"
|
|
1258
|
+
|
|
1259
|
+
# ⚠️ 强制状态更新操作 - 必须执行!
|
|
1260
|
+
mandatory_updates:
|
|
1261
|
+
on_start:
|
|
1262
|
+
- action: "编辑故事文件: Status: ready-for-dev → Status: in-progress"
|
|
1263
|
+
- action: "编辑 sprint-status.yaml: story_key: ready-for-dev → story_key: in-progress"
|
|
1264
|
+
on_complete:
|
|
1265
|
+
- action: "编辑故事文件: Status: in-progress → Status: review"
|
|
1266
|
+
- action: "编辑 sprint-status.yaml: story_key: in-progress → story_key: review"
|
|
1267
|
+
```
|
|
1268
|
+
|
|
1269
|
+
---
|
|
1270
|
+
|
|
1271
|
+
#### Step 4.2.3: 代码审查 (code-review)
|
|
1272
|
+
|
|
1273
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/4-implementation/code-review/workflow.yaml`
|
|
1274
|
+
|
|
1275
|
+
---
|
|
1276
|
+
|
|
1277
|
+
##### 🤖 智能体执行指令
|
|
1278
|
+
|
|
1279
|
+
```
|
|
1280
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1281
|
+
│ Step 4.2.3: 代码审查 │
|
|
1282
|
+
│ 智能体: Amelia (DEV) │
|
|
1283
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1284
|
+
│ │
|
|
1285
|
+
│ 执行步骤: │
|
|
1286
|
+
│ │
|
|
1287
|
+
│ 1. 唤醒 DEV 智能体 (建议全新上下文) │
|
|
1288
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1289
|
+
│ │ 执行命令: /dev │ │
|
|
1290
|
+
│ │ 说明: 唤醒开发者 Amelia,准备进行代码审查 │ │
|
|
1291
|
+
│ │ 建议: 使用全新上下文和不同 LLM 以获得更客观的评估 │ │
|
|
1292
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1293
|
+
│ │
|
|
1294
|
+
│ 2. 执行代码审查工作流 │
|
|
1295
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
1296
|
+
│ │ 执行命令: *code-review │ │
|
|
1297
|
+
│ │ 说明: 执行彻底的代码审查 │ │
|
|
1298
|
+
│ │ 前置条件: 故事状态为 review │ │
|
|
1299
|
+
│ │ 审查维度: │ │
|
|
1300
|
+
│ │ - 功能正确性: 是否满足所有接受标准 │ │
|
|
1301
|
+
│ │ - 代码质量: 清晰可读、命名规范、遵循项目规范 │ │
|
|
1302
|
+
│ │ - 安全性: 注入风险、敏感数据处理、认证授权 │ │
|
|
1303
|
+
│ │ - 性能: 性能问题、数据库查询、内存泄漏 │ │
|
|
1304
|
+
│ │ - 测试覆盖: 测试充分性、边界情况覆盖 │ │
|
|
1305
|
+
│ │ │ │
|
|
1306
|
+
│ │ 审查结果: │ │
|
|
1307
|
+
│ │ - APPROVED: review → done │ │
|
|
1308
|
+
│ │ - CHANGES_REQUESTED: review → in-progress (返回修复) │ │
|
|
1309
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
1310
|
+
│ │
|
|
1311
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1312
|
+
```
|
|
1313
|
+
|
|
1314
|
+
**执行命令**:
|
|
1315
|
+
```bash
|
|
1316
|
+
# 唤醒 DEV 智能体 (建议全新上下文)
|
|
1317
|
+
/dev
|
|
1318
|
+
|
|
1319
|
+
# 执行代码审查
|
|
1320
|
+
*code-review
|
|
1321
|
+
```
|
|
1322
|
+
|
|
1323
|
+
---
|
|
1324
|
+
|
|
1325
|
+
```yaml
|
|
1326
|
+
task: code_review
|
|
1327
|
+
role: DEV (Amelia)
|
|
1328
|
+
agent_activation:
|
|
1329
|
+
command: "/dev"
|
|
1330
|
+
workflow: "*code-review"
|
|
1331
|
+
recommendation: "使用全新上下文和不同 LLM 以获得更客观的评估"
|
|
1332
|
+
invoke_workflow: "*code-review"
|
|
1333
|
+
|
|
1334
|
+
precondition:
|
|
1335
|
+
- sprint_status[story_key] == "review"
|
|
1336
|
+
|
|
1337
|
+
review_dimensions:
|
|
1338
|
+
functionality:
|
|
1339
|
+
- 是否满足所有接受标准
|
|
1340
|
+
- 边界情况是否处理
|
|
1341
|
+
- 异常处理是否完善
|
|
1342
|
+
|
|
1343
|
+
code_quality:
|
|
1344
|
+
- 代码是否清晰可读
|
|
1345
|
+
- 命名是否规范
|
|
1346
|
+
- 是否遵循项目规范
|
|
1347
|
+
|
|
1348
|
+
security:
|
|
1349
|
+
- 是否存在注入风险
|
|
1350
|
+
- 敏感数据处理
|
|
1351
|
+
- 认证授权正确性
|
|
1352
|
+
|
|
1353
|
+
performance:
|
|
1354
|
+
- 是否有性能问题
|
|
1355
|
+
- 数据库查询优化
|
|
1356
|
+
- 内存泄漏风险
|
|
1357
|
+
|
|
1358
|
+
test_coverage:
|
|
1359
|
+
- 测试是否充分
|
|
1360
|
+
- 边界情况覆盖
|
|
1361
|
+
- 测试可维护性
|
|
1362
|
+
|
|
1363
|
+
review_outcome:
|
|
1364
|
+
APPROVED:
|
|
1365
|
+
action: "更新状态为 done"
|
|
1366
|
+
update_sprint_status:
|
|
1367
|
+
story_key: "review → done"
|
|
1368
|
+
# ⚠️ 强制执行以下操作!
|
|
1369
|
+
mandatory_updates:
|
|
1370
|
+
- "编辑故事文件: Status: review → Status: done"
|
|
1371
|
+
- "编辑 sprint-status.yaml: story_key: review → story_key: done"
|
|
1372
|
+
|
|
1373
|
+
CHANGES_REQUESTED:
|
|
1374
|
+
action: "生成修复任务,返回开发"
|
|
1375
|
+
insert_review_followups: true
|
|
1376
|
+
# DEV 智能体会在下次执行时处理审查反馈
|
|
1377
|
+
# ⚠️ 强制执行以下操作!
|
|
1378
|
+
mandatory_updates:
|
|
1379
|
+
- "编辑故事文件: Status: review → Status: in-progress"
|
|
1380
|
+
- "编辑 sprint-status.yaml: story_key: review → story_key: in-progress"
|
|
1381
|
+
|
|
1382
|
+
best_practice: |
|
|
1383
|
+
建议使用不同的 LLM 执行代码审查以获得更客观的评估
|
|
1384
|
+
```
|
|
1385
|
+
|
|
1386
|
+
---
|
|
1387
|
+
|
|
1388
|
+
#### Step 4.2.4: 更新 Sprint 状态
|
|
1389
|
+
|
|
1390
|
+
```yaml
|
|
1391
|
+
task: update_sprint_status
|
|
1392
|
+
after_each_story:
|
|
1393
|
+
- name: 更新故事状态
|
|
1394
|
+
file: "{sprint_artifacts}/sprint-status.yaml"
|
|
1395
|
+
update:
|
|
1396
|
+
development_status[story_key]: "{new_status}"
|
|
1397
|
+
|
|
1398
|
+
- name: 更新 Epic 状态
|
|
1399
|
+
logic: |
|
|
1400
|
+
if all_stories_in_epic == "done":
|
|
1401
|
+
epic_status = "done"
|
|
1402
|
+
elif any_story_in_epic == "in-progress" or "review":
|
|
1403
|
+
epic_status = "in-progress"
|
|
1404
|
+
else:
|
|
1405
|
+
epic_status = "backlog"
|
|
1406
|
+
|
|
1407
|
+
- name: 计算进度
|
|
1408
|
+
metrics:
|
|
1409
|
+
total_stories: count(stories)
|
|
1410
|
+
completed_stories: count(stories where status == "done")
|
|
1411
|
+
completion_rate: completed_stories / total_stories * 100%
|
|
1412
|
+
```
|
|
1413
|
+
|
|
1414
|
+
---
|
|
1415
|
+
|
|
1416
|
+
**TDD 执行流程详解**:
|
|
492
1417
|
|
|
493
1418
|
```
|
|
494
1419
|
For Each Task in Story:
|
|
495
|
-
|
|
496
|
-
│ 1. 编写测试 (Red)
|
|
497
|
-
│
|
|
498
|
-
│
|
|
499
|
-
|
|
500
|
-
│
|
|
501
|
-
|
|
502
|
-
│
|
|
503
|
-
|
|
504
|
-
│
|
|
505
|
-
│
|
|
506
|
-
│
|
|
507
|
-
|
|
508
|
-
│
|
|
509
|
-
│
|
|
510
|
-
│
|
|
511
|
-
│
|
|
512
|
-
|
|
1420
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
1421
|
+
│ 1. 🔴 编写测试 (Red Phase) │
|
|
1422
|
+
│ ├─ 查询知识库获取测试规范 │
|
|
1423
|
+
│ ├─ 根据接受标准编写测试用例 │
|
|
1424
|
+
│ ├─ 运行测试,确认失败 │
|
|
1425
|
+
│ └─ 验证失败原因是功能未实现 │
|
|
1426
|
+
├──────────────────────────────────────────────────────────────┤
|
|
1427
|
+
│ 2. 🟢 实现代码 (Green Phase) │
|
|
1428
|
+
│ ├─ 查询知识库获取编码规范 │
|
|
1429
|
+
│ ├─ 编写最小代码使测试通过 │
|
|
1430
|
+
│ ├─ 运行测试,确认通过 │
|
|
1431
|
+
│ └─ 处理边界情况和异常 │
|
|
1432
|
+
├──────────────────────────────────────────────────────────────┤
|
|
1433
|
+
│ 3. 🔵 重构 (Refactor Phase) │
|
|
1434
|
+
│ ├─ 检查代码质量(重复、复杂度) │
|
|
1435
|
+
│ ├─ 应用优化(提取方法、简化逻辑) │
|
|
1436
|
+
│ ├─ 运行测试确保仍然通过 │
|
|
1437
|
+
│ └─ 更新 Dev Agent Record │
|
|
1438
|
+
├──────────────────────────────────────────────────────────────┤
|
|
1439
|
+
│ 4. ✅ 标记任务完成 │
|
|
1440
|
+
│ ├─ 验证所有测试存在且通过 │
|
|
1441
|
+
│ ├─ 标记任务 checkbox [x] │
|
|
1442
|
+
│ ├─ 更新 File List │
|
|
1443
|
+
│ └─ 继续下一个任务或进入完成流程 │
|
|
1444
|
+
└──────────────────────────────────────────────────────────────┘
|
|
513
1445
|
```
|
|
514
1446
|
|
|
515
1447
|
**质量门禁**:
|
|
516
|
-
- [ ] 所有测试通过
|
|
517
|
-
- [ ] 代码审查通过
|
|
518
|
-
- [ ] 无安全漏洞
|
|
519
|
-
- [ ] 符合代码规范
|
|
1448
|
+
- [ ] 所有测试通过 (100%)
|
|
1449
|
+
- [ ] 代码审查通过 (APPROVED)
|
|
1450
|
+
- [ ] 无安全漏洞 (0 critical/high)
|
|
1451
|
+
- [ ] 符合代码规范 (lint 通过)
|
|
1452
|
+
- [ ] 测试覆盖率 >= 80%
|
|
520
1453
|
|
|
521
1454
|
---
|
|
522
1455
|
|
|
523
1456
|
### Step 5: 测试验证阶段 (Phase 5)
|
|
524
1457
|
|
|
525
|
-
**角色激活**: TEA (测试架构师)
|
|
1458
|
+
**角色激活**: TEA (测试架构师 - Murat)
|
|
1459
|
+
|
|
1460
|
+
> **重要**: 本阶段集成 TEA 智能体的专用测试工作流,提供全面的测试验证能力。
|
|
1461
|
+
|
|
1462
|
+
---
|
|
1463
|
+
|
|
1464
|
+
#### 🤖 智能体执行指令
|
|
1465
|
+
|
|
1466
|
+
```
|
|
1467
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
1468
|
+
│ Phase 5: 测试验证 │
|
|
1469
|
+
│ 智能体: Murat (TEA) │
|
|
1470
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
1471
|
+
│ │
|
|
1472
|
+
│ Step 5.1: 唤醒 TEA 智能体 │
|
|
1473
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
1474
|
+
│ │ 执行命令: /tea ││
|
|
1475
|
+
│ │ 说明: 唤醒测试架构师 Murat,准备进行测试验证工作 ││
|
|
1476
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
1477
|
+
│ │
|
|
1478
|
+
│ Step 5.2: 需求追溯验证 │
|
|
1479
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
1480
|
+
│ │ 执行命令: *trace ││
|
|
1481
|
+
│ │ 说明: 构建需求到测试的追溯矩阵 ││
|
|
1482
|
+
│ │ 输出: traceability-matrix.md ││
|
|
1483
|
+
│ │ 验证: FR → Stories → Tests 映射完整性 ││
|
|
1484
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
1485
|
+
│ │
|
|
1486
|
+
│ Step 5.3: 测试质量评审 │
|
|
1487
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
1488
|
+
│ │ 执行命令: *test-review ││
|
|
1489
|
+
│ │ 说明: 评审测试质量和充分性 ││
|
|
1490
|
+
│ │ 检查: 测试充分性、测试质量、测试模式 ││
|
|
1491
|
+
│ │ 输出: test-review-report.md ││
|
|
1492
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
1493
|
+
│ │
|
|
1494
|
+
│ Step 5.4: NFR 验证 │
|
|
1495
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
1496
|
+
│ │ 执行命令: *nfr-assess ││
|
|
1497
|
+
│ │ 说明: 验证非功能性需求 (性能、安全、可用性) ││
|
|
1498
|
+
│ │ 输出: nfr-assessment-report.md ││
|
|
1499
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
1500
|
+
│ │
|
|
1501
|
+
│ Step 5.5: (可选) 测试设计 │
|
|
1502
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
1503
|
+
│ │ 执行命令: *test-design ││
|
|
1504
|
+
│ │ 说明: 创建全面的测试场景 ││
|
|
1505
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
1506
|
+
│ │
|
|
1507
|
+
│ Step 5.6: (可选) 测试自动化 │
|
|
1508
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
1509
|
+
│ │ 执行命令: *automate ││
|
|
1510
|
+
│ │ 说明: 生成全面的测试自动化代码 ││
|
|
1511
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
1512
|
+
│ │
|
|
1513
|
+
│ Step 5.7: (可选) CI/CD 流水线 │
|
|
1514
|
+
│ ┌─────────────────────────────────────────────────────────────┐│
|
|
1515
|
+
│ │ 执行命令: *ci ││
|
|
1516
|
+
│ │ 说明: 搭建 CI/CD 质量流水线脚手架 ││
|
|
1517
|
+
│ └─────────────────────────────────────────────────────────────┘│
|
|
1518
|
+
│ │
|
|
1519
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
1520
|
+
```
|
|
1521
|
+
|
|
1522
|
+
**完整执行序列**:
|
|
1523
|
+
```bash
|
|
1524
|
+
# 1. 唤醒 TEA 智能体
|
|
1525
|
+
/tea
|
|
1526
|
+
|
|
1527
|
+
# 2. 需求追溯验证
|
|
1528
|
+
*trace
|
|
1529
|
+
|
|
1530
|
+
# 3. 测试质量评审
|
|
1531
|
+
*test-review
|
|
1532
|
+
|
|
1533
|
+
# 4. NFR 验证
|
|
1534
|
+
*nfr-assess
|
|
1535
|
+
|
|
1536
|
+
# 5. (可选) 测试设计
|
|
1537
|
+
*test-design
|
|
1538
|
+
|
|
1539
|
+
# 6. (可选) 测试自动化
|
|
1540
|
+
*automate
|
|
1541
|
+
|
|
1542
|
+
# 7. (可选) CI/CD 流水线
|
|
1543
|
+
*ci
|
|
1544
|
+
```
|
|
1545
|
+
|
|
1546
|
+
---
|
|
526
1547
|
|
|
527
1548
|
**自动执行内容**:
|
|
528
1549
|
|
|
529
1550
|
```yaml
|
|
530
1551
|
phase: 5
|
|
531
1552
|
name: 测试验证
|
|
532
|
-
role: TEA
|
|
1553
|
+
role: TEA (Murat)
|
|
1554
|
+
agent_activation:
|
|
1555
|
+
command: "/tea"
|
|
1556
|
+
workflows:
|
|
1557
|
+
- trigger: "*trace"
|
|
1558
|
+
purpose: "需求到测试的追踪映射"
|
|
1559
|
+
- trigger: "*test-review"
|
|
1560
|
+
purpose: "测试质量评审"
|
|
1561
|
+
- trigger: "*nfr-assess"
|
|
1562
|
+
purpose: "非功能性需求验证"
|
|
1563
|
+
- trigger: "*test-design"
|
|
1564
|
+
purpose: "测试场景设计(可选)"
|
|
1565
|
+
- trigger: "*automate"
|
|
1566
|
+
purpose: "测试自动化(可选)"
|
|
1567
|
+
- trigger: "*ci"
|
|
1568
|
+
purpose: "CI/CD 流水线(可选)"
|
|
533
1569
|
inputs:
|
|
534
1570
|
- 实现的代码
|
|
535
1571
|
- 测试代码
|
|
536
1572
|
- prd.md
|
|
1573
|
+
- stories/
|
|
1574
|
+
- architecture.md
|
|
537
1575
|
outputs:
|
|
538
1576
|
- test-report.md
|
|
539
1577
|
- quality-report.md
|
|
1578
|
+
- traceability-matrix.md
|
|
1579
|
+
- coverage-report/
|
|
1580
|
+
|
|
1581
|
+
# 调用的 TEA 智能体工作流
|
|
1582
|
+
workflows_invoked:
|
|
1583
|
+
- agent: TEA (Murat)
|
|
1584
|
+
workflow: trace
|
|
1585
|
+
command: "/tea → *trace"
|
|
1586
|
+
purpose: "需求到测试的追踪映射"
|
|
1587
|
+
- agent: TEA (Murat)
|
|
1588
|
+
workflow: test-review
|
|
1589
|
+
command: "/tea → *test-review"
|
|
1590
|
+
purpose: "测试质量评审"
|
|
1591
|
+
- agent: TEA (Murat)
|
|
1592
|
+
workflow: nfr-assess
|
|
1593
|
+
command: "/tea → *nfr-assess"
|
|
1594
|
+
purpose: "非功能性需求验证"
|
|
1595
|
+
```
|
|
540
1596
|
|
|
541
|
-
|
|
542
|
-
- name: 执行测试套件
|
|
543
|
-
action: |
|
|
544
|
-
1. 运行单元测试
|
|
545
|
-
2. 运行集成测试
|
|
546
|
-
3. 收集测试覆盖率
|
|
1597
|
+
---
|
|
547
1598
|
|
|
548
|
-
|
|
549
|
-
action: |
|
|
550
|
-
1. 检查测试覆盖率 >= 80%
|
|
551
|
-
2. 检查无失败测试
|
|
552
|
-
3. 检查代码质量指标
|
|
553
|
-
4. 检查安全扫描结果
|
|
1599
|
+
#### Step 5.1: 需求追溯验证
|
|
554
1600
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
1601
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/testarch/trace/workflow.yaml`
|
|
1602
|
+
|
|
1603
|
+
**执行命令**: `/tea → *trace`
|
|
1604
|
+
|
|
1605
|
+
```yaml
|
|
1606
|
+
task: requirement_traceability
|
|
1607
|
+
role: TEA (Murat)
|
|
1608
|
+
agent_command: "/tea → *trace"
|
|
1609
|
+
invoke_workflow: "*trace"
|
|
1610
|
+
|
|
1611
|
+
actions:
|
|
1612
|
+
- name: 构建追溯矩阵
|
|
1613
|
+
map:
|
|
1614
|
+
- FR → Stories → Tests
|
|
1615
|
+
- AC → Test Cases
|
|
1616
|
+
- NFR → Validation Tests
|
|
1617
|
+
|
|
1618
|
+
- name: 验证覆盖完整性
|
|
1619
|
+
check:
|
|
1620
|
+
- 每个 FR 都有对应测试
|
|
1621
|
+
- 每个 AC 都有对应测试用例
|
|
1622
|
+
- 无遗漏的需求
|
|
1623
|
+
|
|
1624
|
+
- name: 生成追溯报告
|
|
1625
|
+
output: "traceability-matrix.md"
|
|
560
1626
|
```
|
|
561
1627
|
|
|
1628
|
+
---
|
|
1629
|
+
|
|
1630
|
+
#### Step 5.2: 执行测试套件
|
|
1631
|
+
|
|
1632
|
+
```yaml
|
|
1633
|
+
task: execute_test_suites
|
|
1634
|
+
actions:
|
|
1635
|
+
- name: 运行单元测试
|
|
1636
|
+
command: "npm run test:unit"
|
|
1637
|
+
collect:
|
|
1638
|
+
- 通过/失败数量
|
|
1639
|
+
- 覆盖率报告
|
|
1640
|
+
- 失败详情
|
|
1641
|
+
|
|
1642
|
+
- name: 运行集成测试
|
|
1643
|
+
command: "npm run test:integration"
|
|
1644
|
+
collect:
|
|
1645
|
+
- 通过/失败数量
|
|
1646
|
+
- API 测试结果
|
|
1647
|
+
- 数据库测试结果
|
|
1648
|
+
|
|
1649
|
+
- name: 运行端到端测试
|
|
1650
|
+
command: "npm run test:e2e"
|
|
1651
|
+
if: e2e_tests_exist
|
|
1652
|
+
collect:
|
|
1653
|
+
- 通过/失败数量
|
|
1654
|
+
- 用户流程测试结果
|
|
1655
|
+
```
|
|
1656
|
+
|
|
1657
|
+
---
|
|
1658
|
+
|
|
1659
|
+
#### Step 5.3: 测试质量评审
|
|
1660
|
+
|
|
1661
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/testarch/test-review/workflow.yaml`
|
|
1662
|
+
|
|
1663
|
+
**执行命令**: `/tea → *test-review`
|
|
1664
|
+
|
|
1665
|
+
```yaml
|
|
1666
|
+
task: test_quality_review
|
|
1667
|
+
role: TEA (Murat)
|
|
1668
|
+
agent_command: "/tea → *test-review"
|
|
1669
|
+
invoke_workflow: "*test-review"
|
|
1670
|
+
|
|
1671
|
+
review_criteria:
|
|
1672
|
+
- name: 测试充分性
|
|
1673
|
+
check:
|
|
1674
|
+
- 关键路径是否覆盖
|
|
1675
|
+
- 边界条件是否测试
|
|
1676
|
+
- 异常场景是否覆盖
|
|
1677
|
+
|
|
1678
|
+
- name: 测试质量
|
|
1679
|
+
check:
|
|
1680
|
+
- 测试是否独立
|
|
1681
|
+
- 断言是否明确
|
|
1682
|
+
- 测试是否可维护
|
|
1683
|
+
|
|
1684
|
+
- name: 测试模式
|
|
1685
|
+
check:
|
|
1686
|
+
- AAA 模式 (Arrange-Act-Assert)
|
|
1687
|
+
- 单一职责
|
|
1688
|
+
- 无硬编码依赖
|
|
1689
|
+
|
|
1690
|
+
output:
|
|
1691
|
+
test_review_report:
|
|
1692
|
+
score: "[A-F]"
|
|
1693
|
+
issues: []
|
|
1694
|
+
recommendations: []
|
|
1695
|
+
```
|
|
1696
|
+
|
|
1697
|
+
---
|
|
1698
|
+
|
|
1699
|
+
#### Step 5.4: NFR 验证
|
|
1700
|
+
|
|
1701
|
+
**调用工作流**: `{xiaoma_folder}/xmc/workflows/testarch/nfr-assess/workflow.yaml`
|
|
1702
|
+
|
|
1703
|
+
**执行命令**: `/tea → *nfr-assess`
|
|
1704
|
+
|
|
1705
|
+
```yaml
|
|
1706
|
+
task: nfr_validation
|
|
1707
|
+
role: TEA (Murat)
|
|
1708
|
+
agent_command: "/tea → *nfr-assess"
|
|
1709
|
+
invoke_workflow: "*nfr-assess"
|
|
1710
|
+
|
|
1711
|
+
validations:
|
|
1712
|
+
performance:
|
|
1713
|
+
- nfr_id: "NFR-PERF-001"
|
|
1714
|
+
requirement: "页面响应时间 < 2s"
|
|
1715
|
+
test_method: "性能测试"
|
|
1716
|
+
|
|
1717
|
+
- nfr_id: "NFR-PERF-002"
|
|
1718
|
+
requirement: "API 响应时间 < 500ms"
|
|
1719
|
+
test_method: "负载测试"
|
|
1720
|
+
|
|
1721
|
+
security:
|
|
1722
|
+
- nfr_id: "NFR-SEC-001"
|
|
1723
|
+
requirement: "所有 API 需要认证"
|
|
1724
|
+
test_method: "安全扫描"
|
|
1725
|
+
|
|
1726
|
+
- nfr_id: "NFR-SEC-002"
|
|
1727
|
+
requirement: "敏感数据加密传输"
|
|
1728
|
+
test_method: "HTTPS 验证"
|
|
1729
|
+
|
|
1730
|
+
usability:
|
|
1731
|
+
- nfr_id: "NFR-USA-001"
|
|
1732
|
+
requirement: "支持响应式布局"
|
|
1733
|
+
test_method: "多设备测试"
|
|
1734
|
+
```
|
|
1735
|
+
|
|
1736
|
+
---
|
|
1737
|
+
|
|
1738
|
+
#### Step 5.5: 质量门禁检查
|
|
1739
|
+
|
|
1740
|
+
```yaml
|
|
1741
|
+
task: quality_gate_check
|
|
1742
|
+
actions:
|
|
1743
|
+
- name: 代码覆盖率检查
|
|
1744
|
+
threshold:
|
|
1745
|
+
statements: ">= 80%"
|
|
1746
|
+
branches: ">= 75%"
|
|
1747
|
+
functions: ">= 85%"
|
|
1748
|
+
lines: ">= 80%"
|
|
1749
|
+
|
|
1750
|
+
- name: 代码质量检查
|
|
1751
|
+
run: "npm run lint"
|
|
1752
|
+
threshold:
|
|
1753
|
+
errors: 0
|
|
1754
|
+
warnings: "<= 10"
|
|
1755
|
+
|
|
1756
|
+
- name: 安全扫描
|
|
1757
|
+
run: "npm audit"
|
|
1758
|
+
threshold:
|
|
1759
|
+
critical: 0
|
|
1760
|
+
high: 0
|
|
1761
|
+
|
|
1762
|
+
- name: 类型检查
|
|
1763
|
+
run: "npm run type-check"
|
|
1764
|
+
threshold:
|
|
1765
|
+
errors: 0
|
|
1766
|
+
|
|
1767
|
+
- name: 构建验证
|
|
1768
|
+
run: "npm run build"
|
|
1769
|
+
threshold:
|
|
1770
|
+
success: true
|
|
1771
|
+
```
|
|
1772
|
+
|
|
1773
|
+
---
|
|
1774
|
+
|
|
1775
|
+
#### Step 5.6: 生成测试报告
|
|
1776
|
+
|
|
1777
|
+
```yaml
|
|
1778
|
+
task: generate_reports
|
|
1779
|
+
outputs:
|
|
1780
|
+
- name: test-report.md
|
|
1781
|
+
content:
|
|
1782
|
+
- 执行摘要
|
|
1783
|
+
- 测试执行详情
|
|
1784
|
+
- 代码覆盖率
|
|
1785
|
+
- 需求追溯
|
|
1786
|
+
- 问题和建议
|
|
1787
|
+
|
|
1788
|
+
- name: quality-report.md
|
|
1789
|
+
content:
|
|
1790
|
+
- 质量门禁结果
|
|
1791
|
+
- 代码质量分析
|
|
1792
|
+
- 安全扫描结果
|
|
1793
|
+
- NFR 验证结果
|
|
1794
|
+
|
|
1795
|
+
- name: traceability-matrix.md
|
|
1796
|
+
content:
|
|
1797
|
+
- FR → Story → Test 映射
|
|
1798
|
+
- AC → Test Case 映射
|
|
1799
|
+
- 覆盖率统计
|
|
1800
|
+
```
|
|
1801
|
+
|
|
1802
|
+
---
|
|
1803
|
+
|
|
562
1804
|
**质量门禁**:
|
|
563
1805
|
- [ ] 测试覆盖率 >= 80%
|
|
564
|
-
- [ ] 所有测试通过
|
|
565
|
-
- [ ] 无严重安全漏洞
|
|
1806
|
+
- [ ] 所有测试通过 (100%)
|
|
1807
|
+
- [ ] 无严重安全漏洞 (0 critical/high)
|
|
566
1808
|
- [ ] 代码质量评分 >= B
|
|
1809
|
+
- [ ] NFR 验证通过
|
|
1810
|
+
- [ ] 需求追溯完整 (100%)
|
|
567
1811
|
|
|
568
1812
|
---
|
|
569
1813
|
|
|
@@ -606,7 +1850,9 @@ blocking_resolution:
|
|
|
606
1850
|
|
|
607
1851
|
## 状态追踪
|
|
608
1852
|
|
|
609
|
-
|
|
1853
|
+
### 1. 迭代执行状态 (`auto-iteration-status.yaml`)
|
|
1854
|
+
|
|
1855
|
+
执行过程中自动更新迭代级别的状态:
|
|
610
1856
|
|
|
611
1857
|
```yaml
|
|
612
1858
|
# auto-iteration-status.yaml
|
|
@@ -628,14 +1874,16 @@ phases:
|
|
|
628
1874
|
outputs:
|
|
629
1875
|
- prd.md
|
|
630
1876
|
- epics/epic-001.md
|
|
631
|
-
- stories/story-001.md
|
|
632
1877
|
|
|
633
1878
|
phase_3_design:
|
|
634
|
-
status: "
|
|
635
|
-
|
|
1879
|
+
status: "completed"
|
|
1880
|
+
outputs:
|
|
1881
|
+
- architecture.md
|
|
1882
|
+
- adr/
|
|
636
1883
|
|
|
637
1884
|
phase_4_develop:
|
|
638
|
-
status: "
|
|
1885
|
+
status: "in_progress"
|
|
1886
|
+
current_story: "1-2-user-authentication"
|
|
639
1887
|
|
|
640
1888
|
phase_5_test:
|
|
641
1889
|
status: "pending"
|
|
@@ -648,6 +1896,190 @@ knowledge_base_queries:
|
|
|
648
1896
|
source: "tech-kb/auth-patterns.md"
|
|
649
1897
|
```
|
|
650
1898
|
|
|
1899
|
+
### 2. Sprint 开发状态 (`sprint-status.yaml`)
|
|
1900
|
+
|
|
1901
|
+
**与 SM 智能体完全兼容的格式**:
|
|
1902
|
+
|
|
1903
|
+
```yaml
|
|
1904
|
+
# sprint-status.yaml
|
|
1905
|
+
# 由 SM 智能体的 sprint-planning 工作流生成
|
|
1906
|
+
# 格式与现有项目智能体系统完全一致
|
|
1907
|
+
|
|
1908
|
+
# 文件元数据
|
|
1909
|
+
generated: "2024-01-15 10:30"
|
|
1910
|
+
project: "My Project"
|
|
1911
|
+
project_key: "PROJ-001"
|
|
1912
|
+
tracking_system: file-system
|
|
1913
|
+
story_location: "{sprint_artifacts}"
|
|
1914
|
+
|
|
1915
|
+
# STATUS DEFINITIONS (与 SM 智能体一致):
|
|
1916
|
+
# ==================
|
|
1917
|
+
# Epic Status:
|
|
1918
|
+
# - backlog: Epic not yet started
|
|
1919
|
+
# - in-progress: Epic actively being worked on
|
|
1920
|
+
# - done: All stories in epic completed
|
|
1921
|
+
#
|
|
1922
|
+
# Story Status:
|
|
1923
|
+
# - backlog: Story only exists in epic file
|
|
1924
|
+
# - drafted: Story file created in stories folder
|
|
1925
|
+
# - ready-for-dev: Draft approved, ready for development
|
|
1926
|
+
# - in-progress: Developer actively working on implementation
|
|
1927
|
+
# - review: Implementation complete, ready for review
|
|
1928
|
+
# - done: Story completed
|
|
1929
|
+
|
|
1930
|
+
# 开发状态追踪
|
|
1931
|
+
development_status:
|
|
1932
|
+
# Epic 1
|
|
1933
|
+
epic-1: in-progress
|
|
1934
|
+
1-1-user-authentication: done
|
|
1935
|
+
1-2-account-management: in-progress
|
|
1936
|
+
1-3-user-profile: ready-for-dev
|
|
1937
|
+
1-4-password-reset: drafted
|
|
1938
|
+
1-5-session-management: backlog
|
|
1939
|
+
epic-1-retrospective: optional
|
|
1940
|
+
|
|
1941
|
+
# Epic 2
|
|
1942
|
+
epic-2: backlog
|
|
1943
|
+
2-1-product-catalog: backlog
|
|
1944
|
+
2-2-search-functionality: backlog
|
|
1945
|
+
2-3-product-details: backlog
|
|
1946
|
+
epic-2-retrospective: optional
|
|
1947
|
+
```
|
|
1948
|
+
|
|
1949
|
+
### 3. 状态同步机制
|
|
1950
|
+
|
|
1951
|
+
```yaml
|
|
1952
|
+
status_sync:
|
|
1953
|
+
# Phase 4 开发过程中的状态同步
|
|
1954
|
+
on_story_status_change:
|
|
1955
|
+
- update: "sprint-status.yaml"
|
|
1956
|
+
field: "development_status[story_key]"
|
|
1957
|
+
|
|
1958
|
+
- update: "auto-iteration-status.yaml"
|
|
1959
|
+
field: "phases.phase_4_develop.current_story"
|
|
1960
|
+
|
|
1961
|
+
# 故事状态转换触发点
|
|
1962
|
+
transitions:
|
|
1963
|
+
backlog_to_drafted:
|
|
1964
|
+
trigger: "*create-story 完成创建故事文件"
|
|
1965
|
+
update_sprint_status: true
|
|
1966
|
+
|
|
1967
|
+
drafted_to_ready_for_dev:
|
|
1968
|
+
trigger: "*create-story 或 *validate-create-story 验证通过"
|
|
1969
|
+
update_sprint_status: true
|
|
1970
|
+
|
|
1971
|
+
ready_for_dev_to_in_progress:
|
|
1972
|
+
trigger: "*develop-story Step 4 开始开发"
|
|
1973
|
+
update_sprint_status: true
|
|
1974
|
+
|
|
1975
|
+
in_progress_to_review:
|
|
1976
|
+
trigger: "*develop-story Step 9 故事完成"
|
|
1977
|
+
update_sprint_status: true
|
|
1978
|
+
|
|
1979
|
+
review_to_done:
|
|
1980
|
+
trigger: "*code-review APPROVED"
|
|
1981
|
+
update_sprint_status: true
|
|
1982
|
+
|
|
1983
|
+
review_to_in_progress:
|
|
1984
|
+
trigger: "*code-review CHANGES_REQUESTED"
|
|
1985
|
+
update_sprint_status: true
|
|
1986
|
+
note: "DEV 智能体会处理审查反馈"
|
|
1987
|
+
```
|
|
1988
|
+
|
|
1989
|
+
### 4. 强制状态更新操作 (MANDATORY)
|
|
1990
|
+
|
|
1991
|
+
> ⚠️ **关键**: 以下操作是**必须执行**的,不是可选的描述!
|
|
1992
|
+
|
|
1993
|
+
#### 4.1 Phase 4 开始前 - 创建 sprint-status.yaml
|
|
1994
|
+
|
|
1995
|
+
**必须首先执行** `*sprint-planning` 或手动创建:
|
|
1996
|
+
|
|
1997
|
+
```bash
|
|
1998
|
+
# 在 {sprint_artifacts} 目录创建 sprint-status.yaml
|
|
1999
|
+
# 示例路径: docs/sprint-artifacts/sprint-status.yaml
|
|
2000
|
+
```
|
|
2001
|
+
|
|
2002
|
+
```yaml
|
|
2003
|
+
# sprint-status.yaml - 必须创建此文件
|
|
2004
|
+
generated: "{date}"
|
|
2005
|
+
project: "{project_name}"
|
|
2006
|
+
tracking_system: file-system
|
|
2007
|
+
story_location: "{sprint_artifacts}"
|
|
2008
|
+
|
|
2009
|
+
development_status:
|
|
2010
|
+
epic-1: backlog
|
|
2011
|
+
1-1-story-name: backlog
|
|
2012
|
+
1-2-story-name: backlog
|
|
2013
|
+
# ... 列出所有故事
|
|
2014
|
+
```
|
|
2015
|
+
|
|
2016
|
+
#### 4.2 状态更新文件编辑操作
|
|
2017
|
+
|
|
2018
|
+
**每次状态变化时,必须执行以下两个更新**:
|
|
2019
|
+
|
|
2020
|
+
##### 更新 1: sprint-status.yaml
|
|
2021
|
+
|
|
2022
|
+
```yaml
|
|
2023
|
+
# 编辑 sprint-status.yaml 中的 development_status
|
|
2024
|
+
# 将故事状态从旧值改为新值
|
|
2025
|
+
|
|
2026
|
+
# 示例: 1-1-user-auth 从 backlog 变为 drafted
|
|
2027
|
+
development_status:
|
|
2028
|
+
1-1-user-auth: drafted # 原来是 backlog
|
|
2029
|
+
```
|
|
2030
|
+
|
|
2031
|
+
##### 更新 2: 故事文件
|
|
2032
|
+
|
|
2033
|
+
故事文件必须使用以下格式(符合 SM/DEV 智能体要求):
|
|
2034
|
+
|
|
2035
|
+
```markdown
|
|
2036
|
+
# Story 1.1: User Authentication
|
|
2037
|
+
|
|
2038
|
+
Status: drafted
|
|
2039
|
+
|
|
2040
|
+
## Story
|
|
2041
|
+
As a user,
|
|
2042
|
+
I want to authenticate,
|
|
2043
|
+
so that I can access the system.
|
|
2044
|
+
|
|
2045
|
+
## Acceptance Criteria
|
|
2046
|
+
...
|
|
2047
|
+
```
|
|
2048
|
+
|
|
2049
|
+
**状态行位置**: 在标题之后,第一个 `## ` 节之前
|
|
2050
|
+
|
|
2051
|
+
**允许的状态值**:
|
|
2052
|
+
- `drafted` - 故事文件已创建
|
|
2053
|
+
- `ready-for-dev` - 准备开发
|
|
2054
|
+
- `in-progress` - 开发中
|
|
2055
|
+
- `review` - 等待审查
|
|
2056
|
+
- `done` - 已完成
|
|
2057
|
+
|
|
2058
|
+
#### 4.3 状态更新检查点
|
|
2059
|
+
|
|
2060
|
+
在以下时间点**必须**更新状态:
|
|
2061
|
+
|
|
2062
|
+
| 时间点 | 触发动作 | 更新内容 |
|
|
2063
|
+
|--------|---------|---------|
|
|
2064
|
+
| `*create-story` 完成 | 故事文件创建 | `backlog → drafted` (或 `ready-for-dev`) |
|
|
2065
|
+
| `*develop-story` Step 4 | 开始开发 | `ready-for-dev → in-progress` |
|
|
2066
|
+
| `*develop-story` Step 9 | 开发完成 | `in-progress → review` |
|
|
2067
|
+
| `*code-review` APPROVED | 审查通过 | `review → done` |
|
|
2068
|
+
|
|
2069
|
+
#### 4.4 验证状态更新
|
|
2070
|
+
|
|
2071
|
+
每个阶段完成后,验证状态一致性:
|
|
2072
|
+
|
|
2073
|
+
```bash
|
|
2074
|
+
# 检查 sprint-status.yaml 中的状态
|
|
2075
|
+
grep "story-key" sprint-status.yaml
|
|
2076
|
+
|
|
2077
|
+
# 检查故事文件中的状态
|
|
2078
|
+
head -5 stories/story-key.md | grep "Status:"
|
|
2079
|
+
```
|
|
2080
|
+
|
|
2081
|
+
**状态必须同步**: `sprint-status.yaml` 和故事文件中的状态必须一致!
|
|
2082
|
+
|
|
651
2083
|
---
|
|
652
2084
|
|
|
653
2085
|
## 执行完成
|