Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audit and rewrite evaluation/numeric claims to ensure they carry minimal protocol context (task + metric + constraint) and avoid underspecified model naming. **Trigger**: evaluation anchor checker, numeric claim hygiene, underspecified numbers, protocol context, 评测锚点检查, 数字断言, 指标上下文.
.claude/skills/willoscar-evaluation-anchor-checker/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 8% | 0% |
Purpose: fix a reviewer-magnet failure mode in agent surveys:
This skill treats numeric claims as contracts:
Preferred (pre-merge, keeps anchoring intact):
sections/*.md filesOptional context (read-only; helps you avoid guessing):
outline/writer_context_packs.jsonl (look for evaluation_anchor_minimal, evaluation_protocol, anchor_facts)outline/evidence_drafts.jsonl / outline/anchor_sheet.jsonlcitations/ref.bibsections/*.md (or output/DRAFT.md if you are post-merge), with safer evaluation anchoringoutput/EVAL_ANCHOR_REPORT.md (always; short report with files checked / changed / weakened sentences)output/eval_anchors_checked.refined.okUse this as the last section-level numeric hygiene sweep before merge:
style-harmonizer, opener-variator, section-logic-polisher, andparagraph-curator
argument-selfloop snapshot and mergeReason:
pipeline-auditor, numeric-context issues are discovered too late in the merged draftAlways read:
references/numeric_hygiene.mdMachine-readable asset:
assets/numeric_hygiene.jsonThe asset defines the keyword families and qualitative fallback templates. Keep the script deterministic and let the policy live in the asset/reference pair.
textYou are a reviewer-minded editor for evaluation claims in a technical survey. Goal: - make every numeric/performance claim interpretable and reviewer-safe Hard constraints: - do not invent numbers - do not add/remove/move citation keys - if protocol context is missing, weaken or remove the numeric claim Minimum context to include when keeping a number: - task / setting (what kind of task) - metric (what is being measured) - constraint (budget/cost/tool access/horizon/seed/logging) when relevant Avoid: - ambiguous model naming that looks hallucinated (e.g., “GPT-5”) unless the cited paper uses it verbatim
outline/writer_context_packs.jsonl to locate the subsection's allowed citations and any extracted evaluation_protocol/anchor_facts.outline/evidence_drafts.jsonl and outline/anchor_sheet.jsonl for task/metric/constraint context before touching numbers.citations/ref.bib (do not introduce new keys).output/EVAL_ANCHOR_REPORT.md so the pipeline has an auditable completion artifact for this sweep.When a sentence contains digits (%, x, or numbers):
If you cannot, downgrade:
Bad (underspecified):
Model X achieves 75% exact performance [@SomeBench].Better (minimal context):
On <task/benchmark>, Model X reaches ~75% <metric>, under <constraint/budget/tool access> [@SomeBench].Better (downgrade when context is missing):
Reported gains vary, but comparisons remain fragile when budgets and retry policies are not reported [@SomeBench].output/EVAL_ANCHOR_REPORT.md exists and reports a non-zero file count.uv run python .codex/skills/evaluation-anchor-checker/scripts/run.py --workspace <workspace>--workspace <dir>: workspace containing sections/*.md or merged draft artifacts--unit-id <id>: optional harness metadata--inputs <semicolon-separated>: optional override from UNITS.csv--outputs <semicolon-separated>: optional output override; default includes output/EVAL_ANCHOR_REPORT.md--checkpoint <C*>: optional harness metadatauv run python .codex/skills/evaluation-anchor-checker/scripts/run.py --workspace <workspace> --inputs 'sections/*.md;outline/writer_context_packs.jsonl;citations/ref.bib' --outputs 'sections/*.md;output/EVAL_ANCHOR_REPORT.md;output/eval_anchors_checked.refined.ok'| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 13,259 | 10,684 | -19% | 1 | 1 | 0% | 2,001 | 3,058 | +53% | 0 | 0 | — |
case-06 | pass→pass | 8,678 | 5,278 | -39% | 1 | 1 | 0% | 1,340 | 2,145 | +60% | 0 | 0 | — |
case-01 | fail→fail | 4,127 | 4,804 | +16% | 1 | 1 | 0% | 267 | 1,528 | +472% | 0 | 0 | — |
case-02 | fail→fail | 4,223 | 4,710 | +12% | 1 | 1 | 0% | 214 | 1,546 | +622% | 0 | 0 | — |
case-03 | fail→fail | 5,286 | 5,524 | +5% | 1 | 1 | 0% | 273 | 1,735 | +536% | 0 | 0 | — |
case-04 | fail→fail | 8,807 | 6,227 | -29% | 1 | 1 | 0% | 1,365 | 2,480 | +82% | 0 | 0 | — |
case-07 | pass→pass | 7,166 | 3,083 | -57% | 1 | 1 | 0% | 1,001 | 1,811 | +81% | 0 | 0 | — |
case-08 | pass→pass | 12,253 | 8,082 | -34% | 1 | 1 | 0% | 1,806 | 2,560 | +42% | 0 | 0 | — |
case-09 | fail→pass | 29,569 | 5,975 | -80% | 1 | 1 | 0% | 2,069 | 2,269 | +10% | 0 | 0 | — |
case-10 | fail→pass | 22,949 | 1,785 | -92% | 1 | 1 | 0% | 1,733 | 1,632 | -6% | 0 | 0 | — |
case-11 | pass→pass | 12,590 | 8,252 | -34% | 1 | 1 | 0% | 1,891 | 2,565 | +36% | 0 | 0 | — |
case-12 | fail→pass | 11,017 | 6,121 | -44% | 1 | 1 | 0% | 1,652 | 2,197 | +33% | 0 | 0 | — |
case-13 | fail→pass | 11,027 | 3,189 | -71% | 1 | 1 | 0% | 1,751 | 1,896 | +8% | 0 | 0 | — |
case-14 | fail→pass | 10,612 | 2,459 | -77% | 1 | 1 | 0% | 1,763 | 1,794 | +2% | 0 | 0 | — |
case-19 | fail→pass | 25,744 | 1,617 | -94% | 1 | 1 | 0% | 1,968 | 1,541 | -22% | 0 | 0 | — |
case-15 | fail→pass | 7,975 | 1,959 | -75% | 1 | 1 | 0% | 1,229 | 1,634 | +33% | 0 | 0 | — |
case-16 | fail→pass | 15,263 | 9,057 | -41% | 1 | 1 | 0% | 2,209 | 2,717 | +23% | 0 | 0 | — |
case-17 | fail→pass | 11,541 | 3,238 | -72% | 1 | 1 | 0% | 1,745 | 1,843 | +6% | 0 | 0 | — |
case-18 | fail→pass | 10,001 | 2,089 | -79% | 1 | 1 | 0% | 1,515 | 1,647 | +9% | 0 | 0 | — |
case-20 | pass→fail | 13,103 | 7,086 | -46% | 1 | 1 | 0% | 2,206 | 1,653 | -25% | 0 | 0 | — |
case-21 | fail→fail | 3,271 | 14,421 | +341% | 1 | 1 | 0% | 463 | 3,145 | +579% | 0 | 0 | — |
case-22 | fail→fail | 4,982 | 5,035 | +1% | 1 | 1 | 0% | 268 | 1,518 | +466% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 16 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.