Wiki · Evidence & Verdicts
Correction — the item 7.6 green receipt was not reproducible from the commit that carried it
How to read this page
Three ways to read this page. Precise is the document itself, exactly as it is written in the repository. Plain and Clear were written for this website to help you meet that document — they are about it. They are not it, and they are not evidence.
Eighty-seven dated pages: receipts, pre-registrations, handoffs, validation records and review verdicts. A receipt is written at the moment a piece of work was checked. It names what was claimed, the commit and the seed, what was actually run, and the outcome in one of a small set of controlled words. Then it names what the work did not achieve. That last part is what makes it a receipt rather than an announcement. A pre-registration is the same discipline run in advance: the conditions that would count as a pass and the conditions that would falsify the claim are written down before the run, so neither can be adjusted once the numbers arrive.
That is why so many small dated stubs are an audit trail rather than noise. No one of them is meant to be a good read. The value is in the sequence and in the dates, because you can watch a prediction be registered, then the run happen, then the verdict land — sometimes against the prediction. Pages here record a falsified result, a rejected fix, a retracted overclaim, and a green receipt that turned out not to be reproducible from the commit that carried it. A record that carried only successes would be worth a good deal less than this one.
A gentle way in is to read a pre-registration first, so the shape becomes familiar, then a result page, then one of the corrections. This section sits off the main navigation on purpose: it is the record you check the rest of the site against, not the place to begin.
What it is not: documentation, and not a summary. Nothing here has been tidied in hindsight. Every entry reads as of its date, a later entry may overturn an earlier one, and the presence of a page is not a claim that its result stood.
Your browser cannot switch reading levels, so the document itself is shown.
Precise — the source document
This is the document. Rendered from the repository at the commit above, with nothing rewritten for the web. A gate re-renders it on every deploy and fails the build if a single byte differs.
Date: 2026-07-26 · Raised by: a drift investigation, not by me noticing
Affected artifact: docs/receipts/control-plane/phase7_item76_green_2026-07-26.txt
Affected commit: 98a76a0 (Phase 7 item 7.6 green)
Closed by: 9de87b4 (commits test/sp/brain/mc_test.exs)
What was wrong
Line 41 of the item 7.6 green receipt carries:
warning: has_food MASKED: inventory_index(%{"tools" => 1, "food" => 2}) == 2, not 3.
That line is emitted by a TRIPWIRE test in test/sp/brain/mc_test.exs. At the
moment the receipt was captured, that file was modified in the working tree and
not committed. The receipt was committed; its cause was not.
So a clean clone of 98a76a0 and a mix test run would have produced output that
does not match the receipt 98a76a0 contains. The receipt was evidence of a
run that the commit it lives in cannot reproduce.
Severity, stated plainly
This is a reproducibility hole in a governance programme whose entire subject is that a claim must be reproducible from its recorded artifacts. It is not a large one — the discrepancy is one warning line, no assertion, no count, no verdict, and the test totals in the receipt (940 tests, 0 failures) are unaffected because the tripwire warns rather than fails. But the class is exactly the one this programme exists to catch, and it was committed by the agent running the programme.
Root cause
I captured a full-suite run to produce a receipt while the tree was dirty, and
I did not check the tree before capturing. Every previous receipt in this phase was
scoped to test/sp/control_plane, which the uncommitted file does not touch; item
7.6 was the first to capture the whole suite, and the standing procedure had no
step for "confirm the tree is clean before capturing evidence from it".
The dirty file was long-standing, user-owned, and correctly not mine to commit —
which is why it had become invisible. drift.git_dirty_vs_clean had been reading
unequal for days and was filed as an accepted oscillation. An accepted signal is
one nobody reads.
What was NOT done
The receipt is not edited. History is extended, never rewritten. Anyone reading
phase7_item76_green_2026-07-26.txt sees exactly the bytes that were captured, and
finds this correction beside it.
What was done
9de87b4 commits test/sp/brain/mc_test.exs unaltered, on the operator's explicit
instruction, with @tag :skip intact and lib/sp/brain/mc_codec.ex untouched.
From that commit forward, a clean clone reproduces the receipt's output.
The standing procedure gains a step
Before capturing a receipt from a test run, record
git status --shortin the receipt itself. A receipt captured from a dirty tree is evidence about a state that no commit contains.
This applies to every future receipt in this programme.
What this cost, and what it bought
Cost: one commit and this note. Bought: the discovery that
drift.git_dirty_vs_clean — filed as a permanently-oscillating signal and
therefore stopped being read — was pointing at a live reproducibility defect the
whole time. That is the second trap named in the drift adjudication: filing a
signal as structural and moving on. STRUCTURAL must mean "unequal by
construction and both sides verified true, on this date, by this command". It
must never mean "unequal, stop looking".
sha256 0b2bd04a4cdfe208 — of the original file, so what was ingested stays checkable.
Plain — written for this website, not the source document
A correction, and a small one that matters more than its size. A receipt, the file that records what was run, captured the output of a test run, but one line of that output came from a file sitting uncommitted in the working tree. So a clean copy of the commit that carries the receipt could not have produced the receipt's own output. The discrepancy itself is one warning line, with no assertion, no count and no verdict behind it. The page does not edit the receipt. It commits the missing file, adds a step to the standing procedure, and notes that a drift signal had been pointing at this for days while being filed as normal and therefore going unread.
Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 0b2bd04a4cdfe208
Clear — written for this website, not the source document
A correction written by the agent that caused it. The defect: a receipt — the file recording what was run — was captured from a test run while a file in the working tree was modified and uncommitted, and one warning line in the captured output came from that file. A clean clone of the commit carrying the receipt would not reproduce the receipt.
The severity section is careful in both directions. The discrepancy is one warning line, with no assertion, no count and no verdict behind it, and the totals in the receipt are unaffected because the tripwire warns rather than fails. But the class of fault is exactly the one the programme exists to catch. That programme's whole subject is that a claim must be reproducible from its recorded artifacts, and the fault was committed by the agent running it.
The root cause is procedural. Every earlier receipt in the phase was scoped to a narrow set of tests that the uncommitted file does not touch. This was the first to capture the whole suite, and the standing procedure had no step for checking the tree first. The file was long-standing and user-owned, correctly not the agent's to commit, which is why it had become invisible.
Two things are named, one not done and one done. The receipt is not edited, because history is extended rather than rewritten, so a reader sees the bytes that were captured and finds this correction beside them. And the missing file was committed unaltered, on explicit instruction, so that from that commit forward a clean clone reproduces the output.
The procedure gains one step: record the state of the working tree in the receipt itself, because a receipt captured from a dirty tree is evidence about a state no commit contains. The closing section prices the whole episode. The cost was one commit and this note. What it bought was the discovery that a drift signal had been reading unequal for days while filed as an accepted oscillation, which is the second trap the programme had already named. The page then says what that label must mean, and what it must never mean.
Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 0b2bd04a4cdfe208