The gate's last unmeasured claim becomes a measured rate.
Until now the four reviewers were asserted to catch bugs; nothing published said how often. make calibrate runs them headless over a 16-seed corpus — Claude Code OAuth only, no API-key path — and scores every verdict against ground truth. First published run: recall 1.00, precision 0.75, 0.67 false positives per clean run across 13 bug seeds and 3 clean fixtures, zero infrastructure errors. Infrastructure failures never pose as reviewer performance — timeout and error seeds are excluded from the denominators, and a majority parse failure marks the whole run degraded. RECEIPTS.md gains a review gate calibration section, reading unmeasured when no run exists.
calibrate.
- feat
make calibrateruns the four live reviewer agents headless over the 16-seed corpus and scores against ground truth — per-seed verdicts, agent-prompt SHAs, run counts. Claude Code OAuth only; the absence of an API-key path is test-enforced. - feat
RECEIPTS.mdcarries a review gate calibration section — recall, precision, FP rate, n, model — orunmeasuredwhen no run exists. Timeout and error seeds excluded from denominators; majority parse failure marks the run degraded. - fixSeed patch path resolved before the temp-repo cwd switch — the first live run errored all 16 seeds.
seeds.
- fixFour corpus patches had overdeclared
@@line counts — corrupt since v0.11 — and tenexpected.jsonline_approxvalues pointed at comment or header regions instead of the planted bug. Both classes now guarded by corpus tests that apply every seed and validate every ground-truth location.