Round-1 shadow eval
QLoRA adapter vs a frozen deterministic baseline
Historical falsification. Not the current status of the program.
Architecture. rank-16 QLoRA adapter, generative decoder
Dataset. chronological holdout, 98 test rows, no dedup
Why this stage ran
The headline delta looked promotion-grade: the eval runner exited 0, every receipt field was populated, the pipeline wrote the public site, and the Pages deploy succeeded.
Why it did not advance
Two independent audit lanes (Grok 4.5, 337 lines; Kimi K3, 257 lines) recomputed every claim from the raw artifacts with read-only tools and converged on identical findings without seeing each other. The delta was a trivial-rule match sitting on top of leakage and majority-class collapse.
Measurements
| Metric | Value | Note |
|---|---|---|
| Adapter accuracy | 53.06% | n=98 |
| Baseline accuracy | 47.96% | hardcoded literal, not recomputed |
| Adapter macro-F1 | 0.326 | bit-identical to the 5-line rule |
| Rule macro-F1 | 0.326 | task_class → lane lookup |
| Macro-F1 delta | 0.0007 | rule parity |
| Bootstrap CI95 (accuracy delta) | [−8.2, +18.4] pp | spans zero |
| McNemar exact two-sided | p ≈ 0.55 | b=20, c=25 (p=0.5515) |
| Honest delta on deduped rows | ≈ +2.6 pp | 76 clean rows after removing collisions |
| Train/test byte collisions | 46 / 98 | 22 of them verbatim training strings |
Gate results
| Gate | Bar | Measured | Result |
|---|---|---|---|
| Trivial-rule parity | adapter macro-F1 > rule macro-F1 by a margin surviving the bootstrap CI | adapter 0.326 / rule 0.326 — bit-identical | FAIL |
| Leakage-free holdout | zero prompt bodies collide with train | 46/98 byte-collide; 22/98 verbatim train strings | FAIL |
| Macro-F1 over accuracy | macro-F1 delta with CI excluding 0 | delta 0.0007; accuracy CI spans zero | FAIL |
| Bootstrap CI significance | CI95 on per-example accuracy delta excludes 0 | [−8.2, +18.4] pp | FAIL |
| McNemar exact two-sided | p < 0.05 on discordant pairs | b=20, c=25 → p ≈ 0.55 | FAIL |
| No majority-class collapse | per-class recall ≥ ε for every class | minimax predicted 72/98; claude recall 0.04; zai never predicted | FAIL |
| No hardcoded numbers | baseline recomputed from real inference | 47.96% literal in the eval runner source | FAIL |
The source reference records the verdict as 5/7 gates failed → falsified, while its per-check table marks all seven checks failing. Both statements are reproduced here rather than reconciled, because reconciling them would mean inventing a number.
Receipt-level defects the audit surfaced
- valid_json accepted any parseable dict — no schema check on the required keys.
- Raw generations were never stored; only the parsed object was persisted.
- The keyword-baseline fit() was a no-op, so the embedding baseline never ran.
- The 972-row experiment was not covered by the preregistration.
- The chronological split was mechanically correct but semantically broken by drift: after dedup and latest-wins, test flipped to 7% minimax from 72% in train.
Public-record correction
When promotion gates fail, the response is not a rerun with tweaked hyperparameters and not shipping with caveats — it is correcting the public record first.
| Field | Value |
|---|---|
| branch | fix/router-school-audit-verdict |
| head | 1083652a6e38e1f06c9515f81f8389abd161528b |
| merge commit | e5b2dc4144aa49ebf5adc976f9b06dd6450aca08 |
| pipelines | 15881 (MR) and 15882 (main post-merge) — all jobs success with allow_failure=false |
| live read-back | version 0.2.1 · station status failed · campaign 3 completed / 1 failed |
Artifacts
| Artifact | Path | Visibility | SHA-256 | Note |
|---|---|---|---|---|
| Public site record | data/projects/router-school.json | public | not published in this record | no private prompt text |
| Row-level eval output | tooling/artifacts/router-school-eval.json | private | withheld — private artifact | mode 0600 — body withheld |
| Independent audit transcripts | Grok 4.5 (337 lines) · Kimi K3 (257 lines) | private | withheld — private artifact | dispatch-local, bodies withheld |