# Team V2 升级验证计划

## 📋 验证目标

验证升级后的灵活 Agent 团队架构是否正常工作，确认：

1. PM 能正确扫描和分类 Skill
2. PM 能按照注入协议将 Skill 摘要下发给子 Agent
3. 子 Agent 能消费 Skill 摘要并遵循约束
4. 子 Agent 能按统一格式汇报结果且不自行终止
5. 技术栈特有规范（如双内边距、搜索区域）没有因迁移而丢失
6. Agent 足够通用，不包含技术栈 hardcode

---

## 🧪 测试用例

### 测试 1: PM 阶段 0 — Skill 扫描与分类

**操作**: 使用 `/team` 启动一个需求，例如：

> "开发一个商品管理列表页，包含搜索、新增、编辑、删除功能"

**验证清单**:

- [ ] PM 是否扫描了 `.opencode/skills/` 目录？
- [ ] PM 是否正确识别了**三类 Skill**？
  - [ ] 技术栈 Skill: `tech-stack/umijs-procomponents`
  - [ ] 业务 Skill: `business/product-management`
  - [ ] 通用 Skill: `engineering/code-quality`
- [ ] PM 是否读取了匹配到的 Skill 内容？
- [ ] PM 是否在任务启动输出中列出了匹配的 Skill 清单？

**预期输出**:

```markdown
## 🚀 任务启动

**需求**: 商品管理列表页 **Skill 匹配**: umijs-procomponents + product-management + code-quality **团队组装**: @planning + @frontend + @code-spec + @qa-tester
```

---

### 测试 2: PM → @planning 的 Skill 注入

**操作**: 观察 PM 委派 @planning 时的指令内容

**验证清单**:

- [ ] 委派指令中是否包含 **📦 技术栈要点** 章节？
  - [ ] 是否提到 UmiJS 4 + ProComponents？
  - [ ] 是否提到搜索区域规范（< 4 字段 vs >= 4 字段）？
  - [ ] 是否提到零 CSS / Token 样式？
  - [ ] 是否提到双内边距禁止？
- [ ] 委派指令中是否包含 **🔧 质量红线** 章节？
  - [ ] 是否提到禁止 any？
  - [ ] 是否提到 500 行限制？
  - [ ] 是否提到安全规范（XSS、金额精度）？
- [ ] 委派指令中是否包含 **📋 业务要点** 章节？
  - [ ] 是否包含 product-management Skill 中的业务规则？
- [ ] PM 是否直接写入了 Skill 内容（而非让 @planning 自己去读文件）？

---

### 测试 3: @planning 的 Skill 消费与规划

**操作**: 检查 @planning 输出的规划文档

**验证清单**:

- [ ] 规划是否遵循了技术栈 Skill 的约束？
  - [ ] 是否规划使用 ProTable 做列表？
  - [ ] 是否规划了搜索区域模式（根据字段数量选择方案）？
  - [ ] 是否规划了 src/services/ + mock/ + data.d.ts 结构？
- [ ] 规划是否融合了业务 Skill？
  - [ ] 是否包含商品数据模型？
  - [ ] 是否考虑了业务状态和约束？
- [ ] @planning 是否调用了 superpowers 进行产品细化？
- [ ] @planning 是否使用了 Context7 验证技术方案？
- [ ] 输出是否使用了**子 Agent 协议的统一格式**？
  - [ ] 是否以 `## 📋 规划结果摘要` 开头？
  - [ ] 是否包含"下一步行动建议"？
  - [ ] 是否结尾有"请主 Agent 审阅"？
- [ ] @planning 是否自行结束了会话？（**不应该**）

---

### 测试 4: PM → @frontend 的 Skill 注入

**操作**: 用户确认规划后，观察 PM 委派 @frontend 时的指令

**验证清单**:

- [ ] 委派指令中是否包含完整的技术栈摘要？
  - [ ] ProComponents 组件选型？
  - [ ] 禁止双内边距？
  - [ ] 零 CSS + Token？
  - [ ] 服务层目录结构？
  - [ ] i18n 规范？
- [ ] 委派指令中是否包含业务摘要？
- [ ] 委派指令中是否包含质量红线？

---

### 测试 5: @frontend 的红线执行

**操作**: 检查 @frontend 的实施过程

**验证清单**:

- [ ] @frontend 是否在编码前调用了 Context7 查询组件 API？
- [ ] @frontend 是否遵循了注入的技术栈约束？
  - [ ] 使用 ProTable 而非手写表格？
  - [ ] 使用 Token 样式而非 CSS 文件？
  - [ ] ProComponents 外层没有包裹 Card？
  - [ ] i18n 使用了 intl.formatMessage + defaultMessage？
- [ ] @frontend 是否遵循了质量红线？
  - [ ] 无 any 类型？
  - [ ] 单文件不超过 500 行？
  - [ ] 服务层隔离？
- [ ] 输出是否使用了统一格式 `## 🚀 实施结果摘要`？
- [ ] @frontend 是否自行结束了会话？（**不应该**）

---

### 测试 6: @code-spec 的动态审计

**操作**: 观察 PM 委派 @code-spec 时的审计过程

**验证清单**:

- [ ] PM 委派指令中是否附带了技术栈审计要点？
- [ ] @code-spec 是否执行了**固定审计项**？
  - [ ] any 类型检查？
  - [ ] 500 行限制？
  - [ ] XSS 安全？
  - [ ] 服务层隔离？
  - [ ] 加载状态？
  - [ ] 防重复点击？
- [ ] @code-spec 是否执行了**Skill 驱动审计项**？
  - [ ] ProComponents 双内边距检查？
  - [ ] Token 样式检查？
  - [ ] i18n 完整性？
- [ ] 输出是否使用了统一格式 `## ✅ 代码审查结果摘要`？
  - [ ] 是否有优先级分级（P0/P1/P2）？
- [ ] @code-spec 是否自行结束了会话？（**不应该**）

---

### 测试 7: @qa-tester 的动态测试

**操作**: 观察 PM 委派 @qa-tester 时的测试过程

**验证清单**:

- [ ] PM 委派指令中是否附带了技术栈测试要点？
- [ ] @qa-tester 是否执行了**固定测试项**？
  - [ ] 功能完整性（按钮、表单、CRUD）？
  - [ ] 控制台零错误？
  - [ ] 加载状态？
  - [ ] 防重复提交？
- [ ] @qa-tester 是否执行了**Skill 驱动测试项**？
  - [ ] i18n 双语验证？
  - [ ] 样式合规（如 ProComponents 布局）？
- [ ] 输出是否使用了统一格式 `## 🧪 QA 测试结果摘要`？
- [ ] @qa-tester 是否自行结束了会话？（**不应该**）
- [ ] @qa-tester 是否尝试修改代码？（**不应该**）

---

### 测试 8: PM 闭环与终止控制

**操作**: 观察整个流程的 PM 行为

**验证清单**:

- [ ] PM 是否在 @planning 完成后停下等待用户确认？
- [ ] PM 是否在收到子 Agent 汇报后检查了后续阶段？
- [ ] 如果 @code-spec 发现问题：
  - [ ] PM 是否回派给 @frontend 修复（而非自己修）？
  - [ ] 修复后是否重新走 @code-spec → @qa-tester 闭环？
- [ ] 如果 @qa-tester 发现问题：
  - [ ] PM 是否回派给 @frontend（而非自己修）？
  - [ ] 修复后是否从 @code-spec 重新走起？
- [ ] PM 是否在所有阶段通过后才宣布完成？
- [ ] 最终交付是否使用了 `## ✅ 任务完成` 格式？

---

### 测试 9: 通用性验证（负面测试）

**操作**: 检查新 Agent 文件中是否有技术栈 hardcode 残留

**验证方法**（命令行）:

```bash
# 在 Agent 文件中搜索不应出现的技术栈关键词
grep -n 'UmiJS\|ProComponents\|ProTable\|QueryFilter\|Ant Design\|antd\|useRequest\|src/services\|data\.d\.ts\|零 CSS\|formatMessage' \
  .opencode/agents/frontend.md \
  .opencode/agents/code-spec.md \
  .opencode/agents/qa-tester.md \
  .opencode/agents/planning.md
```

**预期**: 命令应该无输出（无匹配）。如果有匹配，说明还有技术栈 hardcode 残留。

**注意**: `team.md` 中允许出现这些词，因为 PM 需要知道如何识别技术栈。但 4 个子 Agent 中不应有。

---

### 测试 10: Figma 集成验证（可选）

**操作**: 使用带 Figma 链接的需求启动 `/team`，例如：

> "根据这个 Figma 开发订单管理页面 https://figma.com/design/xxx/yyy?node-id=1-2"

**验证清单**:

- [ ] PM 阶段 0 是否调用了 Figma MCP 提取产品信息？
- [ ] PM 是否将 Figma 产品信息和设计规范注入给 @planning？
- [ ] @planning 是否在规划中融合了 Figma 信息？
- [ ] @frontend 是否根据 Figma 设计稿进行高保真还原？
- [ ] @qa-tester 是否执行了 Figma 视觉还原对比？

---

## 📊 验证结果记录模板

| 测试编号 | 测试名称                   | 结果 | 发现的问题 |
| :------- | :------------------------- | :--: | :--------- |
| 1        | PM Skill 扫描与分类        |  ⬜  |            |
| 2        | PM → @planning Skill 注入  |  ⬜  |            |
| 3        | @planning Skill 消费与规划 |  ⬜  |            |
| 4        | PM → @frontend Skill 注入  |  ⬜  |            |
| 5        | @frontend 红线执行         |  ⬜  |            |
| 6        | @code-spec 动态审计        |  ⬜  |            |
| 7        | @qa-tester 动态测试        |  ⬜  |            |
| 8        | PM 闭环与终止控制          |  ⬜  |            |
| 9        | 通用性验证（负面测试）     |  ⬜  |            |
| 10       | Figma 集成（可选）         |  ⬜  |            |

---

## 🚀 建议的验证需求

用以下需求启动一次完整的 `/team` 流程即可覆盖测试 1-8：

> **"开发一个商品管理列表页。要求：** > **1. 包含商品名称、价格、状态、创建时间等字段的搜索和列表** > **2. 支持新增、编辑（弹窗表单）、删除操作** > **3. 价格需要支持分到元的转换显示** > **4. 支持中英双语"**

这个需求会触发：

- ✅ 技术栈 Skill 匹配（umijs-procomponents）
- ✅ 业务 Skill 匹配（product-management）
- ✅ 通用 Skill 加载（code-quality）
- ✅ 搜索区域模式判断（≥ 4 字段 → QueryFilter）
- ✅ 金额精度安全规则
- ✅ i18n 双语验证
- ✅ 完整的 规划 → 实施 → 审计 → 测试 流程

---

**验证完成标准**: 测试 1-9 全部通过（测试 10 可选）。
