원클릭으로
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 补全