名称: router-qa 描述: QA技能协调器,用于测试策略、Playwright/E2E、移动测试、API契约、LLM代理测试、调试、可观察性、弹性、重构和文档覆盖;路由到12个专业QA技能。
路由器:质量保证
质量工程的主协调器,通过12个专业QA技能路由测试、可观察性、弹性、调试和文档质量问题,当请求超出QA范围(如实现、文档编写、部署)时进行明确交接。
快速决策树
QA 问题
│
├─► "我需要什么测试?" ──────────► qa-testing-strategy
│ └─► 测试金字塔,覆盖率,基于风险
│
├─► "编写E2E测试" ────────────────► qa-testing-playwright
│ └─► 选择器,页面对象,CI/CD
│
├─► "测试iOS应用" ───────────────────► qa-testing-ios
│ └─► XCTest,模拟器,设备矩阵
│
├─► "测试移动应用" ────────────────► qa-testing-mobile
│ └─► 跨平台,Android + iOS
│
├─► "测试Android应用" ──────────────► qa-testing-android
│ └─► Espresso,UIAutomator,Compose
│
├─► "测试API契约" ─────────────► qa-api-testing-contracts
│ └─► OpenAPI,Pact,模式验证
│
├─► "测试LLM代理" ─────────────────► qa-agent-testing
│ └─► 场景,评分,拒绝
│
├─► "调试此问题" ───────────────► qa-debugging
│ └─► 堆栈跟踪,日志记录,性能分析
│
├─► "设置监控" ───────────────► qa-observability
│ └─► OpenTelemetry,SLOs,追踪
│
├─► "处理故障" ────────────────► qa-resilience
│ └─► 断路器,重试,混沌
│
├─► "安全重构" ────────────────► qa-refactoring
│ └─► 特征化测试,接缝
│
└─► "检查文档覆盖" ────────────► qa-docs-coverage
└─► 差距分析,运行手册验证
技能注册表(12个QA技能)
测试技能(7)
| 技能 | 目的 | 关键触发器 |
|---|---|---|
qa-testing-strategy |
测试金字塔,基于风险的测试,覆盖率 | “测试策略”,“什么测试”,“覆盖率” |
qa-testing-playwright |
使用Playwright进行E2E网络测试 | “E2E测试”,“Playwright”,“浏览器测试” |
qa-testing-ios |
使用XCTest/XCUITest进行iOS测试 | “iOS测试”,“XCTest”,“模拟器” |
qa-testing-android |
使用Espresso/UIAutomator进行Android测试 | “Android测试”,“Espresso”,“UIAutomator”,“Compose测试” |
qa-testing-mobile |
跨平台移动测试 | “移动测试”,“跨平台”,“设备矩阵” |
qa-api-testing-contracts |
API模式和契约测试 | “API测试”,“契约”,“OpenAPI”,“Pact” |
qa-agent-testing |
LLM代理和个人测试 | “代理测试”,“LLM测试”,“拒绝”,“评分” |
质量技能(5)
| 技能 | 目的 | 关键触发器 |
|---|---|---|
qa-debugging |
调试,日志记录,性能分析 | “调试”,“错误”,“堆栈跟踪”,“性能分析” |
qa-observability |
指标,追踪,日志,SLOs | “监控”,“追踪”,“SLO”,“OpenTelemetry” |
qa-resilience |
断路器,重试,混沌 | “断路器”,“重试”,“混沌”,“超时” |
qa-refactoring |
安全重构,技术债务 | “重构”,“代码异味”,“技术债务” |
qa-docs-coverage |
文档质量门 | “文档覆盖”,“未记录”,“运行手册” |
规范注册表(真相来源)
使用 frameworks/shared-skills/skills/router-qa/data/skill-registry.json 作为QA技能、触发器、预期输出和路由规则的规范列表。
使用 frameworks/shared-skills/skills/router-qa/data/sources.json 用于可选网络搜索参考(每个专业技能根据需要维护自己的来源)。
域检测
域 1:测试规划
触发器:“什么测试”,“测试策略”,“覆盖率”,“测试金字塔”,“左移”,“基于风险”
路由到:qa-testing-strategy
示例问题:
- “我需要为这个API写什么测试?”
- “如何优先测试?”
- “什么是正确的测试覆盖率目标?”
域 2:E2E和UI测试
触发器:“E2E”,“端到端”,“Playwright”,“浏览器测试”,“UI测试”,“页面对象”,“视觉测试”
路由到:qa-testing-playwright
示例问题:
- “为登录编写Playwright测试”
- “如何处理不稳定的E2E测试?”
- “页面对象的最佳实践?”
域 3:移动测试
触发器:“iOS”,“Android”,“移动”,“XCTest”,“XCUITest”,“Espresso”,“UIAutomator”,“Appium”,“模拟器”,“仿真器”,“设备”
| 触发器 | 路由 |
|---|---|
| 仅iOS | qa-testing-ios |
| 仅Android | qa-testing-android |
| 跨平台 | qa-testing-mobile |
示例问题:
- “在模拟器上测试iOS应用”
- “为Android登录编写Espresso测试”
- “测试Jetpack Compose UI”
- “Android测试的设备矩阵”
- “跨平台移动测试策略”
域 4:API和契约测试
触发器:“API测试”,“契约测试”,“OpenAPI”,“GraphQL测试”,“gRPC”,“Pact”,“模式验证”
路由到:qa-api-testing-contracts
示例问题:
- “为REST API编写契约测试”
- “验证OpenAPI模式”
- “消费者驱动的契约测试”
域 5:代理测试
触发器:“代理测试”,“LLM测试”,“个人”,“拒绝”,“AI安全”,“评分标准”,“测试框架”
路由到:qa-agent-testing
示例问题:
- “为聊天机器人创建测试套件”
- “测试LLM拒绝边界”
- “评分代理响应”
域 6:调试
触发器:“调试”,“错误”,“bug”,“崩溃”,“堆栈跟踪”,“日志记录”,“性能分析”,“故障排除”
路由到:qa-debugging
示例问题:
- “调试内存泄漏”
- “分析这个堆栈跟踪”
- “设置结构化日志记录”
域 7:可观察性
触发器:“监控”,“指标”,“追踪”,“日志记录”,“SLO”,“SLI”,“OpenTelemetry”,“APM”,“警报”
路由到:qa-observability
示例问题:
- “为Node.js设置OpenTelemetry”
- “为API定义SLOs”
- “分布式追踪策略”
域 8:弹性
触发器:“断路器”,“重试”,“超时”,“退避”,“混沌”,“故障注入”,“降级”,“健康检查”
路由到:qa-resilience
示例问题:
- “实现断路器”
- “外部API的重试策略”
- “设置混沌工程”
域 9:重构
触发器:“重构”,“代码异味”,“技术债务”,“遗留代码”,“特征化测试”,“绞杀者模式”
路由到:qa-refactoring
示例问题:
- “安全地重构这个遗留代码”
- “在重构前添加测试”
- “管理技术债务”
域 10:文档质量
触发器:“文档覆盖”,“未记录”,“运行手册”,“API文档审计”,“过时文档”
路由到:qa-docs-coverage
如果用户询问CLAUDE.md/AGENTS.md/项目记忆/大型代码库设置:路由到 claude-code-project-memory(支持:qa-docs-coverage,docs-codebase)
示例问题:
- “审计文档覆盖”
- “查找未记录的API”
- “验证运行手册”
- “为大型代码库设置CLAUDE.md”
- “为跨平台支持创建AGENTS.md”
工作流模式
模式 1:测试优先开发
开始
│
▼
qa-testing-strategy ────────► 定义测试金字塔
│
├─► 单元测试 ──────────► 内联编写
├─► 集成测试 ───► 使用模拟编写
└─► E2E测试 ───────────► qa-testing-playwright
│
▼
qa-api-testing-contracts ──► 契约测试(如果API)
│
▼
测试完成
模式 2:错误调查
报告错误
│
▼
qa-debugging ──────────────► 分析日志、追踪、堆栈
│
├─► 需要更多可见性? → qa-observability
├─► 故障模式问题? ──→ qa-resilience
└─► 代码质量问题? ──→ qa-refactoring
│
▼
识别根因
│
▼
qa-testing-strategy ───────► 添加回归测试
│
▼
修复错误 + 覆盖
模式 3:生产强化
生产前
│
▼
qa-resilience ─────────────► 错误处理,重试
│
▼
qa-observability ──────────► 指标,追踪,SLOs
│
▼
qa-testing-strategy ───────► 冒烟 + E2E测试
│
▼
生产就绪
│
▼
qa-resilience ─────────────► 混沌实验(发布后)
模式 4:遗留现代化
遗留代码库
│
▼
qa-refactoring ────────────► 特征化测试
│
▼
qa-testing-strategy ───────► 添加缺失的测试覆盖
│
▼
qa-refactoring ────────────► 增量重构
│
▼
qa-docs-coverage ──────────► 记录更新的代码
│
▼
现代化
模式 5:LLM代理质量
代理开发
│
▼
qa-agent-testing ──────────► 定义测试场景
│
├─► 必须完成的任务 ──────► 核心功能
├─► 拒绝测试 ───────► 安全边界
└─► 评分标准 ──────► 质量指标
│
▼
qa-observability ──────────► 令牌使用,延迟指标
│
▼
验证代理
模式 6:大型代码库文档(100K-1M LOC)
大型代码库
│
▼
claude-code-project-memory ► 分层CLAUDE.md设置
│ (根 + 子目录文档)
├─► 根CLAUDE.md ────────► 架构,约定
├─► 子目录文档 ─────► 模块特定上下文
├─► AGENTS.md符号链接 ─────► 跨平台支持
│
▼
qa-docs-coverage ──────────► 审计现有文档
│
▼
docs-codebase ─────────────► 填充关键差距
│
▼
LLM就绪代码库
技能链
链:完整QA设置
qa-testing-strategy → qa-testing-playwright → qa-api-testing-contracts
↓
qa-resilience → qa-observability → qa-debugging
↓
qa-refactoring → qa-docs-coverage
链:事件响应
qa-debugging → qa-observability → qa-resilience → qa-refactoring
链:移动应用测试
qa-testing-strategy → qa-testing-mobile → qa-testing-ios(如果iOS) → qa-testing-android(如果Android)
质量门
发布前检查清单
| 门 | 技能 | 标准 |
|---|---|---|
| 测试覆盖 | qa-testing-strategy |
覆盖率目标与风险和关键路径对齐 |
| E2E通过 | qa-testing-playwright |
关键路径绿色 |
| API契约 | qa-api-testing-contracts |
模式验证通过 |
| 错误处理 | qa-resilience |
断路器配置 |
| 监控 | qa-observability |
SLOs定义,警报设置 |
| 文档 | qa-docs-coverage |
API + README完整 |
事件后检查清单
| 门 | 技能 | 操作 |
|---|---|---|
| 根因 | qa-debugging |
文档发现 |
| 回归测试 | qa-testing-strategy |
为故障模式添加测试 |
| 预防 | qa-resilience |
添加/调整断路器 |
| 可见性 | qa-observability |
添加缺失的追踪/警报 |
路由矩阵
| 用户意图 | 主要技能 | 支持技能 |
|---|---|---|
| 规划测试 | qa-testing-strategy |
qa-testing-playwright,qa-api-testing-contracts |
| 编写E2E | qa-testing-playwright |
qa-testing-strategy |
| 测试移动 | qa-testing-mobile,qa-testing-ios,或qa-testing-android |
qa-testing-strategy |
| 测试API | qa-api-testing-contracts |
qa-testing-strategy |
| 测试代理 | qa-agent-testing |
qa-testing-strategy |
| 调试问题 | qa-debugging |
qa-observability,qa-resilience |
| 设置监控 | qa-observability |
qa-debugging |
| 添加弹性 | qa-resilience |
qa-observability |
| 重构代码 | qa-refactoring |
qa-testing-strategy |
| 审计文档 | qa-docs-coverage |
docs-codebase |
| 大型代码库设置 | claude-code-project-memory |
qa-docs-coverage,docs-codebase |
交叉路由器交接
到 router-engineering
当用户需要实现时:
- “构建功能” → 路由到
software-backend或software-frontend - “实现修复” → 路由到相关工程技能
到 router-operations
当用户需要部署/基础设施时:
- “部署到生产” → 路由到
ops-devops-platform - “设置CI/CD” → 路由到
ops-devops-platform
从 router-operations
当操作路由器检测到QA需求时:
- “测试策略” → 路由到这里
- “调试生产问题” → 路由到这里
- “添加弹性” → 路由到这里
快速参考命令
| 需求 | 执行此操作 |
|---|---|
| 测试策略 | → qa-testing-strategy |
| E2E测试 | → qa-testing-playwright |
| iOS测试 | → qa-testing-ios |
| Android测试 | → qa-testing-android |
| 移动测试 | → qa-testing-mobile |
| API测试 | → qa-api-testing-contracts |
| 代理测试 | → qa-agent-testing |
| 调试问题 | → qa-debugging |
| 监控 | → qa-observability |
| 弹性 | → qa-resilience |
| 重构 | → qa-refactoring |
| 文档质量 | → qa-docs-coverage |
相关路由器
| 路由器 | 关系 |
|---|---|
router-operations |
父路由器;包括QA + DevOps + git |
router-engineering |
实现任务的交接目标 |
router-startup |
业务/产品问题的交接目标 |