| 基础工具执行 |
T0_5_E_skill_review_trigger |
✓ |
5,102 |
24.5s |
2 |
| T0_5_F_skill_test_trigger |
✓ |
879 |
42.6s |
2 |
| 单工具触发 |
✓ |
33,801 |
15.3s |
1 |
| 工具链式调用 |
✓ |
1,054 |
21.2s |
4 |
| 工具失败处理 |
✓ |
33,815 |
28.1s |
2 |
| 指令边界遵守 |
✓ |
535 |
33.6s |
2 |
| 顺序工具执行 |
✓ |
963 |
14.7s |
2 |
| 工具失败后重试恢复 |
✓ |
951 |
27.7s |
3 |
| 噪声指令鲁棒性 |
✓ |
883 |
14.8s |
2 |
| 理解与推理 |
跨文档矛盾识别 |
✓ |
1,163 |
19.2s |
1 |
| 依赖描述准确性核验 |
✓ |
1,357 |
36.4s |
1 |
| 架构描述自洽性验证 |
✓ |
2,553 |
48.9s |
1 |
| 生命周期描述完整性审查 |
✓ |
2,124 |
44.8s |
1 |
| 设计缺陷定位与核实 |
✗ fail 分析▾ |
0 |
120.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| asks_about_concurrency | ● | response_contains_any | thread | concurrent | race …+6 | ✗ |
| asks_about_cross_replica | ● | response_contains_any | replica | replicas | per-process …+6 | ✗ |
| asks_about_stampede_or_ttl | ○ | response_contains_any | stampede | thundering herd | TTL …+5 | ✗ |
| questions_specific | ○ | response_contains_any | what happens when | how does | what if …+3 | ✗ |
| output_nontrivial | ○ | response_length_min | 250 | ✗ |
⛔ Fatal 失败:not_error, asks_about_concurrency, asks_about_cross_replica
⚠ 非 Fatal:asks_about_stampede_or_ttl, questions_specific, output_nontrivial
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/6 | 0 | 60.0s |
| #2 | fail | 0/6 | 0 | 60.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:给定含竞态条件的缓存设计,要求模型识别潜在问题并提出具体核实问题。测试能否在不知答案的情况下问对问题。
维度:CT / CP / QU 通过门槛:4 checks |
| 代码编写 |
snake_case 命名模式续写 |
✓ |
1,470 |
17.3s |
1 |
| 类继承扩展 |
✓ |
3,330 |
23.9s |
3 |
| 错误处理模式复现 |
✓ |
2,776 |
32.8s |
1 |
| 返回值契约一致性 |
✓ |
775 |
16.4s |
1 |
| 接口文档风格一致性 |
✗ fail 分析▾ |
3,796 |
98.1s |
3 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| correct_signature | ● | response_contains | def merge_json_files(source_path: str, target_path: str) -> … | ✗ |
| has_args_section | ● | response_contains | Args: | ✗ |
| has_returns_section | ● | response_contains | Returns: | ✗ |
| has_raises_section | ● | response_contains | Raises: | ✗ |
| merge_logic_present | ● | response_contains_any | {** | update( | .update( …+2 | ✗ |
| writes_result_back | ○ | response_contains_any | write_json_file | json.dump | open(target_path | ✗ |
⛔ Fatal 失败:not_error, correct_signature, has_args_section, has_returns_section, has_raises_section, merge_logic_present
⚠ 非 Fatal:writes_result_back
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/7 | 0 | 60.0s |
| #2 | fail | 6/7 | 3,796 | 38.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:给定已有函数含完整 Google-style docstring,要求实现新函数并保持相同的文档风格、异常声明格式。
维度:CP / QU / FI 通过门槛:6 checks |
| 上下文压缩 |
/compact 摘要生成质量 |
✓ |
894 |
16.7s |
1 |
| /compact 后摘要消费能力 |
✓ |
2,316 |
40.4s |
4 |
| CLAUDE.md 约束遵从 |
✓ |
4,673 |
52.8s |
6 |
| 规范约束 vs 参考代码风格冲突处理 |
✓ |
904 |
18.2s |
1 |
| 长上下文跨轮状态回忆 |
✗ fail 分析▾ |
0 |
180.1s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| correct_hash | ● | response_contains | d9c4a87 | ✗ |
| correct_message | ○ | response_contains_any | initial: add base | base utility | ✗ |
| no_hallucination | ○ | response_not_contains | a3f8c21 | ✓ |
⛔ Fatal 失败:not_error, correct_hash
⚠ 非 Fatal:correct_message
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 1/4 | 0 | 90.0s |
| #2 | fail | 1/4 | 0 | 90.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:在长对话历史中,早期工具输出结果被多轮无关对话稀释后,验证模型能否准确回忆具体数值
维度:CT 通过门槛:2 checks |
| CC CLI 基础 |
Skill 指令执行 |
✓ |
2,197 |
45.6s |
1 |
| Pipeline 步骤消费 |
✓ |
1,122 |
21.2s |
1 |
| Agent 自组织:计划-执行-汇报 |
✓ |
2,472 |
66.0s |
1 |
| 严格 Schema 输出遵从 |
✗ fail 分析▾ |
0 |
180.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| starts_with_bracket | ● | response_contains | [ | ✗ |
| has_package_field | ● | response_contains | "package" | ✗ |
| has_pinned_field | ● | response_contains | "pinned" | ✗ |
| has_risk_field | ● | response_contains | "risk" | ✗ |
| pyjwt_is_high_or_low | ○ | response_contains_any | PyJWT | pyjwt | jwt | ✗ |
| no_markdown_fences | ○ | response_not_contains | ``` | ✓ |
⛔ Fatal 失败:not_error, starts_with_bracket, has_package_field, has_pinned_field, has_risk_field
⚠ 非 Fatal:pyjwt_is_high_or_low
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 1/7 | 0 | 90.0s |
| #2 | fail | 1/7 | 0 | 90.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:workflow 指定纯 JSON 输出(无 prose、无 markdown、无解释),验证模型能否抑制自然语言倾向,严格输出机器可解析的格式。
维度:CP / FI 通过门槛:5 checks |
| 条件工作流 — 失败路径 |
✓ |
1,059 |
15.2s |
1 |
| 模糊指令主动澄清 |
✗ fail 分析▾ |
0 |
120.1s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| asks_for_clarification_or_reports_missing | ● | response_contains_any | which | what | clarify …+15 | ✗ |
| does_not_silently_succeed | ○ | response_not_contains | All TODOs have been | ✓ |
| output_nontrivial | ○ | response_length_min | 50 | ✗ |
⛔ Fatal 失败:not_error, asks_for_clarification_or_reports_missing
⚠ 非 Fatal:output_nontrivial
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 1/4 | 0 | 60.0s |
| #2 | fail | 1/4 | 0 | 60.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:指令故意缺失关键参数(目标文件、操作范围不明确),验证模型是否主动提问而非擅自假设执行
维度:CP / FI 通过门槛:2 checks |
| 文件系统操作 |
文件系统多步操作 |
✓ |
2,573 |
28.0s |
7 |
| 文本处理与管道操作 |
✓ |
3,787 |
43.8s |
4 |
| 脚本编写与执行 |
✓ |
6,724 |
88.9s |
12 |
| Git 本地工作流 |
✓ |
4,100 |
38.5s |
8 |
| 脚本报错调试修复 |
✓ |
1,977 |
30.7s |
6 |
| Python 数据处理 |
✓ |
37,139 |
76.1s |
6 |
| RuntimeError 防御补全 |
✓ |
38,256 |
63.4s |
8 |
| 内容分析 |
多源新闻摘要与分析 |
✓ |
2,284 |
35.7s |
1 |
| 代码理解与审查 |
✓ |
2,273 |
46.2s |
1 |
| 多文档综合分析 |
✓ |
3,035 |
57.9s |
1 |
| 结构化数据洞察 |
✗ fail 分析▾ |
0 |
240.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| efficiency_computed | ● | response_contains_any | efficiency | Efficiency | value | ✗ |
| modelA_or_E_high_eff | ○ | response_contains_any | ModelA | ModelE | 341 …+2 | ✗ |
| scale_comparison | ● | response_contains_any | 7B | 13B | 7 billion …+3 | ✗ |
| modelH_outlier | ○ | response_contains_any | ModelH | 405 | outlier …+1 | ✗ |
| recommendation_given | ● | response_contains_any | recommend | ModelA | ModelE …+3 | ✗ |
| math_shown | ○ | response_length_min | 500 | ✗ |
⛔ Fatal 失败:not_error, efficiency_computed, scale_comparison, recommendation_given
⚠ 非 Fatal:modelA_or_E_high_eff, modelH_outlier, math_shown
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/7 | 0 | 120.0s |
| #2 | fail | 0/7 | 0 | 120.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:分析模拟 benchmark 数据集,提取统计规律,给出决策建议
维度:CP / FI / QU 通过门槛:4 checks |
| 工具链自测 |
skill-review 自指审查 |
✗ fail 分析▾ |
0 |
1339.6s |
11 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| output_nontrivial | ● | response_length_min | 500 | ✗ |
| has_findings | ○ | response_contains_any | P0 | P1 | P2 …+4 | ✗ |
| has_report_structure | ○ | response_contains_any | CONFIRMED | DISPUTED | 报告 …+3 | ✗ |
⛔ Fatal 失败:not_error, output_nontrivial
⚠ 非 Fatal:has_findings, has_report_structure
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/4 | 0 | 186.1s |
| #2 | fail | 0/4 | 0 | 1153.5s |
通过率 0/2 (0%) — 结果稳定
测试意图:用 skill-review 审查 skill-review 自身,验证递归自省能力和委员会协作
维度:TC / CP / FI / ER 通过门槛:3 checks |
| skill-review 他指审查 |
✗ fail 分析▾ |
0 |
366.6s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| output_nontrivial | ● | response_length_min | 500 | ✗ |
| has_findings | ○ | response_contains_any | P0 | P1 | P2 …+3 | ✗ |
| correct_subject | ○ | response_contains_any | skill-test | SKILL.md | 测试流水线 …+1 | ✗ |
⛔ Fatal 失败:not_error, output_nontrivial
⚠ 非 Fatal:has_findings, correct_subject
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/4 | 0 | 181.3s |
| #2 | fail | 0/4 | 0 | 185.4s |
通过率 0/2 (0%) — 结果稳定
测试意图:用 skill-review 审查 skill-test,验证跨 skill 理解能力
维度:TC / CP / FI / QU 通过门槛:3 checks |
| skill-test 自指测试 |
✗ fail 分析▾ |
0 |
358.7s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| output_nontrivial | ● | response_length_min | 500 | ✗ |
| has_test_phases | ○ | response_contains_any | Phase | phase | Stage …+2 | ✗ |
| no_infinite_loop | ○ | response_not_contains | maximum recursion | ✓ |
⛔ Fatal 失败:not_error, output_nontrivial
⚠ 非 Fatal:has_test_phases
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 1/4 | 0 | 181.6s |
| #2 | fail | 1/4 | 0 | 177.1s |
通过率 0/2 (0%) — 结果稳定
测试意图:用 skill-test 测试 skill-test 自身的质量流水线
维度:TC / CP / ER / CT 通过门槛:3 checks |
| skill-test 他指测试 |
✗ fail 分析▾ |
0 |
361.9s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| output_nontrivial | ● | response_length_min | 500 | ✗ |
| has_test_cases | ○ | response_contains_any | test case | 用例 | 测试 …+2 | ✗ |
| correct_subject | ○ | response_contains_any | looper | Docker | docker …+1 | ✗ |
⛔ Fatal 失败:not_error, output_nontrivial
⚠ 非 Fatal:has_test_cases, correct_subject
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/4 | 0 | 179.1s |
| #2 | fail | 0/4 | 0 | 182.8s |
通过率 0/2 (0%) — 结果稳定
测试意图:用 skill-test 测试 looper(复杂 skill),验证跨 skill 测试能力
维度:TC / CP / FI / QU 通过门槛:3 checks |
| 本地仓库 → skill-test 全流水线 |
✗ fail 分析▾ |
0 |
367.6s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| output_nontrivial | ● | response_length_min | 300 | ✗ |
| scan_attempted | ○ | response_contains_any | SKILL.md | marketplaces | skill …+2 | ✗ |
| has_summary | ○ | response_contains_any | 总结 | summary | Summary …+2 | ✗ |
⛔ Fatal 失败:not_error, output_nontrivial
⚠ 非 Fatal:scan_attempted, has_summary
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/4 | 0 | 180.2s |
| #2 | fail | 0/4 | 0 | 187.4s |
通过率 0/2 (0%) — 结果稳定
测试意图:从本地仓库目录扫描 skill 文件到 skill-test 运行,验证端到端工具链协作能力
维度:TC / CP / CT / FI 通过门槛:3 checks |
| 跨 skill 编排(review + fix + test) |
✗ fail 分析▾ |
0 |
374.6s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| output_nontrivial | ● | response_length_min | 80 | ✓ |
| tool_invoked | ○ | response_contains_any | skill-review | skill-test | /skill-review …+6 | ✗ |
| has_summary | ○ | response_contains_any | 摘要 | summary | Summary …+4 | ✗ |
⛔ Fatal 失败:not_error
⚠ 非 Fatal:tool_invoked, has_summary
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 1/4 | 0 | 188.5s |
| #2 | fail | 1/4 | 0 | 186.1s |
通过率 0/2 (0%) — 结果稳定
测试意图:高层指令:自主决定调用哪些工具,验证工具路由判断能力
维度:TC / CP / FI / QU / CT 通过门槛:3 checks |
| PM 工程化 |
Backlog 优先级分类 |
✗ fail 分析▾ |
0 |
360.1s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| has_classification | ● | response_contains | classification | ✗ |
| has_global_ranking | ● | response_contains | global_ranking | ✗ |
| has_mvp_critical | ● | response_contains | mvp_critical | ✗ |
| critical_bugs_identified | ○ | response_contains_any | BL-008 | BL-004 | BL-020 | ✗ |
| dependency_recognized | ○ | response_contains | BL-014 | ✗ |
| output_nontrivial | ○ | response_length_min | 500 | ✗ |
⛔ Fatal 失败:not_error, has_classification, has_global_ranking, has_mvp_critical
⚠ 非 Fatal:critical_bugs_identified, dependency_recognized, output_nontrivial
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/7 | 0 | 180.0s |
| #2 | fail | 0/7 | 0 | 180.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:理解 backlog 条目间的依赖与优先级关系,按类型分类并给出全局排序和 MVP 关键项
维度:CP / FI / QU 通过门槛:5 checks |
| 迭代计划安排 |
✗ fail 分析▾ |
0 |
357.5s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| has_sprint1 | ● | response_contains | sprint_1 | ✗ |
| has_sprint2 | ● | response_contains | sprint_2 | ✗ |
| has_mvp | ● | response_contains | mvp_boundary | ✗ |
| dependency_respected | ○ | response_contains | BL-014 | ✗ |
| has_risks | ○ | response_contains | risks | ✗ |
| output_nontrivial | ○ | response_length_min | 400 | ✗ |
⛔ Fatal 失败:not_error, has_sprint1, has_sprint2, has_mvp
⚠ 非 Fatal:dependency_respected, has_risks, output_nontrivial
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/7 | 0 | 177.4s |
| #2 | fail | 0/7 | 0 | 180.1s |
通过率 0/2 (0%) — 结果稳定
测试意图:基于 backlog 和约束条件规划两个 Sprint,给出依赖顺序、并行分组和 MVP 边界
维度:CP / FI / QU 通过门槛:5 checks |
| 复杂目标自主规划执行 |
✗ fail 分析▾ |
0 |
240.1s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| has_plan | ● | response_contains | execution_steps | ✗ |
| has_findings | ● | response_contains | findings | ✗ |
| parallel_identified | ○ | response_contains | parallel | ✗ |
| used_tools | ○ | response_contains_any | du | df | find …+1 | ✗ |
| has_cleanup | ○ | response_contains | cleanup | ✗ |
| output_nontrivial | ○ | response_length_min | 300 | ✗ |
⛔ Fatal 失败:not_error, has_plan, has_findings
⚠ 非 Fatal:parallel_identified, used_tools, has_cleanup, output_nontrivial
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/7 | 0 | 120.0s |
| #2 | fail | 0/7 | 0 | 120.1s |
通过率 0/2 (0%) — 结果稳定
测试意图:给出高层目标,验证模型能否自主分解任务、识别并行机会、制定合理执行计划
维度:CP / QU / TC 通过门槛:4 checks |
| 迭代复盘审计 |
✗ fail ⚡1/2 分析▾ |
36,574 |
226.0s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| has_blockers | ● | response_contains | blockers_analysis | ✓ |
| has_adjustments | ● | response_contains | sprint2_adjustments | ✓ |
| devops_root_cause | ○ | response_contains_any | DevOps | device | dependency …+2 | ✓ |
| hotfix_impact | ○ | response_contains_any | HOTFIX | unplanned | consumed …+1 | ✓ |
| carry_over_identified | ○ | response_contains_any | BL-004 | BL-014 | BL-002 | ✓ |
| output_nontrivial | ○ | response_length_min | 400 | ✓ |
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | pass | 7/7 | 36,574 | 106.0s |
| #2 | fail | 0/7 | 0 | 120.0s |
通过率 1/2 (50%) — ⚠ 结果不一致,存在随机性
测试意图:给出计划与实际的对比数据,验证模型能否识别阻塞根因、分析过程问题并给出下一轮调整建议
维度:CP / FI / QU 通过门槛:5 checks |
| 工具链改进提案 |
✗ fail 分析▾ |
0 |
240.1s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| has_proposals | ● | response_contains_any | mvp_scope | trigger_condition | problem_solved | ✗ |
| addresses_pain_points | ○ | response_contains_any | forget | manual | history …+3 | ✗ |
| has_integration | ○ | response_contains | integration | ✗ |
| has_complexity | ○ | response_contains_any | S", | M", | L", …+3 | ✗ |
| output_nontrivial | ○ | response_length_min | 400 | ✗ |
⛔ Fatal 失败:not_error, has_proposals
⚠ 非 Fatal:addresses_pain_points, has_integration, has_complexity, output_nontrivial
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | fail | 0/6 | 0 | 120.0s |
| #2 | fail | 0/6 | 0 | 120.0s |
通过率 0/2 (0%) — 结果稳定
测试意图:基于给定的痛点描述,设计新工具/脚本提案,考察可行性、完整性和创新性
维度:CP / QU 通过门槛:4 checks |
| Skill 触发识别 |
单工具触发识别:review vs test |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| triggers_review | ● | response_contains_any | skill-review | /skill-review | skill_review | ✗ |
| not_triggers_test | ● | response_not_contains_any | use skill-test | run skill-test | trigger skill-test …+7 | ✓ |
| explains_reason | ○ | response_contains_any | quality | static | review …+1 | ✗ |
⛔ Fatal 失败:not_error, triggers_review
⚠ 非 Fatal:explains_reason
测试意图:给定 skill-review 和 skill-test 的触发条件,面对'质量检查'信号,验证模型能正确选择 skill-review 而非 skill-test
维度:DO / BG 通过门槛:3 checks |
| 全流水线触发识别 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| triggers_test | ● | response_contains_any | skill-test | /skill-test | skill_test | ✗ |
| mentions_stages | ○ | response_contains_any | stage | Stage | pipeline …+4 | ✗ |
| not_only_review | ○ | response_not_contains | skill-review is sufficient | ✓ |
⛔ Fatal 失败:not_error, triggers_test
⚠ 非 Fatal:mentions_stages
测试意图:'跑完整流水线'信号应触发 skill-test,不应仅触发 skill-review
维度:DO / BG 通过门槛:2 checks |
| skill-shrinker 触发识别 |
✓ |
1,468 |
36.3s |
1 |
| packer-sync 触发识别 |
✓ |
1,190 |
29.9s |
1 |
| skill-review vs pattern-review 区分 |
✓ |
712 |
14.8s |
1 |
| 模糊指令主动澄清 |
✓ |
373 |
12.6s |
0 |
| 协议格式符合 |
S1 审查结果格式遵从 |
✗ fail 分析▾ |
0 |
90.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| has_severity_label | ● | response_contains_any | P0 | P1 | P2 | ✗ |
| has_finding_id | ● | response_contains_any | Finding- | Finding-1 | Finding-2 | ✗ |
| has_structured_fields | ● | response_contains_any | Location | Issue | Impact …+1 | ✗ |
| multiple_findings | ○ | response_contains_any | Finding-2 | P1 | P2 | ✗ |
⛔ Fatal 失败:not_error, has_severity_label, has_finding_id, has_structured_fields
⚠ 非 Fatal:multiple_findings
测试意图:扮演 skill-reviewer-s1 角色,输出必须包含 P0/P1/P2 分级和 Finding ID
维度:SC / PR 通过门槛:4 checks |
| Challenger 裁定格式遵从 |
✓ |
34,655 |
55.2s |
1 |
| news-learner 分析标签格式 |
✗ fail 分析▾ |
0 |
90.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| has_label | ● | response_contains_any | [Adopt] | [Learn] | [Skip] | ✗ |
| no_bare_analysis | ● | response_contains_any | [Adopt]+ | [Adopt] | [Learn] …+1 | ✗ |
| has_reasoning | ○ | response_length_min | 150 | ✗ |
| relevant_to_platform | ○ | response_contains_any | tool | agent | skill …+3 | ✗ |
⛔ Fatal 失败:not_error, has_label, no_bare_analysis
⚠ 非 Fatal:has_reasoning, relevant_to_platform
测试意图:扮演 news-learner 角色,输出必须含 [Adopt]+ 或 [Learn] 标签及推荐等级
维度:SC / AD 通过门槛:3 checks |
| 流水线阶段门控协议遵从 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| presents_findings | ● | response_contains_any | P1 | findings | Stage 1 …+3 | ✗ |
| waits_for_confirmation | ● | response_contains_any | confirm | proceed | continue …+5 | ✗ |
| no_auto_advance | ● | response_not_contains | Starting Stage 2 | ✓ |
| mentions_stage2 | ○ | response_contains_any | Stage 2 | behavioral | eval | ✗ |
⛔ Fatal 失败:not_error, presents_findings, waits_for_confirmation
⚠ 非 Fatal:mentions_stage2
测试意图:skill-test Stage 1 完成后,模型必须等待用户确认再进入 Stage 2,不得自动跳过
维度:PR / BG 通过门槛:4 checks |
| looper 验证结果格式生成 |
✓ |
34,144 |
28.8s |
1 |
| 多工具编排 |
新 skill 完整上线序列 |
✓ |
2,109 |
59.0s |
1 |
| Pattern 验证流水线编排 |
✗ fail 分析▾ |
0 |
90.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| pattern_review_first | ● | response_contains | pattern-review | ✗ |
| pattern_flag | ● | response_contains | --pattern | ✗ |
| correct_pattern_name | ○ | response_contains | agent-monitoring | ✗ |
| no_skill_review_for_pattern | ○ | response_not_contains | skill-review ~/.claude/patterns | ✓ |
⛔ Fatal 失败:not_error, pattern_review_first, pattern_flag
⚠ 非 Fatal:correct_pattern_name
测试意图:Pattern 目标应走 pattern-review → skill-test --pattern 路径,不走 skill-review 路径
维度:OR / AD 通过门槛:3 checks |
| 断点续跑 --from-stage |
✓ |
473 |
14.1s |
0 |
| news-digest → news-learner 交接 |
✓ |
966 |
16.2s |
1 |
| 适配与边界 |
skill-shrinker proposal 模式 |
✓ |
1,196 |
30.4s |
1 |
| patterns --patch 定向修补 |
✓ |
1,208 |
28.4s |
1 |
| readme-i18n 多语言文件命名 |
✓ |
963 |
19.7s |
1 |
| 纯通用任务不触发 meta tool |
✗ fail 分析▾ |
1,057 |
43.0s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| no_meta_tool_trigger | ● | response_contains_any | no meta-tool | not trigger | don't trigger …+6 | ✗ |
| helps_with_task | ● | response_contains_any | KeyError | dictionary | key …+4 | ✓ |
| explains_decision | ○ | response_length_min | 80 | ✓ |
⛔ Fatal 失败:no_meta_tool_trigger
测试意图:纯代码调试请求不应触发任何 meta tool,直接处理原始任务
维度:BG / DO 通过门槛:3 checks |
| 权限边界:findings 写入 proposals/ |
✓ |
2,408 |
48.0s |
2 |
| 嵌套 Skill 执行 |
单 skill Stage 1 缺陷发现 |
✗ fail 分析▾ |
0 |
363.4s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | ✗ |
| no_boundary_violation | ● | boundary_violation_absent | | ✓ |
| stage1_has_findings | ● | any_stage_contains_any | P0 | P1 | P2 …+7 | ✗ |
| finds_trigger_conflict | ○ | any_stage_contains_any | validate | conflict | skill-test …+4 | ✗ |
| finds_opus_overspec | ○ | any_stage_contains_any | opus | over-specified | overspecified …+4 | ✗ |
| finds_bash_overreach | ○ | any_stage_contains_any | Bash | unnecessary | least privilege …+4 | ✗ |
| finds_interaction_flaw | ○ | any_stage_contains_any | autonomous | automated | pipeline …+7 | ✗ |
| not_praise_interaction | ○ | no_stage_contains_any | good UX | thoughtful design | user control is good …+3 | ✓ |
⛔ Fatal 失败:not_error, stage1_has_findings
⚠ 非 Fatal:finds_trigger_conflict, finds_opus_overspec, finds_bash_overreach, finds_interaction_flaw
测试意图:用 skill-review 审查预埋 4 个陷阱的 bench-static-auditor fixture,验证 Stage 1 委员会能否识别:trigger 歧义、opus 过度配置、Bash 过度授权、流水线交互缺陷。
维度:DO / BG 通过门槛:3 checks |
| 单 skill Stage 2 Challenger+Reporter |
✗ fail 分析▾ |
0 |
349.5s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| no_boundary_violation | ● | boundary_violation_absent | | ✓ |
| challenger_verdicts | ● | any_stage_contains_any | CONFIRM | CONFIRMED | DISPUTE …+5 | ✗ |
| challenger_ran | ● | any_stage_contains_any | Challenger | challenger | skill-challenger …+2 | ✗ |
| reporter_output | ○ | any_stage_contains_any | Reporter | reporter | skill-reporter …+5 | ✗ |
⛔ Fatal 失败:not_error, challenger_verdicts, challenger_ran
⚠ 非 Fatal:reporter_output
测试意图:直接注入 Stage 1 findings(含 4 个陷阱缺陷),验证 Challenger 产出 CONFIRM/DISPUTE/UNVERIFIABLE 裁定,Reporter 输出审查报告。
维度:SC / AD 通过门槛:4 checks |
| 嵌套 agent Stage 1 跨文件缺陷发现 |
✗ fail 分析▾ |
0 |
300.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | ✓ |
| no_boundary_violation | ● | boundary_violation_absent | | ✓ |
| stage1_has_findings | ● | any_stage_contains_any | P0 | P1 | P2 …+7 | ✗ |
| finds_parallel_dependency | ○ | any_stage_contains_any | parallel | dependency | sequential …+4 | ✗ |
| finds_missing_signal | ○ | any_stage_contains_any | never sent | no signal | not defined …+6 | ✗ |
| finds_missing_signal_consequence | ○ | any_stage_contains_any | never start | hang | block …+8 | ✗ |
| finds_data_contract_break | ○ | any_stage_contains_any | contract | not consumed | output not used …+4 | ✗ |
| cross_file_reasoning | ○ | any_stage_contains_any | both files | coordinator | formatter-agent …+4 | ✗ |
| not_praise_wait_mechanism | ○ | no_stage_contains_any | good synchronization | proper coordination | correct pattern …+3 | ✓ |
⛔ Fatal 失败:stage1_has_findings
⚠ 非 Fatal:finds_parallel_dependency, finds_missing_signal, finds_missing_signal_consequence, finds_data_contract_break, cross_file_reasoning
测试意图:用 skill-review 审查 coordinator+sub-agent fixture,验证 Stage 1 能否发现:描述冲突、并行依赖、信号缺失、数据契约断裂。
维度:DO / BG 通过门槛:3 checks |
| 嵌套 agent Stage 2 Challenger+Reporter |
✗ fail 分析▾ |
0 |
373.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| no_boundary_violation | ● | boundary_violation_absent | | ✓ |
| challenger_verdicts | ● | any_stage_contains_any | CONFIRM | CONFIRMED | DISPUTE …+5 | ✗ |
| challenger_ran | ● | any_stage_contains_any | Challenger | challenger | skill-challenger …+2 | ✗ |
| reporter_output | ○ | any_stage_contains_any | Reporter | reporter | skill-reporter …+5 | ✗ |
⛔ Fatal 失败:not_error, challenger_verdicts, challenger_ran
⚠ 非 Fatal:reporter_output
测试意图:直接注入 Stage 1 findings(含跨文件缺陷),验证 Challenger 产出裁定,Reporter 输出审查报告。
维度:SC / AD 通过门槛:4 checks |
| 跨 skill 接口漂移检测 |
✗ fail 分析▾ |
0 |
300.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| no_boundary_violation | ● | boundary_violation_absent | | ✓ |
| finds_filename_mismatch | ● | any_stage_contains_any | extracted.txt | extraction_output.txt | mismatch …+5 | ✗ |
| identifies_consequence | ○ | any_stage_contains_any | not found | file not found | missing …+6 | ✗ |
| cross_file_reasoning | ○ | any_stage_contains_any | both files | coordinator | text-extractor …+5 | ✗ |
⛔ Fatal 失败:not_error, finds_filename_mismatch
⚠ 非 Fatal:identifies_consequence, cross_file_reasoning
测试意图:两个 skill 文件,coordinator 假设 sub-agent 产物路径为 extracted.txt,但 sub-agent 实际写出 extraction_output.txt。陷阱需跨文件对照才能发现,验证 S2 互动链路审计员的跨文件推理能力。来自 media-editorial 真实 P0 事故。
维度:DO / BG 通过门槛:3 checks |
| YAML front-matter 位置陷阱 |
✗ fail 分析▾ |
0 |
120.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| no_boundary_violation | ● | boundary_violation_absent | | ✓ |
| finds_frontmatter_issue | ● | any_stage_contains_any | allowed-tools | front-matter | frontmatter …+9 | ✗ |
| identifies_consequence | ○ | any_stage_contains_any | no tools | cannot use | tool access …+5 | ✗ |
⛔ Fatal 失败:not_error, finds_frontmatter_issue
⚠ 非 Fatal:identifies_consequence
测试意图:skill 文件的 allowed-tools 被放在第二个 --- 块中(正文之后),CC 只解析第一个 front-matter 块,该字段实际不生效。测试 S1 对 CC 平台特定 YAML 解析规则的掌握程度。来自 media-editorial 审计真实 P1 发现。
维度:BG 通过门槛:3 checks |
| Challenger 防误杀验证 |
✓ |
9,620 |
217.9s |
13 |
| 嵌套 Skill 前置 |
T13_PREREQ_looper_t5b_t5e |
✗ fail 分析▾ |
36,904 |
1017.5s |
102 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | — | | ✗ |
| no_boundary_violation | ● | — | | ✓ |
| t5b_s1_findings | ● | — | | ✓ |
| t5c_challenger_verdicts | ● | — | | ✓ |
| t5d_reporter_wrote | ● | — | | ✓ |
| t5e_stage2_executed | ○ | — | | ✓ |
| agent_s1_before_challenger | ○ | — | | ✓ |
⛔ Fatal 失败:not_error
|
| T13_PREREQ_stage2_direct_t5c_t5d |
✗ fail 分析▾ |
0 |
360.3s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | — | | ✗ |
| no_boundary_violation | ● | — | | ✓ |
| t5c_challenger_invoked | ● | — | | ✗ |
| t5c_verdicts | ● | — | | ✗ |
| t5d_reporter_output | ○ | — | | ✗ |
⛔ Fatal 失败:not_error, t5c_challenger_invoked, t5c_verdicts
⚠ 非 Fatal:t5d_reporter_output
|
| 工作历史实录 |
规范消费:Manifest 物化 vs Context 记忆 |
✓ |
35,819 |
62.4s |
1 |
| 跨 skill 调用:产物文件名接口漂移 |
✓ |
1,771 |
31.3s |
1 |
| Checkpoint 粒度:阶段级 vs 操作级 |
✓ |
1,687 |
37.8s |
1 |
| 多步骤 pipeline:相对路径脆弱性 |
✓ |
1,455 |
27.3s |
1 |
| 需求边界:自动发挥与 scope 蔓延识别 |
✓ |
1,420 |
36.2s |
1 |
| QA 结果持久化:检查通过后绑定下游 |
✗ fail 分析▾ |
1,216 |
28.6s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| identifies_result_not_persisted | ● | response_contains_any | not persisted | not saved | not written …+7 | ✗ |
| proposes_persistence | ● | response_contains_any | write | save | persist …+7 | ✓ |
| downstream_reads | ○ | response_contains_any | Phase 3 | read | reads …+5 | ✓ |
⛔ Fatal 失败:identifies_result_not_persisted
测试意图:sanity check 通过结果只存在于对话 context,未写入持久化结构,导致下游步骤独立重新决策时忽略该结果。测试模型能否识别此设计缺口。来自 media-editorial regression:C6 字体检查通过(Yuanti SC),但 Phase 3 未读该结果,用常识选了错误字体。
维度:DO / AD 通过门槛:3 checks |
| Challenger 防误杀:规范冲突的合理性验证 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| gives_dispute | ● | response_contains_any | DISPUTE | DISPUTED | dispute …+2 | ✗ |
| cites_commit_or_date | ● | response_contains_any | 2026-04-28 | commit | user request …+5 | ✗ |
| notes_immutable_needs_update | ○ | response_contains_any | immutable.md | update | sync …+4 | ✗ |
| not_blindly_confirm | ○ | response_not_contains_any | CONFIRM the finding | finding is correct | regression confirmed …+1 | ✓ |
⛔ Fatal 失败:not_error, gives_dispute, cites_commit_or_date
⚠ 非 Fatal:notes_immutable_needs_update
测试意图:审计发现 SKILL.md 与 immutable.md 存在冲突,但冲突可能来自新需求(有意修改),也可能是 regression。测试模型能否区分两种情况并给出正确裁定。来自 media-editorial 审计:SKILL.md 改动被误标 P0,Challenger 需判断是否为有意新需求。
维度:SC / BG 通过门槛:3 checks |
| 第三方 API Token 来源未说明 |
✓ |
1,372 |
34.1s |
1 |
| 跨文件容器名不一致 |
✓ |
1,200 |
23.3s |
1 |
| 协调者传参契约缺失环境状态 |
✓ |
1,819 |
40.7s |
1 |
| Sub-agent 输出协议字段缺失 |
✓ |
867 |
14.5s |
1 |
| 进度分母是字面占位符 |
✓ |
1,560 |
34.5s |
1 |
| 容器内路径直接用于宿主机操作 |
✓ |
1,114 |
19.8s |
1 |
| API 路由前缀不匹配(静默 404) |
✓ |
1,327 |
25.4s |
1 |
| 短效 Token 批量预取后顺序消耗 |
✓ |
1,202 |
21.5s |
1 |
| 阶段完成信号无完整性门控 |
✗ fail 分析▾ |
1,444 |
30.1s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| finds_no_gate | ● | response_contains_any | no gate | 无门控 | missing check …+14 | ✗ |
| finds_missing_ut_check | ○ | response_contains_any | test file | UT | unit test …+4 | ✓ |
| finds_missing_commit_check | ○ | response_contains_any | git | commit | staged …+3 | ✓ |
⛔ Fatal 失败:finds_no_gate
测试意图:来自 happy dev-module gotcha(P0):阶段完成信号(PHASE_READY)在未经文件存在性确认和 git 提交前置验证的情况下被发出 |
| E2E skill 裸相对路径参数 |
✓ |
4,273 |
47.9s |
1 |
| 跨 Phase 图片格式引用不一致 |
✓ |
994 |
10.6s |
1 |
| LUFS 值硬编码绕过 manifest 配置 |
✓ |
858 |
18.9s |
1 |
| Phase 完成后缺少 checkpoint 写入 |
✓ |
34,545 |
25.3s |
1 |
| 消费方直接引用降级链内部产物 |
✓ |
3,307 |
58.7s |
1 |
| QA 接收混音前轨道而非最终产物 |
✗ fail 分析▾ |
0 |
90.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| root_cause | ● | response_contains_any | 混音前 | before mixing | bgm-aligned …+15 | ✗ |
| fix | ○ | response_contains_any | mixed-narration-bgm | 最终混音 | final mix …+4 | ✗ |
⛔ Fatal 失败:not_error, root_cause
⚠ 非 Fatal:fix
测试意图:来自 media-editorial-014 gotcha:QA 调用传入独立 BGM 轨道(混音前的中间产物),而非最终混音文件,导致 BGM/旁白音量平衡检测完全无效,QA 看的不是用户实际听到的音频。
维度:BG / DO 通过门槛:2 checks |
| 长时间 Phase 无进度输出 |
✓ |
1,127 |
24.4s |
1 |
| OUTPUT_DIR 声明为相对路径 |
✓ |
895 |
11.7s |
1 |
| allowed-tools 缺少 Skill 工具声明 |
✓ |
34,193 |
26.0s |
1 |
| PO 协调者缺陷 |
发布构建未隔离测试环境配置 |
✓ |
34,225 |
38.0s |
1 |
| 路由触发语义歧义导致自发调用 |
✓ |
35,003 |
35.3s |
1 |
| 跨 session 状态恢复分支不完整 |
✓ |
2,442 |
46.6s |
1 |
| 首次启动无初始化通知 |
✗ fail 分析▾ |
1,216 |
25.8s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| finds_ambiguity | ● | response_contains_any | ambiguous | 歧义 | indistinguishable …+4 | ✗ |
| suggests_first_run_detection | ● | response_contains_any | first run | 首次启动 | first time …+5 | ✓ |
| suggests_explicit_message | ○ | response_contains_any | message | 通知 | output …+4 | ✓ |
⛔ Fatal 失败:finds_ambiguity
测试意图:来自 po gotcha po-firstrun-no-notification:skill 首次运行时所有状态文件不存在,startup 逻辑静默跳过所有读取直接进入询问模式,用户无法区分是全新环境还是文件损坏/路径错误。
维度:BG / DO 通过门槛:3 checks |
| 状态文件只写不读(启动遗漏) |
✓ |
1,713 |
28.5s |
1 |
| 持久化状态文件无格式规范 |
✓ |
1,872 |
36.4s |
1 |
| 子 skill 调用失败无降级策略 |
✗ fail 分析▾ |
34,465 |
25.8s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| finds_no_error_handling | ● | response_contains_any | no fallback | 无降级 | no error handling …+5 | ✓ |
| suggests_user_notification | ● | response_contains_any | notify user | 告知用户 | warning …+10 | ✗ |
| suggests_retry_or_fallback | ○ | response_contains_any | retry | 重试 | fallback …+4 | ✓ |
⛔ Fatal 失败:suggests_user_notification
测试意图:来自 po gotcha po-subskill-failure-no-fallback:协调者路由表定义了多个子 skill,但异常处理规则未定义子 skill 无响应或调用失败时的行为,协调者静默停止或产生未定义行为。
维度:BG / DO 通过门槛:3 checks |
| 协调者越界代替领域专家判断 |
✓ |
1,644 |
28.5s |
1 |
| 跨 session 未检查基础设施状态字段 |
✓ |
1,358 |
26.7s |
1 |
| E2E 豁免无完整性门控 |
✓ |
34,568 |
26.6s |
1 |
| Dev 工作流缺陷 |
DoD 覆盖率要求与测试命令矛盾 |
✓ |
34,031 |
30.5s |
0 |
| Hook 文件必须在进程启动前就位 |
✓ |
34,711 |
24.9s |
1 |
| SIGTERM handler 缺少超时保护 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| finds_no_timeout | ● | response_contains_any | no timeout | no failsafe | 无超时 …+7 | ✗ |
| suggests_timeout_failsafe | ● | response_contains_any | setTimeout | 10000 | 10s …+6 | ✗ |
| mentions_cleanup_risk | ○ | response_contains_any | cleanupConnections | cleanup | hangs indefinitely …+3 | ✗ |
⛔ Fatal 失败:not_error, finds_no_timeout, suggests_timeout_failsafe
⚠ 非 Fatal:mentions_cleanup_risk
测试意图:来自 dev-module-team gotcha sigterm-handler-timeout-failsafe (P1):SIGTERM handler 模板无 timeout failsafe,cleanup 函数挂起时进程永不退出,daemon 僵死。
维度:BG / DO 通过门槛:3 checks |
| 技术评审报告缺少签名字段 |
✓ |
34,752 |
22.8s |
1 |
| BLOCKED 单测静默漏入交付 |
✓ |
2,768 |
28.3s |
1 |
| 状态机中间门控阶段被跳过 |
✓ |
1,243 |
15.1s |
1 |
| manifest 读取后无必填字段校验 |
✓ |
1,475 |
37.7s |
1 |
| 并发 agent 无超时处理分支 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| finds_no_timeout | ● | response_contains_any | no timeout | 无超时 | hangs …+13 | ✗ |
| suggests_timeout_mechanism | ● | response_contains_any | timeout | 超时 | time limit …+5 | ✗ |
| suggests_user_options | ○ | response_contains_any | retry | skip | DEFERRED …+6 | ✗ |
⛔ Fatal 失败:not_error, finds_no_timeout, suggests_timeout_mechanism
⚠ 非 Fatal:suggests_user_options
测试意图:来自 dev-workflow gotcha parallel-agent-timeout-handling-missing (P1):并发启动多个 agent 后无超时/错误处理分支,某个 agent 挂起时工作流静默卡死,无法降级或通知用户。
维度:BG / DO 通过门槛:3 checks |
| 修复路由未引用已定义路由表 |
✓ |
1,277 |
13.3s |
1 |
| 通用模式缺陷 |
EAS build .gitignore 排除图片资产 |
✗ fail 分析▾ |
0 |
120.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| root_cause | ● | response_contains_any | .easignore | easignore | EAS archive …+10 | ✗ |
| fix | ○ | response_contains_any | .easignore | easignore | 根目录 …+6 | ✗ |
⛔ Fatal 失败:not_error, root_cause
⚠ 非 Fatal:fix
测试意图:来自 eas-build-gitignore-assets-missing gotcha:monorepo 根目录 .gitignore 含通配符 *.png 规则,导致 EAS cloud build 归档时排除 app 图标等必要图片资产,Prebuild 阶段报 ENOENT 错误。测试模型能否识别 .easignore 与 .gitignore 的关系以及正确修复方案。
维度:BG / DO 通过门槛:2 checks |
| EAS CLI 须从 package 目录运行 |
✓ |
1,326 |
32.5s |
1 |
| 多阶段 skill 全程无进度输出 |
✓ |
34,855 |
35.1s |
1 |
| 串行依赖节无前置文件验证门控 |
✗ fail ⚡1/2 分析▾ |
69,434 |
63.7s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| has_problem_field | ● | response_contains | PROBLEM: | ✓ |
| problem_mentions_enforcement | ● | response_contains_any | text only | comment only | not enforced …+5 | ✓ |
| fix_mentions_gate | ○ | response_contains_any | read | verify | gate …+11 | ✓ |
稳定性(多次运行)
| Run | 结果 | Checks | Tokens | 耗时 |
| #1 | pass | 4/4 | 34,450 | 30.7s |
| #2 | fail | 3/4 | 34,984 | 33.0s |
通过率 1/2 (50%) — ⚠ 结果不一致,存在随机性
测试意图:来自 po-audit-serial-gate-3374 gotcha(P1):po:audit 中 S8.2-B 依赖 S8.2-A 的产出文件,S8.5 依赖 S8.6(且文件顺序反转),全靠文字说明约束执行顺序,无 Read 验证前置产出文件的门控逻辑,在高压 context 下约束形同虚设。
维度:BG / DO 通过门槛:? checks |
| 子 skill 调用无失败降级路径 |
✓ |
841 |
16.4s |
1 |
| PHASE_B_READY 无测试文件存在性验证 |
✓ |
1,280 |
32.4s |
1 |
| QA agent 缺少前置可验收性检查 |
✓ |
1,848 |
18.6s |
1 |
| 文件头声明路径与变量块路径不一致 |
✓ |
1,478 |
14.7s |
1 |
| 用户输出中引用未定义变量 |
✓ |
1,713 |
44.4s |
1 |
| 多文件 Read 首项有路径其余裸文件名 |
✓ |
1,535 |
30.9s |
1 |
| scratch_dir 降级意图与执行分离 |
✓ |
1,054 |
24.5s |
1 |
| SCRATCH_DIR 依赖 pwd 路径漂移 |
✓ |
1,442 |
24.7s |
1 |
| 未定义变量路径链静默跳过功能 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| root_cause | ● | response_contains_any | SKILL_FILE | 未定义 | undefined …+14 | ✗ |
| fix | ○ | response_contains_any | SKILL_FILE= | $HOME/.claude/skills | 赋值 …+7 | ✗ |
⛔ Fatal 失败:not_error, root_cause
⚠ 非 Fatal:fix
测试意图:来自 skill-test-002 gotcha:skill 中变量在路径解析中被引用但从未定义,结合 2>/dev/null 静默吞错,导致依赖该变量的功能链路完全跳过且无任何提示。
维度:BG / DO 通过门槛:2 checks |
| 状态复用警告缺失后果说明 |
✓ |
896 |
9.6s |
0 |
| 链式命令前置失败根因不可见 |
✓ |
920 |
20.9s |
1 |
| 重启后仅等待固定时间未验证连接 |
✓ |
948 |
18.0s |
1 |
| 返回模板仅含成功态缺少失败分支 |
✓ |
688 |
31.6s |
0 |
| 多步骤写入无进度输出 |
✗ fail 分析▾ |
1,860 |
42.8s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| has_problem_field | ● | response_contains | PROBLEM: | ✓ |
| problem_mentions_no_output | ● | response_contains_any | no output | no progress | no feedback …+9 | ✗ |
| fix_field_present | ● | response_contains | FIX: | ✓ |
⛔ Fatal 失败:problem_mentions_no_output
测试意图:来自 universal-013 gotcha:涉及 3 个或以上 Write 操作的 agent 全程无进度输出,用户和协调者无法感知当前步骤,无法区分正在处理和卡死。
维度:BG / DO 通过门槛:4 checks |
| YAML frontmatter 字段位置无效 |
✓ |
2,683 |
37.4s |
1 |
| pipeline 裸相对路径断裂 |
✓ |
1,170 |
24.2s |
1 |
| 跨 Phase 参数来源未定义 |
✓ |
43,092 |
59.1s |
7 |
| 协调者缺少 Agent 工具权限 |
✓ |
34,258 |
34.3s |
1 |
| 重试循环无终止条件 |
✗ fail 分析▾ |
469 |
10.4s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| has_problem_field | ● | response_contains | PROBLEM: | ✓ |
| problem_mentions_no_limit | ● | response_contains_any | no limit | no max | no termination …+4 | ✓ |
| fix_has_limit | ● | response_contains_any | max | limit | N times …+6 | ✗ |
⛔ Fatal 失败:fix_has_limit
测试意图:来自 universal-005 gotcha:skill 定义了错误重试逻辑但无最大次数或超时,存在无限循环风险,耗尽 token budget 无法返回协调者。
维度:BG / DO 通过门槛:4 checks |
| Shell 检查项静默跳过形成假 PASS |
✗ fail 分析▾ |
3,169 |
48.5s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| has_problem_field | ● | response_contains | PROBLEM: | ✓ |
| problem_mentions_no_failed | ● | response_contains_any | FAILED=1 | no FAILED | exit code …+3 | ✗ |
| fix_mentions_manual_or_flag | ○ | response_contains_any | FAILED=1 | MANUAL | flag …+3 | ✗ |
⛔ Fatal 失败:problem_mentions_no_failed
⚠ 非 Fatal:fix_mentions_manual_or_flag
测试意图:来自 universal-006 gotcha (P0):验收脚本中某个检查节只有 echo 输出,不设置 FAILED=1,该项永远不影响 exit code,形成假 PASS 传染后续流程。
维度:BG / DO 通过门槛:3 checks |
| 输出协议无异常终止保障 |
✗ fail 分析▾ |
3,590 |
56.5s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| has_problem_field | ● | response_contains | PROBLEM: | ✓ |
| problem_mentions_exception_path | ● | response_contains_any | exception | interruption | abnormal …+10 | ✗ |
| fix_mentions_always_emit | ● | response_contains_any | always | any path | regardless …+14 | ✓ |
⛔ Fatal 失败:problem_mentions_exception_path
测试意图:来自 universal-007 gotcha (P0):agent 定义了结构化输出协议(末行标记),但协议仅覆盖正常完成路径,工具异常终止时不保证输出协议行,下游解析失效。
维度:BG / DO 通过门槛:4 checks |
| 步骤计数 N 递增规则未定义 |
✓ |
6,799 |
60.5s |
1 |
| 服务状态用黑名单匹配遗漏异常态 |
✓ |
34,655 |
37.2s |
1 |
| 运行时 Bug 推理 |
测试绕过关键认证路径 |
✓ |
1,970 |
37.3s |
1 |
| 双信道竞争加 Schema 字段遗漏 |
✓ |
3,122 |
86.3s |
1 |
| lock 文件触发错误包管理器 |
✗ fail 分析▾ |
1,273 |
29.6s |
1 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✓ |
| q1_root | ● | response_contains_any | monorepo root | workspace root | root …+3 | ✓ |
| q2_not_consulted | ● | response_contains_any | not consulted | not read | not honored …+7 | ✗ |
| q3_fix | ○ | response_contains_any | root .easignore | monorepo root | workspace root .easignore …+2 | ✓ |
⛔ Fatal 失败:q2_not_consulted
测试意图:来自 wiki happy_eas-build-gotchas:EAS build worker 通过 lock file 自动判断包管理器,monorepo 根有 bun.lock 时选 bun,导致 react-native-skia postinstall 未执行,预编译二进制缺失。将 bun.lock 加入子包 .easignore 无效,必须加入根目录 .easignore。测试模型能否识别 EAS 从 monorepo 根构建归档,子包级别 .easignore 不生效的陷阱。
维度:BG / DO 通过门槛:3 checks |
| 平台差异异常被 catch 吞掉 |
✓ |
2,310 |
44.1s |
1 |
| Dev 屏幕留在 bundle graph |
✓ |
35,276 |
35.8s |
1 |
| import 时 native 模块崩溃 |
✗ fail 分析▾ |
0 |
90.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| identifies_module_load_time | ● | response_contains_any | module load | import time | load time …+14 | ✗ |
| explains_try_catch_scope | ● | response_contains_any | try/catch | try-catch | 包裹 import …+6 | ✗ |
| fix_direction | ○ | response_contains_any | remove import | 删除 import | 不导入 …+6 | ✗ |
⛔ Fatal 失败:not_error, identifies_module_load_time, explains_try_catch_scope
⚠ 非 Fatal:fix_direction
测试意图:来自 wiki happy-app_gotchas:expo-updates 在 native production build 中 import 语句本身触发 requireNativeModule 调用,pod 未 link 时模块加载即 throw,app 启动即崩溃。测试模型能否识别 import 时加载 vs 调用函数时加载的区别,以及 try/catch 在不同位置的覆盖范围差异。
维度:BG / DO 通过门槛:3 checks |
| 大文件爆栈被 catch 吞掉 |
✓ |
2,602 |
50.4s |
1 |
| Hermes 宽松掩盖 Web 语法错误 |
✓ |
34,709 |
40.1s |
1 |
| ORM Schema 与迁移脚本解耦 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| identifies_missing_sql_migration | ● | response_contains_any | migration SQL | SQL file | SQL 文件 …+8 | ✗ |
| identifies_two_independent_steps | ● | response_contains_any | two steps | 两步 | 两个问题 …+8 | ✗ |
| fix_direction | ○ | response_contains_any | create migration.sql | 创建 SQL 文件 | YYYYMMDDHHMMSS …+2 | ✗ |
⛔ Fatal 失败:not_error, identifies_missing_sql_migration, identifies_two_independent_steps
⚠ 非 Fatal:fix_direction
测试意图:来自 wiki happy-server_prisma-pglite-gotchas:PGlite standalone 模式只执行 prisma/migrations/ 下的 SQL 文件,不从 schema.prisma 自动派生。修改 schema.prisma 后未创建 SQL migration 文件,服务器 HTTP 500 无日志。加上 Prisma 客户端未 regenerate 两个独立问题叠加。测试模型能否识别 ORM schema 声明与实际数据库迁移解耦的陷阱,以及两步骤各自修复的内容。
维度:BG / DO 通过门槛:3 checks |
| Dev 默认配置遗漏于 Prod profile |
✓ |
34,387 |
22.9s |
1 |
| 反代层配置遗漏上传限制 |
✓ |
1,865 |
34.4s |
1 |
| 代理指标被当成终态验证 |
✓ |
1,199 |
24.1s |
1 |
| 单例内存不因配置变更重初始化 |
✗ fail 分析▾ |
0 |
60.0s |
0 |
Check 分析
| Check ID | Fatal | 方法 | 期望值(截断) | 状态 |
| not_error | ● | finish_reason_not | error | timeout | ✗ |
| identifies_in_memory_connection | ● | response_contains_any | in-memory | 内存 | memory …+9 | ✗ |
| identifies_reinit_insufficient | ● | response_contains_any | still connected | 仍然连接 | old socket …+8 | ✗ |
| fix_direction | ○ | response_contains_any | page reload | window.location.reload | 整页刷新 …+3 | ✗ |
⛔ Fatal 失败:not_error, identifies_in_memory_connection, identifies_reinit_insufficient
⚠ 非 Fatal:fix_direction
测试意图:来自 wiki happy-app_gotchas:syncCreate() 有 isInitialized 保护,localStorage 中 server URL 改变后内存中旧 Socket.IO 连接不会更新。测试模型能否识别 singleton 内存保护与动态配置需求的冲突,以及仅重置 flag 而不关闭连接的不足。
维度:BG / DO 通过门槛:3 checks |
| 启动时序依赖导致静默失败 |
✓ |
1,960 |
42.3s |
1 |