Your agent says "done." Ratchet doesn't care. Every patch has to survive a seven-stage verifier gauntlet — hidden tests, cheat detection, signed receipts — before it counts.
$ brew install ayaangazali/ratchet/ratchet-agent
macOS one-liner — then just type ratchet. Or:
$ git clone https://github.com/ayaangazali/ratchet && make demo
Left alone with a test command, a coding agent eventually stops fixing the bug and starts gaming the grader. Three real moves, all from Ratchet's red-team battery:
Drops a skip marker on the suite it can't pass — score goes green, bug stays.
caught by: skip_markerReturns exactly what the visible test expects instead of solving anything.
caught by: special_casingPrints a passing log and spoofs the exit code — the tests never actually ran.
caught by: log_spoofedRatchet has no done tool at all. Every patch runs the gauntlet; the same three moves above get caught before a line of them executes:
That third one matters: the patch trips no static rule and gets caught anyway. Runs on your laptop in sixty seconds — no model, no key, no network.
A task file names the goal and the test command. ratchet run does the rest.
Every step is a git commit + sandbox snapshot — a tree search over repo states. Dead branches pruned, promising ones fork in parallel.
The winning path stops at a human gate. Nothing pushes, nothing opens a PR, until you say so.
Skip markers, hardcoded answers, spoofed exit codes, conftest hooks — a published red-team battery scores the verifier itself, in CI, at zero false positives.
Held-out test names never reach a prompt — not the context, not the observations, not a single bus event. There are tests asserting exactly that.
Every graded step is signed into a hash chain. Edit one result and
make audit says CHAIN BROKEN, naming the receipt that fails.
Protected paths revert before grading, every run, no skip flag. Pruned work is parked, never lost. A ratchet turns one way.
make test, make redteam, and
make proof run with no Docker and no network. Live sandboxes come from the
TrueForge harness; the documented fallback is plain git worktrees.make proof. It exercises every claim on this page
offline and keeps the evidence — the dashboard renders the
latest run, and the site's stats are generated from it, never typed in.