D354 - A revision the file states is a claim; a revision the checkout states is a fact
decided ยท 2026-08-27
D353 made the constants harvest a command. This makes it checkable, which is the part that matters: the ABI constants are the only table here that is neither derived by experiment nor written by a person - they are copied out of somebody else's headers, so where did this number come from is the only question about them.
orbistoun.sh now regenerates the table and diffs it.
Three ways a wrong number gets in, and the guard was pointed at each
before it was believed:
| tampering | first version | now |
|---|---|---|
| hand-edit a value | caught | caught |
| delete a constant | caught | caught |
| edit the header to name a different revision | passed | caught |
The hole was in taking the revision as an argument
--revision was stamped into the header, so the header
was a claim - and the gate re-derived the file using
that claim. Regenerating with whatever the file said produced a
file saying the same thing, so ee81cd1d edited to
deadbeef matched itself and passed.
For a table whose entire purpose is provenance, that is the one failure that matters: it means the file could name any source at all and nothing would notice.
The generator asks the checkout instead -
git -C <source> rev-parse HEAD - so the header states
what the harvest actually read. A hand-edited header
now differs from a regeneration, which is what the gate is already
looking at. --revision is gone rather than made optional:
an override would restore exactly the hole it just closed.
A checkout that is not a git repository is refused, not stamped "unknown". A table that cannot say where it came from is the thing this exists to prevent.
Why it was found
By pointing the guard at three things and watching what it did, rather than by watching it pass. Two of the three were caught and read as confirmation; the third was the one worth running. A guard nobody has watched reject something is a guard nobody knows anything about - and two-thirds of a guard looks exactly like a whole one.
Where the checkout is
ORBISTOUN_FREEBSD_SRC, defaulting to a sibling of the
parent directory. Absent, the step warns and passes
rather than failing: the checkout lives outside this repository and not
every machine has one, and a gate that cannot run on a fresh clone is a
gate people learn to skip. It says so out loud, which is the difference
between unverified and verified.