263 lines
9.3 KiB
Markdown
263 lines
9.3 KiB
Markdown
# 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 可选)。
|