Before your AI's work is accepted, it says what will be true.
The tests decide, not the AI.
The result goes on a record nobody can edit — including us.
Run it on your own repository
npx gro-nass go
double-click to select · nothing on this page runs any script
It installs the hooks, makes a key, probes the desk it is on, and reports what it could not do rather than refusing outright. Nothing leaves the machine until you have read what would.
Three numbers, with their denominators
- of
- of 43,773 replayed commits across 2,388 public repositories · substantive only: excludes prereg_parser and no_stamps, which refused 68,748 more
- interval
- exact — a count of refusals, not a sample
- as of
- 2026-09-21 (EDT)
- query
- q-bench
- of
- scanner hits of the silent-catch rule, across 43,773 replayed commits in 2,388 public repositories — hits, not defects
- interval
- precision UNMEASURED — no hit has been hand-checked, so how many are real is unknown
- as of
- 2026-09-21 (EDT)
- query
- q-scanner-hits
- of
- 0 billed calls in the 47 days since 2026-08-05 (EDT); 14,239 rows before it
- interval
- exact — a sum over every row in the table, not a sample
- as of
- 2026-08-05 (EDT)
- query
- q-model-bill
2,388 public repositories, visited once each across 2 boxes, with 157 declined for a stated reason.
bench : BORING — the last 150 completed across 2 box(es), as of 2026-09-21 23:23:07 EDT
Every figure above links to the query that produced it, and the queries run against the same record this page was rendered from. All of the bench's numbers are here — by class, by desk, and by the model each commit says wrote it.
By the model the commit says wrote it
Nothing here checked that a model wrote anything. A commit trailer is a string the committing tool puts in the message, anybody can write one by hand, and a commit written by a model whose tool writes no trailer appears in none of these rows.
Watch it refuse something
Three rows from the record
What leaves a machine
A bundle of counts, hashes and verdicts — the checks that ran, what each decided, the class
of anything caught, and the chain hashes that make the rows tamper-evident. No file contents,
no paths, no filenames, no commit subjects, no source lines, and no repository name that is
not the sender's own salted hash of it. You do not have to take that from a page: run
gro-nass report --show and it prints the exact bytes it would send, before it
sends them, and gro-nass report --off stops it sending anything at all.