Repository navigation
evidence: Claude Code calibration run 3 (history-less checkouts, defined classification, preregistered adjudication) - #101
Conversation
…ts, a defined classification, a preregistered adjudication step; U1 wire-module ground truth)
what changed: docs/evidence/2026-10-18/claude-code-calibration-3/{protocol.json,README.md,grade.sh,historyless-checkout.sh}.
why: run 2's limits (answers in history, grader classification undefined, adjudication post hoc) are each a protocol change; frozen before the launch with the sources' hashes.
what you verified: json load of protocol.json by the writer; the two scripts byte-identical to the host copies (cmp); the regression gate in the pre-commit hook (verified by the commit landing).
what you got wrong: nothing to report.
…preregistered README what changed: the README's status line names the run id and launch time; protocol.json is unchanged. why: the protocol says the run id is recorded once the host assigns it. what you verified: the regression gate in the pre-commit hook (verified by the commit landing). what you got wrong: nothing to report.
… amendments A-1, G-2, N-1 What changed: docs/evidence/2026-10-18/claude-code-calibration-3/ gains observations.json (void cells kept), scores.json, results-table.md and clusters.md; protocol.json status, the supplementary run id, three amendments and the usage-window readings; README results section. Why: the run and its supplementary run completed; the preregistered protocol says results and amendments are recorded beside it. Validation: pin and fix graded by grade.sh on every cell (11/12, 12/12); reviews by the opus-high grader and the preregistered clustering plus three-lens adjudication (15/15 under the preregistered rules); the amendments cite the agent transcript line that carries the harness relay and the lens records. Remaining limits: the two void cells were re-run with one added sentence in the preamble (recorded verbatim in A-1); G-2 means two cluster verdicts rest on two prongs of three; no clean usage reading exists for this run. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
…-2; void cells and adjudication as sibling files What changed: observations.json is the flat profile map; void-cells.json and adjudication.json added; results-table.md footnote, README file list and the A-1 amendment's file reference follow. Why: the host adapter's rate command reads every calibration observations file as an object of observations and refuses any other shape; the host copy of this run had to be reshaped, and the evidence folder mirrors it. Validation: the host copy passes rate (exit 0, CALIBRATION lines for every profile) and its suite (93 pass) with this shape; pre-commit regression gate on this commit. What you got wrong: the first results commit wrapped the map; corrected here, nothing read it in between. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
Independent review — 2026-10-18 — Request ChangesReviewed revision: Provenance: posted through the owner's connected GitHub account at the owner's request; the review was produced by a separate agent session that authored none of this PR. GitHub therefore shows the owner as the comment author; this is a review comment, not an approval. Blocking
Non-blocking: the “six agents mentioned the relayed message” claim is not supported by the committed observations (only Checks: Verdict: Request Changes. No approval, no acknowledgement, no implementation unit at this revision. After revision, request a delta review at the new full revision; this record does not carry forward. Full review record: |
…achine-readable, qualification consequences, the pin category mapping (A-2) What changed: scores.json gains totals.tokens (run-by-run buckets, scored cells, judging share), adjudication_schema (the two prongs the lens schema carried, the three of the classification), would_fail_under_three_prong on every review entry (true for haiku-medium and haiku-high), category_mapping (pin -> pin-tests); adjudication.json gains the prong lists and a three_prong_reading per cluster; void-cells.json gains the relayed message, its harness header and the six agents whose output mentions it; protocol.json gains amendment A-2 (the pin case represents pin-tests per host rule 4) and the review's non-blocking notes; README gains the reconciliation table, the main/void/supplementary split, the qualification consequences (applied by the host's revision 4, not here), the 13/15 three-prong count, and a per-model review-only cost comparison. Why: the independent review of a197b6e (Request Changes, four blocking findings and seven notes). Validation: the buckets re-derived from the two run files' per-agent tokens (main 5,274,667 + 1,597,164 + 81,285 + 1,578,450 = 8,531,566; supplementary 272,858 + 107,524 + 75,994 = 456,376); pre-commit regression gate on this commit. What you got wrong: the first README summed scored cells and judging across runs without the void cells and called it the run; the table now reconciles to both totals. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
|
Revision pushed as fb4e30f (on a197b6e). Disposition per blocking finding:
Non-blocking: the six-agent claim is now backed inside the PR ( Requesting the delta review at fb4e30f. Generated by Claude Code |
…cking review findings and the notes
What changed: docs/proposals/calibration-first-onboarding.md. (1) Item 1.1 defines a typed production reference ('outcome: <task-id> <category> accepted <date> (<store path>)') the validator checks for form from the policy and against the outcome store when given --trace; free-text production evidence no longer supports a qualification on its own. (2) Item 4.3: the CI check requires the protocol's classification prongs and the adjudication record's lens-schema prongs to be equal, derives scores under the declared prongs, excludes a PASS that holds only because a prong is missing, uses the host's pin category mapping, and checks the judging profile and the relayed-chat statement; 'derivable' is named as necessary, not sufficient. (3) Item 4.4: the table carries the adjudication schema version, prongs and a caveat column; a fewer-prong PASS is shown as 'PASS (2-prong, would fail)' and excluded from the pass count; the table states what it does not support. (4) the uncalibrated-model cross-reference removed; this host has no such case and the cited unit is a mis-tiered calibrated profile. (5) the judging figures separated by run with reconciled numbers (run 2: 7,872,276 over 54 agents, post-hoc adjudication not included; run 3: 38-39%). Notes: an isolation rule for the shared pack and its size limit; the copied-per-run list corrected; Item 1.4 aligned with the tiers proposal's 2.2 (one adopting revision); the bootstrap grader's limitation line; the operator's push named as consent, not acceptance; the check name marked provisional.
Why: the independent review of c53cd77 (Request Changes).
What you verified: the run figures from #101's reconciled totals; the regression gate in the pre-commit hook (verified, this commit).
What you got wrong: the first revision cited a mis-tiered dispatch as an uncalibrated-model case and gave a run-3-only judging share for both runs; corrected here.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
…e-launch record) What changed: protocol.json run_id wf_4e9ef48d-066 and a run_id_note saying the README carried the id from 5533e47 (05:23Z, before the 05:24Z launch) while the field stayed null at the freeze. Why: the independent review's non-blocking note on a197b6e. Validation: pre-commit regression gate on this commit. What you got wrong: the freeze left run_id null and recorded the id in the README only; filled now with the note. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
|
Follow-up on the edited note: Generated by Claude Code |
…a JSON boolean What changed: every review-grade.others[].adjudicated value is a boolean (18 occurrences were the strings "true"/"false" beside the boolean clusterReal). Why: the edited independent review of a197b6e, finding 2's addendum: the field was not typed. Validation: the file re-parsed after the conversion; the builder script corrected for later runs; pre-commit regression gate on this commit. What you got wrong: the builder wrote the verdict as a string; corrected in the file and the script. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
|
Follow-up on finding 2's addendum: every Generated by Claude Code |
Delta-review follow-up — 2026-10-18 — public recordThis continues the independent review posted on 2026-10-18 (comment on this issue, id Reviewed revision: Current public head under review: Blocking-finding disposition at the current head (verified from the commit tree, not from the review workspace):
Verification note on the G-2 boolean fix: on Non-blocking: the six-agent claim is now backed inside the PR ( Checks: Next delta review: at Where the full record lives: |
Problem and resulting behavior
Run 2 left two method gaps (its README "Results"): candidates could in principle reach the accepted answer in the subject's history, and the grader's classification of an "other" finding did not say whether reachability is part of a finding holding (G-1). Run 3 closes both and adds the preregistered cross-candidate step: history-less checkouts (one root commit), a three-prong classification (holds at HEAD, reachable through the public API with admissible input, forbidden by the spec), and one clustering agent plus three independent lenses per cluster whose majority is the scored false-blocking count.
This PR adds
docs/evidence/2026-10-18/claude-code-calibration-3/: the preregistered protocol (frozen 05:21Z, source hashes, run id recorded before the launch), the results (observations.jsonas the flat profile map the host adapter'sratereads,void-cells.json,adjudication.json,scores.json,results-table.md,clusters.md), the protocol's status, supplementary run id, amendments A-1, G-2, N-1 and A-2, the usage-window readings, and the README results section with a run-by-run token reconciliation and the qualification consequences under the host's rules.Results under the preregistered rules: pin 11/12 (fable-medium over-specified its pin), fix 12/12, review 15/15; under the full three-prong classification 13/15 (two haiku review cells are flagged
would_fail_under_three_prong). Every review found both ground-truth defects with their causes; five clusters of other findings, all adjudicated real by the preregistered majority rule, two of them real on two prongs only (G-2, machine-readable inscores.jsonandadjudication.json).Related issue
Related to #98 (calibration method and runs 1-2), #100 (difficulty tiers) and #102 (calibration-first onboarding). No issue number.
Validation
grade.shon every cell against the accepted fix 348aa2d and the base e68583c (red at base, green with the fix; candidate green, guard red, accepted pin green, scope, lint).clusters.mdlists every lens verdict.rate(exit 0, CALIBRATION lines for every profile across the three runs) and its suite (93 pass).wf_dbe29a64-3b2); both PASS; the main-run void cells remain invoid-cells.json.Remaining limits or risks
void-cells.jsonrecords them.protocol.jsonreview_notes_2026_10_18).limits). The host copy of the evidence is not in this PR; it reacheshosts/claude-code/at the next adapter refresh.🤖 Generated with Claude Code
https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh