Wiki · Evidence & Verdicts
Receipt — verdict=LIVE truthfulness (Phase III)
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.
Status: SOURCE-CONFIRMED + TEST-LOCKED. LIVE two-probe flip PENDING colony bring-up.
What was broken
ui/lib/sp_ui_web/controllers/health_controller.ex set verdict=LIVE from producer_up AND director_up alone (PID existence). lib/sp/show.ex:status/0 synthesized
driver: (director && :producer) || nil — a live Director PID always read driver: :producer,
even when the Director was still the rule-based :self puppet (the exact "puppet-cam" failure
this project has hit twice). The verdict=LIVE self-probe was therefore vacuous.
The fix (colony lane, commit 61671b0, 2026-07-11)
lib/sp/brain/director.ex— added a realdriver/0getter (GenServer.call) exposing the Director's actual internal driver state (:self|:producer), not a synthesized value.lib/sp/show.ex:67—status/0now readsdriver: director && safe(fn -> SP.Brain.Director.driver() end)— the REAL driver, wrapped in the module's existingsafe/1swallow-and-degrade helper (no new failure mode).SP.Show.verdict/1was extracted as a pure function (module doc, ~L75-79) requiringproducer_up AND director_up AND driver == :producerfor"LIVE"; a live Director PID still in:selfnow correctly reads"PARTIAL"— the puppet-cam guard the endpoint was always meant to be.- Frame-advance (anti-frozen) checking stays caller-side by design (a stateless HTTP probe
cannot compare two of its own prior calls) —
viewer/studio_up.ps1:186-202's puppet-cam guard already does the two-probe frame-advance dance on top of the now-honestdriverfield.
Evidence captured today
- Source read, confirmed as described above (
lib/sp/show.ex:64-73, both thedriverline and theverdict/1doc comment naming the exact contract). Verified during Phase-3 plan review before this remediation pass started, and re-verified now. - Test lock (reported by the colony lane, not independently re-run by this agent this pass):
test/sp/show_verdict_test.exs— 5/5 passing, locking thePARTIALvsLIVEcontract at the pure-function level. (Class-C: reported, not independently executed by the broadcast lane in this session — re-runmix test test/sp/show_verdict_test.exsto upgrade to Class-B before citing this receipt as full closure.)
What is NOT yet captured (honest gap)
The live two-probe flip (curl /producer/health showing PARTIAL while the Director is
:self, then LIVE after SP.Brain.Director.set_driver(:producer) is called on a running
colony) requires the colony source to be UP. As of this receipt, http://localhost:4000/producer/health
from THINKER times out — the colony source is intentionally DOWN for the emergent-forage
rebuild (per the colony lane's NO-GO ack). This live capture is PENDING and will be taken the
next time the colony source is brought up (either for the colony's own survival-gate RED run, or
specifically to close this receipt).
Verdict
Source-level fix confirmed correct and test-locked by the owning lane. Sufficient to treat
Phase III as CLOSED for planning/sequencing purposes (it no longer blocks Phase XI heartbeat
wiring, which reads this same field honestly either way — PARTIAL is a true, not a false,
report). The live-probe artifact remains an open action item, tracked here, not fabricated.
sha256 00877e1d4da4fa12 — of the original file, so what was ingested stays checkable.
Plain — written for this website, not the source document
This records a fix to a health check that was reporting good news it had not actually checked. The endpoint called a system live whenever two processes existed, and a related field named the real driver whenever one of them was up, even when the thing driving was still a stand-in. The fix makes that field report the actual state, so a stand-in now reads as partial rather than live. The page is honest about what is still missing: the check has not yet been watched flipping on a running system, because that system is deliberately down for other work.
Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 00877e1d4da4fa12
Clear — written for this website, not the source document
A receipt — the file recording what was run — about a self-check that was not checking anything. The status line at the top is split on purpose: the source-level fix is in and locked by a test, while the live demonstration is still pending.
What was broken is stated first. The endpoint reported a live verdict when two processes were merely present, and a separate status field made up the name of whoever was driving rather than asking. A live process still running a rule-based stand-in therefore read as though the real driver had taken over. The page names this as a failure mode the project has hit before.
The fix adds a getter that asks the component for its own internal state, and wraps the call in an existing degrade-safely helper, so that no new failure mode appears. It then pulls the verdict out into a pure function that requires the driver to actually be the real one. A stand-in now reads as partial, which is a true report rather than a false one. One deliberate non-change is explained: checking that frames are advancing stays with the caller, because a stateless probe cannot compare two of its own earlier calls.
The evidence section grades itself. The source was read and matches the description. The test lock is reported by the lane that owns it rather than re-run here, and the page marks that with a class and names the command that would upgrade it. Then the honest gap: the live flip has not been captured, because the thing it needs is intentionally down for other work. The verdict treats the phase as closed for planning purposes while leaving the live capture as an open item, tracked rather than fabricated.
Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 00877e1d4da4fa12