# Judging & Verification Protocol Every record on the leaderboard was independently re-run and reviewed by a maintainer before merge. This file is the complete protocol, so the process is auditable and so anyone can check that a record earned its place. Nothing on the leaderboard is self-reported. ## The pipeline Every record-attempt PR goes through, in order: 1. **Static validation (automated, CI).** `harness/validate_submission.py` — required files present, config schema valid, base model matches `spec.yaml`, `train.py` parses, no weight files smuggled into the PR. 2. **AI security screen (automated, advisory).** A Claude agent reviews the diff for exfiltration attempts, network use, harness/timer tampering, test-set contact, and rule violations, and posts its findings as a public PR comment. It gates nothing — it exists to make step 3 sharper and its findings part of the public record. 3. **Code review (human).** The verifier reads `train.py` and `config.yaml` in full before running anything: data sources (train split only?), any path that could touch the test split, any base-weight mutation, timer-adjacent tricks, dependency list sanity. 4. **Timed reruns (sandboxed).** The verifier comments `/verify`, which runs `harness/modal_verify.py --runs 3` with **fresh seeds chosen at verification time** (recorded in the report), inside a network-blocked Modal Sandbox on the spec L40S with the pinned environment (`env.lock`) and pinned artifacts (`harness/pins.json`). Downloads are pre-cached; the harness owns the timer. Evaluation happens in a separate fresh sandbox that first re-verifies model and dataset content hashes — see SECURITY.md for the full isolation model. 5. **Adapter audit.** The harness counts every parameter in the saved adapter safetensors (cap: 30M) — `modules_to_save` full-layer copies count. Adapter must load in pinned `peft` against the frozen base. 6. **Verdict.** All 3 runs clear target → record if mean time beats the current record; otherwise notable-attempt or reject per the rubric in CONTRIBUTING.md. 7. **Public report.** The verification report is posted as a PR comment (automatically by the `/verify` workflow) and committed to `records/verifications/NNN-handle.md` with the verifier's written reasoning. The merge commit links both. ## Threat model → countermeasure | Attack | Countermeasure | |---|---| | Seed shopping (works on one lucky seed) | Verifier picks 3 fresh seeds at rerun time; all must pass | | Training on the test split | Harness hands `train.py` a directory containing *only* the train split; code review; leakage heuristics (suspiciously high accuracy vs. training time gets extra scrutiny, incl. n-gram overlap spot checks) | | "Adapter" that is actually a full fine-tune | Every tensor in the adapter file counts against the 30M cap | | Malicious submission code (exfiltration, mining, persistence) | Runs only in a network-blocked Modal sandbox with zero secrets — see SECURITY.md | | Poisoning the shared cache (base model, datasets) during training | Eval runs in a separate fresh sandbox that re-hashes model + train/test data against `harness/pins.json` first | | Stealing CI tokens via a booby-trapped PR | Workflows never execute PR code; `/verify` grafts only `submissions/` onto trusted main and refuses PRs touching anything else | | Timer games (deferring work to eval, background pre-warm) | Harness owns the clock around the whole training process; fresh eval sandbox; eval protocol is fixed and identical for everyone; code review | | Env games (secret faster wheels) | Verification always uses `env.lock`; extra deps must be declared, pinned, and open-source | | Prompt-injecting the AI screener | The screener is advisory-only and instructed to flag injection attempts; nothing executes without a human `/verify`, and execution is sandboxed regardless | | Self-reported numbers that don't hold up | Only verified numbers ever reach the leaderboard | ## Verifier integrity - The **maintainer's own submissions** (including the baseline) go through the identical pipeline, and their verification reports are marked `self-verified`. As soon as the project has a second verifier, maintainer submissions must be verified by someone else. Want to be a verifier? You need reliable access to a spec 4090 and a track record of submissions; open an issue. - Verification reports include the hardware fingerprint, harness git commit, env.lock hash, and all seeds — and because official hardware is a Modal L40S covered by Modal's free monthly credits, **anyone can independently re-verify any record for free** with `python harness/modal_verify.py --submission --runs 3 --seeds `. Disputes: open an issue titled `[dispute] record #N`; the record gets re-run publicly. ## Report format Reports follow [`records/verifications/TEMPLATE.md`](./records/verifications/TEMPLATE.md): per-run table (seed, wall-clock, accuracy, pass), adapter audit, code-review notes, and the verdict with reasoning. Write the reasoning so a stranger can follow why the call was made — the reports double as the project's technical changelog.