Judge Independence: Options and Measured Evidence¶
Historical record — status checked 2026-09-06. The concluded judge-calibration and
training apparatus had been removed in #1019
(commit dated 2026-09-05). References to its commands, labels and reports describe that
historical experiment, not runnable files in the current checkout. Recover the original
apparatus from git history.
Recorded findings and the decision to keep the production default unchanged still apply.
Status: historical experiment log (begun 2026-08-02). Protocol:
EVR-2 human-validation protocol (Amendment 1:
AI-annotator gold). All rows measured on the SAME 96 real agent trajectories
(run 12 pack, qwen3-coder-tools:30b agent) against verifier gold (validated
κ=1.0 vs independent annotation) — reproducible via
--replay-pack + --human-labels on the committed labels
(benchmarks/judge_calibration/labels/run12/).
The option ladder¶
| Tier | Independence from the agent | α (real pack) | Verdict |
|---|---|---|---|
enhanced (in-loop self-assessment) |
none — reads the live trace | −0.837 | anti-correlated; run 12 |
| Fresh-context same model (self-judge, current rubric wiring) | context only | 0.469 (qa −0.03, refactor 0.10) | FAILS — run 14 |
| Cross-model gemma4:31b | context + weights | 0.694 (refactor 0.30) | FAILS at n=96 — run 12; demoted |
| Cross-model llama3.3:70b | context + weights | 0.878 (refactor 1.00) | PASSES — run 13; the pinned judge |
| Linear classifier on verifier gold (E2 arm A) | weights + grounded training | −0.266 (dev-scripted 0.930) | FAILS — lexical features don't transfer |
| ModernBERT encoder (E2 arm B) | weights + grounded + semantic | pending | training |
| ~1.5B QLoRA (E3) | as above + generative capacity | not started | pre-registered escalation only |
What the ladder establishes¶
- Context isolation is necessary but insufficient: fresh context recovers
1.3 α over in-loop self-assessment, yet weight-level correlation still costs
~0.41 α vs an independent judge on identical trajectories. Session-model
self-judging cannot enter the calibrated set. - Weight independence is what graduates on the calibration corpus:
llama3.3:70b passes every corpus gate (scripted 1.000 at n=96, real 0.878,
refactor 1.000) against both verifier and annotator gold. But this did NOT
transfer — see point 4. - Grounded training beats nothing yet: the lexical baseline collapses on
real trajectories (−0.266 despite 0.930 scripted-dev) — the semantic
encoder arm was the open question, now answered in point 4. - The calibration corpus was not the shipping distribution (2026-08-05,
DECISIVE): on in-container-verified SWE-bench-lite (real GitHub issues,
17% solve) the corpus gate-passers over-credit (gemma4:31b α=−0.52,
llama3.3:70b α=0.26) and a ModernBERT classifier trained on those real
trajectories under-credits (α=−0.05, majority-class collapse). All three
fail; only the in-container verifier discriminates. Do not graduate an
LLM/classifier completion judge as a default — keepcompletion_strategy= "enhanced"+ the verifier oracle. Revisit only with a higher-solve-rate
agent (positives are scarce, not the judge's capacity).
Committed reports: benchmarks/judge_calibration/labels/run12/reports-*/;
SWE-bench re-gate: labels/swe-bench-lite-30/ and labels/swe-bench-lite-60/.
FINDINGS rows: runs 12–14 + the two SWE-bench re-gate sections in
FINDINGS.