Wiki · Architecture & Decisions
Architecture audit — claims checked against the running system
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.
This is the design record of the part of the estate whose job is to stop the rest of it claiming more than it has measured. It runs to architecture notes, numbered decision records, phase plans, and the results written after each phase ran.
It is for anyone curious how a decision was actually reached — what was considered, what was refused, and what the refusal cost. The decision records are the most durable part: each names one choice, the alternatives, and the consequence accepted in exchange. The failure-modes page is worth the detour, because it states each refusal as something you could go and test rather than as a promise.
Read the architecture page first. It opens by declaring itself part design and part built, which sets the tone for the whole section. Then the first decision record, then whichever phase interests you — read as a pair, the plan and the results page written afterwards, including the phases where a premise turned out to be wrong and the receipt says so.
What it is not: a description of running software, and not a complete record. Three documents from this area were withheld from publication, because they describe private infrastructure or the operator declined them; they are listed as withheld rather than quietly dropped, so you can see that they exist.
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.
Executed 2026-07-25. Method: every factual claim in ARCHITECTURE.md, workspace.dsl and views.md checked against a live read, never against another document. Per NEXT-SESSION-BRIEF.md Task 1.
Falsifier for this audit: any statement in the architecture that cannot be traced to a live read or a named file:line.
Result: one error class, three sites. Everything else confirmed.
| claim | architecture said | live | verdict |
|---|---|---|---|
| Gaia signal population | 305 | 308 | CORRECTED — 2 sites in ARCHITECTURE.md, 1 in workspace.dsl |
| Gaia drift signals | 8 | 8 | confirmed |
| Gaia provenance-incomplete | 0 | 0 | confirmed |
| Gaia seats | incl. organic-operator, excl. relay |
matches | confirmed |
| ledger rows / unique | 195 / 109 | 195 / 109 | confirmed |
| ledger tally | 92 PASS · 4 PARTIAL · 1 FAIL · 12 PENDING | identical | confirmed |
| Door port + verbs | :8090, open/close/state/journey |
identical in launcher.cjs |
confirmed |
| Door journey states | 5, studio_ready→off_air |
identical in door_journey.cjs |
confirmed |
| body ports up | 8090, 8096, 8100 | all UP by socket connect | confirmed |
| Control Plane | NOT BUILT | lib/sp/control_plane absent |
confirmed |
Superseded 2026-07-25, later the same day. The Control Plane row above was true when this audit ran and is left as the record. Phase 2 landed
Ledger,GateRow,CommandandDrift; the body is now PARTLY BUILT. Seephases/PHASE-2-RESULTS.md. Themix testcount quoted below (554) likewise predates the 61 tests Phase 2 added; live is 615.
| ui/ contract | amended, reads-only + submit | ui/mix.exs:26-42 | confirmed |
| SP.* modules | as listed | lib/sp/*.ex matches | confirmed |
The one error, and its cause
305 signals was correct when written. I then added three drift.replica_ledger.* signals, updated the drift count to 8, and left the total at 305. A stale number I created myself, in the same session, hours apart.
This is the fourth instance of the same failure mode in this project: a number recorded once and not re-read. The first three are in RESUME.md. The pattern is not carelessness about any single fact — it is treating a written number as evidence. It is exactly what ADR-0002 exists to prevent, applied to my own prose rather than to a gate.
Mitigation now in place: UNI TRACK reads all of these live on every request and caches none of them. A number in prose that disagrees with TRACK is wrong by construction, and TRACK is the thing on screen.
Not verified, and why
| item | status | reason |
|---|---|---|
HUD internals (:8100) |
NOT_VERIFIED |
loopback-only by design; the socket answers but the JSON surface was not read this pass |
Colony UI (:4000) |
DOWN — confirmed | the colony is deliberately down for a generative-model rebuild |
| chip replica ledgers | confirmed DIFFERS ×3 | expected: they are older deployments, and nothing on them is absent from canonical |
Verification run
verify_gaia 12 PASS / 0 FAIL · gaia_lint 0 violations · mix compile --warnings-as-errors clean · mix test 554 tests, 4 doctests, 0 failures · mix.exs unchanged · mc_test.exs untouched (user-owned) · replica_ledger_probe re-captured 3 replicas · all 5 C4 views re-rendered from the model.
sha256 9c6acfc5dacc6c54 — of the original file, so what was ingested stays checkable.
Plain — written for this website, not the source document
One day's audit is what you are reading, and its method is the whole point. Every factual claim in the architecture documents was checked against a live read of the running system, never against another document. What would show the audit wrong is named above the results: any statement that cannot be traced to a live read or to a named file and line.
The outcome was one error class at three sites. Everything else came back confirmed, row by row, so you can see the shape of what was checked.
The page is unusually honest about that one error. A count had been correct when written, then went stale within the same session because more signals were added and the total was not re-read. The record calls this the fourth instance of the same failure mode here — a number written down and then treated as evidence — and points at the earlier three.
Two smaller things follow. A note added later the same day supersedes one row rather than editing it. And a short section names what was left unread, mostly by design, along with the views re-rendered from the model.
Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 9c6acfc5dacc6c54
Clear — written for this website, not the source document
A date sits at the head of this audit, and its method is the point of it. Every factual claim in the architecture prose, in the model of record and in the projected views was checked against a live read of the running system. None was checked against another document. The audit names, before it gives any result, the finding that would show it wrong: any statement in the architecture that cannot be traced to a live read or to a named file and line.
The bulk of the page is a table of claims, each with what the architecture said, what the live read returned, and a verdict. Most rows come back confirmed. Among them: drift signal counts, how complete the record of where evidence came from is, and the seats a witness carries. Also the number of rows in the ledger — the running list of results, only ever added to and never edited — with their tally of outcomes. Then one body's port and verbs and journey states, the ports that answered a socket connect, the amended read-only contract, and the module list. One row records that the body which runs the science was, at that moment, not built.
One row failed, in a single error class appearing at three sites. A signal population had been correct when it was written; more signals were then added and the drift count updated, but the total was left as it was. The record says plainly that this was a stale number the author created himself, in the same session, hours apart.
The reflection on that error is the most valuable part of the page. It names it as the fourth instance of the same failure mode in the project and points to where the earlier three are recorded. The pattern is described not as carelessness about any single fact but as treating a written number as evidence — the same disease one of the decision records exists to prevent, applied here to prose rather than to a gate. The mitigation is that a live surface now reads all of these figures on every request and caches none of them, so a number in prose that disagrees with it is wrong by construction.
A block quote inserted later the same day supersedes one row rather than editing it. The claim that the body which runs the science was not built was true when the audit ran, and it is left standing as the record. By the time of the note, a phase had landed several parts and the body had become partly built. The test count quoted at the end of the page had likewise already moved.
A short section lists what was not checked and why. One surface's internals were not read this pass, because it is loopback-only by design. One interface was confirmed down on purpose, during a rebuild. And some copies of that ledger were confirmed to differ from the one copy the project treats as authoritative — which is expected, because they are older deployments and nothing on them is missing from that copy.
The page closes with the verification run behind the audit — gate checks, a lint pass, a clean compile, the test suite, an untouched build file, an untouched user-owned test file, re-captured copies, and the views re-rendered from the model.
Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 9c6acfc5dacc6c54