The check
The judge doesn't think.
No model sits in the verdict. The check re-runs your own gate from the agent's source edits alone, with the test, grader, config, and golden files reverted. If the win does not survive that re-run, it was never a win. Nothing to persuade, nothing to renegotiate, and it costs nothing to run.
/ Deterministic
Zero LLM in the verdict. The same inputs give the same ruling every time. No appeals, no renegotiating the terms.
/ Catches the fake green
The win that passed only because a test got weakened, a grader got mocked, or a config got loosened, not because the code got fixed.
/ Clean on and off
Zero config to try. It never touches your working tree; all measurement happens in throwaway git worktrees.
Red-teamed across 9 language ecosystems (Python, JS, C, Java, Ruby, Rust, make, lint, and a custom eval). It catches every out-of-source goalpost move in a recognized test, grader, golden, or declared config file, plus smuggled suppressions: edited tests, mocked graders, swapped golden files, loosened lint and security rules.
It is honestly blind to a cheat that lives inside the source itself, a value hardcoded to the one visible case, or logic keyed to the test environment. That limit is written in the docs, not hidden. The judge rules on what it can prove.
Every verdict is signed.
Each ruling carries a receipt, so a skeptic can re-run the same base, head, and config and get the same verdict. The record is reproducible, not a word you have to take.
verdict: pass
provenance: {
tool: "promptwheel", baseSha: "a1b2c3…", headSha: "d4e5f6…",
configHash: "9f2c…", # the gate definition, fingerprinted
verdictHash: "7b31…" # re-run and you get this same hash
} And it guards the guards: edit a gate file you declared, and the win is caught by declaration, deterministically.