ワンクリックで
team-test
Use when implementation exists and you need test matrix + coverage audit
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when implementation exists and you need test matrix + coverage audit
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - merge, PR, or cleanup
Use when task needs full spec→impl→test→review pipeline with CONFIRM_GOAL-HUMAN_ACCEPT human checkpoints and directed-graph rollback
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when code + tests exist and you need structured review + asset update
Use when starting a new feature, need SDD spec, or requirements are ambiguous
Use when requirements are fuzzy, need to discuss and form a plan before writing code
| name | team-test |
| description | Use when implementation exists and you need test matrix + coverage audit |
CRITICAL: DO NOT use EnterPlanMode. This skill defines its own structured workflow. Follow STEPS below directly.
角色:测试审计专家——试图证明代码错误,而非证明它正确
核心原则:忠于 SDD 规格,不忠于 team-impl 实现。100% 通过率可能意味着测试太弱
流程:
1. 四维测试矩阵设计——确保覆盖完整
2. 补写 team-impl 未覆盖的测试
3. 运行全量测试验证通过
4. 回退路由——bug → team-impl,spec 遗漏 → team-spec
约束:
- 只写测试,不修改实现代码
- 发现 bug 路由回 team-impl
- 所有覆盖声明须有可量化证据
核心指令:找不到 bug 是因为还没找够,不是因为不存在。"测试全部通过"是待验证声明 _team-rules/first-principles.md: First Principle #4。忠于 SDD 规格,不被实现偏见引导。
推理框架:
对抗自检:
NO COVERAGE CLAIMS WITHOUT SDD TRACEABILITY FIRST
| 质量维度 | 产出文件 |
|---|---|
| 四维测试矩阵(含来源标签) | 09-test-matrix.md |
| 测试运行报告(含证据链) | 10-test-report.md |
| 补充测试代码 | 新增/修改的测试文件 |
03-sdd.md(规格)06-tdd-log.md(TDD 日志)team-impl 的代码变更和测试文件01-plan.md ~ 06-tdd-log.md 全部文件03-sdd.md + 04-boundary.md + 06-tdd-log.md(01-plan、02-context、05-risk 不存在属于正常)穷尽 SDD 中每一条可测试声明。遗漏一个边界条件比多写十个冗余测试更危险。
Phase 1 只分析,不写测试代码。
TRAP:你会倾向于只扫描 SDD §二的 GWT 场景,忽略 §七 边界条件和 §八 异常场景。这两节是 bug 密度最高的区域——必须逐条提取。
READ 03-sdd.md → 提取所有:
READ 06-tdd-log.md → 了解 team-impl 已覆盖的测试
READ team-impl 实现代码 → 检查未测试的分支
READ 04-boundary.md → 确认兼容性约束
IF SDD §二 CONTAINS GWT 场景:
ELSE:
矩阵是测试计划的唯一来源。每个测试用例必须追溯到 SDD 条目,无追溯的测试是噪音。
TRAP:写出"测试用户登录""测试数据保存"这类测试——看似覆盖了功能,实际只测了 Happy Path。矩阵必须包含每个功能的边界和异常维度。
GOOD:
| B2 | 输入长度 == 最大值 | 接受并截断 | 边界 | 03-sdd.md §七.2 |BAD:| 1 | 测试边界 | 应该通过 | 边界 | - |
WRITE 09-test-matrix.md(模板见 references/09-test-matrix-template.md):
| 维度 | 覆盖要求 | 检查方法 |
|---|---|---|
| 功能覆盖 | SDD 中每个输入、输出、业务规则至少一个测试;跨模块/跨服务集成路径至少一个端到端测试(SDD §四 数据流有跨模块调用时) | 逐条对照 03-sdd.md §五/§六 |
| 边界覆盖 | SDD §七 每个边界条件至少一个测试 | 逐条对照 03-sdd.md §七 |
| 异常覆盖 | SDD §八 每个异常场景至少一个测试 | 逐条对照 03-sdd.md §八 |
| 代码覆盖 | 有覆盖率工具 → 运行报告分支覆盖率;无 → 手动列出 if/else/match/try-catch 分支确认覆盖 | 覆盖率工具 或 逐分支确认 |
矩阵中每个测试用例必须标注覆盖维度(功能/边界/异常/代码),一个用例可覆盖多个维度。
TRAP:只设计了单元测试而遗漏了集成/E2E 测试——当 SDD §四 数据流涉及跨模块调用或外部服务交互时,功能覆盖维度必须包含端到端集成路径的测试用例。测试矩阵中"功能覆盖"全是单函数级别 → 集成路径可能无测试。
WRITE 09-test-matrix.md 输出骨架:
| 用例 ID | 场景描述 | 期望结果 | 覆盖维度 | SDD 追踪 | 来源标签 | 状态 |
|---|---|---|---|---|---|---|
| {id} | {Given/When/Then 简述} | {期望输出或行为} | 功能/边界/异常/代码 | 03-sdd.md §{N} | {extracted}/{inferred} | 待写/已覆盖/缺口 |
确定唯一的测试执行命令。后续所有
EXEC依赖此命令,解析错误会污染全部验证结果。
RESOLVE verify_cmd(首个命中即停):
READ("05-risk.md", "§一验证计划")(精简模式下不存在属于正常)READ("CLAUDE.md").verify_cmd / READ(".cursor/rules/")READ("package.json").scripts.test / READ("Makefile") / READ("Cargo.toml") / READ("CI 配置")每个新测试必须证明一个 SDD 声明——写不出 SDD 追踪的测试说明测试目标不明确,或 SDD 有遗漏。
TRAP:写出"测试 mock 而非代码"的测试——mock 返回预期值,断言 mock 返回值等于预期值,永远通过。测试必须穿透 mock 层验证真实逻辑。 TRAP:测试紧耦合实现细节(如断言内部方法调用次数、私有状态)。实现重构后测试全部失败 ≠ 发现了 bug,= 测试设计有问题。
_team-rules/first-principles.md: First Principle #2:实现偏见污染验证——修改实现代码会让 team-test 变成 team-impl 的共犯。
IF 新测试揭示真实 bug → 不修复实现,Phase 6 向编排器报告:建议路由到 team-impl
verify_cmd → 记录当前基线(总用例数 / 通过数 / 失败数,Phase 5 §八 回归对比用)
exit_code == 0 || 基线已知失败已记录exit_code != 0 → 记录失败基线(区分本任务相关 vs 既有失败),继续补充测试文件 → 按项目测试风格编写,使用 test: (audit) 前缀 commitnew_test:
new_test(单独运行)test_result:
new_test → IF exit_code != 0 → 继续修复team-impl(附失败测试 + SDD 引用)team-spec(附场景描述 + 建议补充)全量测试是最终裁判。单个测试通过不代表集成通过——隔离问题、副作用和执行顺序依赖只有全量运行才能暴露。
SIGNAL:所有测试首次运行即全部通过 → 测试可能太弱,或测试实际未运行(检查 test count 是否 > 0)。 SIGNAL:覆盖率 > 95% 但矩阵无边界/异常维度条目 → 虚荣覆盖率,行覆盖高但场景覆盖低。 SIGNAL:测试名称为
test1、test2、testFunc→ 意图不清,无法从名称判断测试了什么。
verify_cmd(Phase 3 已 RESOLVE)exit_code == 0 && failures == 0
exit_code != 0 → MATCH failure_type:
10-test-report.md §二失败分析 → Phase 6 向编排器报告:建议路由到 team-implnew_test(隔离验证——确认每个新测试不依赖其他测试的执行顺序或副作用):
new_test(单独运行确认独立通过)exit_code != 0 → 标记隔离问题output → WRITE 10-test-report.md §三(最后 20 行输出 + pass/fail 统计 + 退出码)10-test-report.md §八回归验证:Phase 4 基线测试数 vs 当前全量测试数 + 已有测试全部通过确认WRITE 10-test-report.md 输出骨架:
## §一 测试环境
- 测试命令:`{verify_cmd}`
- 执行时间:{timestamp}
## §二 失败分析(如有)
| 测试名 | 失败原因 | 归因 | 路由 |
|--------|---------|------|------|
| {name} | {error_msg} | 实现bug/环境/隔离 | → {agent} |
## §三 运行输出
\`\`\`
{最后 20 行输出}
\`\`\`
- 退出码:`{exit_code}`
- 统计:{pass} pass / {fail} fail / {skip} skip
## §八 回归验证
- Phase 4 基线:{N} 个测试
- 当前全量:{M} 个测试(+{M-N} 补充)
- 已有测试回归:全部通过 / {K} 个回归失败
ASSERT failures == 0
failures != 0 → GOTO Phase 5(重新排查失败原因)
_team-rules/first-principles.md: First Principle #4:声明不等于事实——跳过失败的测试套件不会让 bug 消失。
验证协议:声明"测试通过"前须执行 _team-rules/verification-protocol.md: 验证执行步骤
路由决策必须精确归因。"测试失败了"不是路由依据——"SDD §二.3 规定非空但实现未检查"才是。
MATCH test_outcome:
team-reviewteam-impl(附 bug 描述 + 复现步骤 + 期望行为)team-spec(附遗漏描述 + 建议补充)回退时 MUST 提供:
| 文件 | 模板位置 | 说明 |
|---|---|---|
09-test-matrix.md | references/09-test-matrix-template.md | 四维测试矩阵(含维度标注、SDD 追踪、来源标签) |
10-test-report.md | references/10-test-report-template.md | 测试运行报告(含输出证据、覆盖证据链、验证声明) |
team-spec)REF _team-rules/constitutional-rules.md — 10 条 Constitutional Rules
REF _team-rules/first-principles.md — 4 条第一性原理(First Principle #1 ~ #4)
REF _team-rules/spec-driven-workflow.md — SDD 验证链与有向图回退规则
REF _team-rules/verification-protocol.md — verify_cmd 解析流程与 5 步验证协议
REF _team-rules/task-lifecycle.md — 来源标签规范(§1.3)
_team-rules/first-principles.md: First Principle #4_team-rules/first-principles.md: First Principle #4team-spec,发现实现 bug 必须向编排器报告路由到 team-impl,不可擅自修改实现代码 _team-rules/first-principles.md: First Principle #4GATE 产出前自检(全部通过才放行):
09-test-matrix.md EXISTS && 10-test-report.md EXISTS && 有效行数 ≥ 5矩阵覆盖 SDD 所有业务规则 — 逐条对照 03-sdd.md §二每条 SDD §二 业务规则至少 2 个测试用例(≥ 1 正向 + ≥ 1 反向/边界)四维覆盖(功能/边界/异常/代码)均已检查覆盖声明已标注来源标签({extracted} / {inferred})补充测试已运行通过 && failures == 0全量测试结果已记录到 10-test-report.md(含最后 20 行输出 + 退出码 + §八回归验证)路由决策已明确(→ team-review / → team-impl / → team-spec / → ASK_HUMAN)spec 遗漏已向编排器报告(IF 无 spec 遗漏 → 跳过)无占位符残留({N}、{slug} 等已被实际值替换)IRON_LAW 遵守 — 未擅自修改实现代码、未跳过失败测试REF _team-rules/four-state-protocol.md — 四态完成状态
MATCH result:
补充测试: {N}, 全量: {N} pass / {N} fail, 路由: → team-review)concerns: [...])路由: → {team-impl / team-spec / ASK_HUMAN})被谁调用:
team-orchestrator(编排模式)配对使用:
team-review — REQUIRED:测试通过后必须进行代码审查team-impl — 发现 bug 时回退team-spec — 发现 spec 遗漏时回退team-review 进行代码审查team-impl 修复team-spec 补全