Skip to content

bench: e2e skill eval v2 on papers the model does not know - #40

Merged
moonweave merged 3 commits into
mainfrom
bench/skill-e2e-v2
Oct 9, 2026
Merged

moonweave merged 3 commits into
mainfrom
bench/skill-e2e-v2

Conversation

@moonweave

Copy link
Copy Markdown
Collaborator

Benchmarks only. No engine, SKILL.md, or test changes. Measured on main e045a86.

Why

v1 (#37) used famous papers: 80/80 with the skill, 77/80 without. The open question was whether ref-verify makes a difference when the model can't rely on remembering the papers.

What

  • benchmarks/e2e/v2/: 8 new manuscripts (93 references, 30 claims, 52 planted errors per pass), with the same error types as v1.
    • 77 of the 79 real DOIs are from 2025–2026. CrossRef citation count: median 0, max 19.
    • Korean journals: Polymer Korea, J. Korean Ceram. Soc., J. Korean Phys. Soc., J. Exerc. Rehabil., plus two Korean theses.
    • Five of the manuscripts are on polymer or actuator materials.
    • truth.json records each paper's year and citation count.
  • verify_truth.py --truth v2/truth.json passes live: 0 problems on 123 items. A truth copy with 8 planted label mistakes got all 8 reported.
  • Harness changes:
    • --truth on all four scripts.
    • Condition C: Read/Glob/Grep only, so no web and no shell.
    • --model to pin the child model.
    • engine_only.py pairs results by DOI.
    • The v1 score and the v1 engine-only output reproduce exactly.

Results (claude-opus-5-5, pinned)

A: skill B: no skill C: no skill, no web/shell
All planted errors 104/104 104/104 32/52 (17 only "may be / check this")
False alarms, correct refs 0/114 1/114 5/57
Engine invoked 16/16 0/16 0/8
Median time 75 s 69 s 30 s
  • With live lookups, the skill made no recall difference on these unknown papers. B called the CrossRef API with curl in 15/16 runs.
  • With no lookups, the model got 0/5 retractions and 1/7 wrong numbers, and it made 5 false statements about correct references.
  • Full table, quotes, engine-only results, and limits: benchmarks/e2e/v2/README.md.

Notes

  • C has no shell. The request was "no skill, no WebSearch/WebFetch". With Bash allowed, C would just call CrossRef with curl the way B did.
  • The model is pinned. The subscription default for these isolated sessions changed from Opus 5.5 (v1) to Sonnet 5.5. Every v2 run uses --model claude-opus-5-5, so v2 differs from v1 only in the papers.

🤖 Generated with Claude Code

moonweave and others added 3 commits October 9, 2026 15:53
v1's set was built from famous papers, so it could not tell whether the
skill helps when the model cannot remember the sources. Running a second
set needs the scripts to take a truth file other than v1's, and a third
condition with no web tools and no shell measures what the model knows on
its own. The subscription default for isolated sessions moved from Opus to
Sonnet after v1, so the child model can now be pinned to keep runs
comparable.

engine_only pairs results by cited DOI first because v2 does not list
truth items in reference order. verify_truth checks the extra detail v2
records (first author, volume/page, swap target, abstract numbers) so a
mislabelled item cannot pass. v1 scores, engine pairing, and live
verification are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The owner's question after v1 was whether ref-verify still makes a
difference when memory cannot help. v2 keeps v1's error types, prompts
and isolation, but cites only obscure 2025-2026 papers (median 0
citations), Korean society journals and theses, and adds a condition
without web or shell.

With live lookups the skill and no-skill agents both caught 104/104
planted errors; the agent without the skill called CrossRef itself. With
no lookups the model caught 32/52, 17 of them only as "check this", and
made five false statements about correct references. The difference
comes from live lookup, not from the skill. Measured on main e045a86
with claude-opus-5-5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@moonweave
moonweave merged commit 3083597 into main Oct 9, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant