UNI Universal Natural Intelligence

Wiki · Architecture & Decisions

Control Plane — architecture

Architecture & Decisions · docs/control-plane/README.md @ b909801f3db4 (hierarchical-aif/motor-stack) — opens the published snapshot 8b4b5935bcba

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.

PART DESIGN, PART BUILT. This directory moves no P-level. Phase 2 built the ledger and the command path; Phase 3 added registration, verdict authorship, the anchor and the two-party rule; Phase 4 added persistence, runs and the pairing guard; Phase 5 added the witness and the body's first real ledger of its own history; Phase 6 added rooms, keys and airlocks. Only the lab view remains. Live state and next act: RESUME.md, or UNI TRACK at http://127.0.0.1:8102/.

How this is maintained

Architecture is model-as-code. There are no hand-drawn diagrams — see ADR-0004 for why the SVGs that were here were deleted.

file role edit when
workspace.dsl The model of record. C4 in Structurizr DSL — typed people, containers, relationships, deployment nodes. One model, many views. any element or relationship changes
views.md Projections. Mermaid — renders natively in GitHub with no build step. Context, containers, deployment, evidence spine, three state machines, one sequence. a view needs to show something different
ARCHITECTURE.md The prose the model cannot carry. Contracts, domain model, interfaces, invariants, failure modes, acceptance criteria, build sequence. behaviour or a contract changes
decisions/ Why. ADRs in MADR format, each with a falsifier. a consequential choice is made or reversed
DATA-SPEC.md Shapes. Ledger entry, receipt, gate row, scene node, drift comparison. a field is added or a type changes
FAILURE-MODES.md Refusals. 31 numbered, each written as a testable statement with its falsifier. a new refusal is identified
ARCHITECTURE-AUDIT.md Proof. Every claim checked against a live read, not another document. the architecture changes

The rule: if a relationship appears in a view but not in workspace.dsl, the model is wrong. The DSL is authoritative where the two disagree.

Rendering the DSL uses structurizr-cli + PlantUML, both installed (user-local, Temurin JDK 17). bash render.sh validates, exports and renders all five views into generated/. views.md still exists because it renders anywhere with nothing installed.

The one thing to read first

There are four bodies, and none may be collapsed into another (ADR-0001):

body responsibility acts? authors a verdict?
The Door :8090 · built admission, release, keys, journey on a threshold no
The Control Plane · partly built runs the science — this is the lab on the science yes, only this body — but it has not yet
Gaia :8096 · built projects signals with provenance no no
The HUD :8100 · built shows and carries no no

Gaia may never act, so it cannot be a control plane. The Control Plane authors verdicts, so it can never be Gaia. Collapsing either into the other removes the witness that makes every claim checkable.

Phases

Execution is phased, and each phase document ends by requiring the next — per ORCHESTRATE-RULES.md §1, writing a report or passing tests is not a stopping condition. A phase is complete only when its successor's plan exists, pre-registered in the same form.

phase status ends when
Phase 1 — drift disposition and baseline truth EXECUTEDresults PHASE-2.md written and committed
Phase 2 — the ledger and the command path EXECUTEDresults PHASE-3.md written and committed
Phase 3 — registration, verdict authorship, the anchor EXECUTEDresults · item 3.6 PARTIAL, 3.7 known-fail PHASE-4.md written and committed
Phase 4 — persistence, runs, the pairing guard EXECUTEDresults · both canaries fired PHASE-5.md written and committed
Phase 5 — the witness, the first real ledger, a Gaia seat EXECUTEDresults · item 6.6 carries one operator-gated write PHASE-6.md written and committed
Phase 6 — rooms, airlocks and keys EXECUTEDresults · one unnamed full-suite failure carried open PHASE-7.md written and committed
Phase 7 — the lab view, and a scene that cannot lie PRE-REGISTERED, not executed phases/PHASE-8.md is written and committed

Each plan pre-registers its expected outcomes and falsifiers before execution (LAB_PROTOCOL.md §II). A NOT_CLEARED disposition with a named reason is a valid, complete outcome — not a failure to be tidied away.

Decisions

ADR decision
0001 Four bodies, none collapsible into another
0002 Verdicts are authored by the Control Plane and projected by Gaia, never computed by Gaia
0003 The Control Plane is the lab; room and machinery are one body
0004 Architecture is model-as-code; hand-authored SVG is not an architecture format
0005 The flagellum's CPU-only rendering fence does not bind the lab
0006 The body is SP.ControlPlane, and it lives in the zero-dep core
0007 The ui/ read-only contract is clarified, not widened
0009 Gaia is the sole authoritative projection of platform state, never an author of it — SP.ControlPlane authors, the ledgers record, Gaia projects (PROPOSED — NOT ADOPTED)

Scope note

The Control Plane is platform-wide. UNI-FLAGELLUM is one project under it, alongside the UNI.Minecraft colony, metabolism, forage, motor and producer. This directory lives here because this is the version-controlled tree available; see ARCHITECTURE.md §14.3 and §14.5.

sha256 b44709415f629f22 — of the original file, so what was ingested stays checkable.

Plain — written for this website, not the source document

Written for this website — not the document. This is a plain-language retelling, written to help you meet the document. It is not the source, and it is not evidence. It has not yet been checked by a person. (or choose Precise in the reading-level control above)

This is the front door to a directory of architecture documents, and it starts by telling you what it is not. The thing it describes is part design and part built. Several phases have landed real code; the lab view remains. The page says outright that this directory moves no confidence level on its own.

Most of it is a map. One table says which file plays which role and when to edit it. The typed model of record. The projections that render anywhere with no tooling. The prose the model cannot carry. The decision records, the data shapes and the numbered refusals. And the audit that checks claims against a live read rather than against another document.

Then comes the one thing it asks you to read first: there are four bodies, and none may be collapsed into another. One admits and releases. One runs the science, and is the only one that may author a verdict — though the page notes it has not yet. One projects signals and may never act. One shows and carries.

The rest lists the phases and the decisions, with their status.

Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is b44709415f629f22

Clear — written for this website, not the source document

Written for this website — not the document. This is a clearer retelling, written to help you meet the document. It is not the source, and it is not evidence. It has not yet been checked by a person. (or choose Precise in the reading-level control above)

The entry point to a directory of architecture documents opens with a status rather than a welcome: the thing described is part design and part built, and the directory on its own moves no confidence level. It then lists what each phase added. A ledger — the list of results only ever added to — and a command path. Then registration, verdict authorship, an anchor and a two-party rule. Then persistence, runs and a pairing guard. Then a witness and the body's first ledger of its own history. Then rooms, keys and airlocks. And it says only the lab view remains. For live state it points elsewhere, on the reasonable ground that a committed file cannot hold a fact about now.

A section on maintenance explains that the architecture is kept as a model in text rather than as drawings, and points at the decision record that says why earlier drawings were deleted. A table gives each file its role and the condition under which you should edit it. The typed model of record, when an element or relationship changes. The projections, when a view needs to show something different. The prose, when behaviour or a contract changes. The decision records, when a consequential choice is made or reversed. The data shapes, when a field is added or a type changes. The numbered refusals, when a new refusal is identified. And the audit, when the architecture changes. A single rule settles disagreements: if a relationship appears in a view but not in the model, the model is wrong, and the model is authoritative.

The section headed as the one thing to read first sets out four bodies, none of which may be collapsed into another. One handles admission, release, keys and journey, and is built. One runs the science — this is the lab — is partly built, and is the only body that may author a verdict, though the page notes it has not yet done so. One projects signals with a note of where each came from, is built, and may neither act nor author. One shows and carries, is built, and does neither. The reasoning is given in a sentence. The projecting body may never act, so it cannot be a control plane. The control plane authors verdicts, so it can never be the witness. And collapsing either into the other removes the very thing that makes a claim checkable.

A table of phases follows, each with its status and the condition that ends it. The rule stated there is worth noticing: writing a report or passing tests is not a stopping condition, and a phase is complete only when its successor's plan exists, written down in advance in the same form. Several phases are marked executed, with their known partial results and known failures carried in the open rather than tidied away, and the last listed is written down in advance but not executed. The page adds that a not-cleared outcome with a named reason is a valid and complete result.

A short table indexes the decision records. A closing scope note explains that the control plane is platform-wide, that the flagellum is one project under it alongside several others, and that the directory sits where it does because that is the version-controlled tree available.

Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is b44709415f629f22