Skip to content

docs(grading): compare Sonnet 5.5 and Haiku 5.5 with Opus 5.5 as first grader - #133

Merged
kamui merged 3 commits into
mainfrom
t3code/issue-30-grader-model-test
Oct 12, 2026
Merged

kamui merged 3 commits into
mainfrom
t3code/issue-30-grader-model-test

Conversation

@kamui

@kamui kamui commented Oct 12, 2026

Copy link
Copy Markdown
Owner

Why

Before authorizing the regrade of 198 batches, the owner asked how much the grader's model matters: "Let's do a small batch test with Opus, Sonnet, and Haiku. All 5.5 high", on the trial's twelve batches, reusing the saved Opus 5.5 and Sol answers. This records that test. The owner then chose Opus 5.5 for the regrade.

Scope

  • docs/research/grader-model-test-2026-10-12/: the method, the scripts (pinned_prepare.py, run.py, compare.py, usage.py), the proof that each batch's inputs equal what the saved Opus session pinned (inputs.json), the 24 saved results and one failed attempt, comparison.json, usage.v1.json and the plan-meter readings.
  • bench/rates.current.json: the Claude Haiku 5.5 rate (the short-prompt row; the page lists a second row above 100,000 prompt tokens).
  • bench/tools/rates.py: the parser skips a model's over-N-tokens row, which had made the model "ambiguous"; one test.

Result on 493 claims and 430 review and known-problem pairs:

Opus (saved) Sonnet Haiku
Same label as Sol 460 445 437
Same credit as Sol 427 423 416
Matches the owner's 20 rulings on single comments 19 16 17
Claims left unresolved 7 5 35
Sessions ending with invalid verdicts 0 of 12 0 of 12 1 of 13
Cost at list price $25.82 $11.29 $5.67

Tradeoffs

  • Sonnet and Haiku labelled the claim list Opus had labelled, from the repository state of the trial's final-text rerun, so the saved answers are a valid comparison. It does not show how either model splits comments itself or behaves under rule text version 8.
  • The record lays out the differences and names no grader. The choice is the owner's.
  • bench/rates.json is not changed: the rates tool treats it as immutable, and no Haiku grading is planned.

Blast Radius

A research record, one rate entry in the current-rates file and a parser rule for a pricing-page row. No live grading record changed; grades.json still holds no batch. No pinned grading file changed.

Verification

  • For all 12 batches and each of the 24 sessions, the prepared key equals the saved Opus session's in every pinned field (run).
  • compare.py reproduces the trial's published Opus-against-Sol figures and stops if it does not (run).
  • Probes: the pinned client accepted both models at high effort, and the transcripts name them (run).
  • test_rates.py, rates.py check --model claude-haiku-5-5, bun run verify:import, bun run verify:current: pass.
  • Spend: $17.73 at list price on Claude, of a $40 cap. No Codex spend.
  • Not reviewed by a second model; the code change is the five-line parser rule and its test.

Part of #30

kamui added 3 commits October 12, 2026 05:30
Anthropic prices Claude Haiku 5.5 by prompt length and lists it in two rows, which rates.py refused as ambiguous. The catalog holds short-context prices, so the parser now skips a row for prompts over a token count and reads the other. The new entry is the row for prompts up to 100,000 tokens, read on 2026-10-12; its source text gives the higher prices.

Metering still prices a session from one entry, so a Haiku total is a lower bound when a request's prompt passes 100,000 tokens. bench/rates.json, which grade.py reads for a Claude grader, is unchanged.
… on the trial's twelve batches

The owner asked how much the grader's model matters. Claude Sonnet 5.5 and Claude Haiku 5.5, at high effort, labelled the 493 claims that Opus 5.5 and Codex GPT-6.1 Sol labelled in the trial's rerun on the final text. Each session was prepared from the checkout and scratch records of that rerun, and dispatched only after its key and prompt hash equalled the saved session's.

The record gives label, first-fact and credit agreement beside the saved Opus against Sol figures, every credit difference, ten differences read against the rule text, contract health, and cost and time at list price. It recommends no grader. Nothing was mapped and no live record changed.

Part of #30
…r-model-test

* origin/main:
  feat(grading): take the review-code reviews into the published selection and drop three setups (#132)
@kamui
kamui merged commit 00047f7 into main Oct 12, 2026
4 checks passed
@kamui
kamui deleted the t3code/issue-30-grader-model-test branch October 12, 2026 17:44
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