Wiki / 5 of 7
A Release That Calculates Its Own Readiness
Fifteen gates: nine are calculated by the machine against a specific commit, while six can be closed only by a person-and the machine cannot impersonate any of them.
The verdict is computed
"Is the release ready?" is neither an opinion nor a checkmark. Nine checks run now, against this commit: the version is frozen, the tree is clean, the full test suite passed right here, no invariant is broken, and no secrets are tracked. A green test suite on another commit is a true statement about that other commit; here it yields "unset," not "passed."
Human gates
There are six decisions a machine can never make: accept residual risk, confirm key rotation, perform a restoration from backup, give the final "yes." It sees that no one has answered-and shows it. The decision-recording tool deliberately requires a live terminal: a pipeline, script, or schedule cannot close a gate that belongs to a person.
Every decision is tied to the commit on which it was made. If the tree moves, the decision honestly returns to "waiting for a person": it was true of a different system.
Today's answer
A fresh run on the day of this snapshot: the verdict is NO-GO again, and every reason is named. Some gates are mechanical: a tree with uncommitted changes, a test suite last passed on a different commit, two broken invariants. None of these sentences is an opinion - everything is computed now.
The most valuable thing happened to the human gates: five decisions made a month ago were returned by the system itself to "awaiting a human" - because the tree moved, and each of them was true about a different state. The rule binding a decision to its commit did not break - it worked.
A small release every day
While the big verdict says NO-GO, the small release has learned to count itself daily: the public page of this system ships through five computed checks against the exact commit, a receipt with a SHA-256 address and independent acceptance of live markers.
In one day four publications took this route, and each had its own human word for exactly its commit. The difference between "announced a release" and "proved a release" is not rhetoric here - it is two different files with two different addresses.