GRO-NASS
format 1.0-draft · numbers as of 2026-09-21 · bench: 2388 public repositories, 43773 commits replayed · from the record
substantive refusal rate
45.2%
of
19,781 of 43,773 commits · excludes prereg_parser and no_stamps, which refused 68,748 more
interval
95% CI 44.7–45.7%
as of
2026-09-21 (EDT)
query
q-bench

Your AI said done.
Can you prove it?

Only a system that can refuse can know. Yours never has.

Done means proven.

VERIFIED BY EXECUTION

GRO-NASS · RECORD · FORMAT 1.0-draft SIGNED · CHAINED · 2026

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

refused before landing
19,781
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
errors hidden silently
214,724
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)
the model bill
$0.00
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)

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

Commits refused, by the model the commit declares · as of 2026-09-21 (EDT) · declared by trailer, not verified
claude-trailer 9,797 of 25,170 · 38.9%
cursor 880 of 1,803 · 48.8%
copilot 170 of 491 · 34.6%
claude-code 215 of 433 · 49.7%
codex 116 of 343 · 33.8%
devin 122 of 256 · 47.7%
gemini 38 of 89 · 42.7%
aider 2 of 7 · 28.6%

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

bundle 6a76a1ea451679e29120a4d9f5c5c000
row 0 signature verified against the enrolled keyALLOWED
one byte of that signature changed
bundle 4a6cb003a21d8a84a1e1ef990cf7f8e6
row 0 bad_signatureREFUSED
expected a signature the enrolled key accepts
got qwNkVDztR+7+t7w/JGVPr4ht

Three rows from the record

a release this machine refused to let out — REFUSED
tagv0.2.0commitd04cd86ce2ebnpm_ci_exit0typecheck_exit2suite_exit1dry_verdictrefusedreceived2026-09-18 (EDT)
bundle_hash 6a76a1ea451679e29120a4d9f5c5c0009439cd7d45d8ba6ae39e94eef85239dd
Its own tests failed, so this version was never published.
a platform card from a Windows desk, received and accepted — ALLOWED
platformwin32link_modejunctionprobesspawn=okwrapper0.3.3received2026-09-20 (EDT)
bundle_hash d4472280082a55c75c860bcb4deb80f7e1a75b1c334423005d8dfcbb3eb34542
A Windows machine installed the gate, tested what it could do there, and reported back.
the first row on this record where the loss was somebody else's
id3911repoa customer repositoryclasswrong-scopeloss_kindoutagetime_to_cure_min60blast1 customer, deploy pipelineoccurred_on2026-09-19caught_byhuman
none — a hand-catch in the receiver's table is not a chained sender row
This one reached a customer and took an hour to fix. It is on the record because it escaped.

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.