UNI Universal Natural Intelligence

Wiki · Architecture & Decisions

Phase 1 — RESULTS

Architecture & Decisions · docs/control-plane/phases/PHASE-1-RESULTS.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.

Status: EXECUTED 2026-07-25 · Plan: PHASE-1.md (pre-registered before execution) Bound honoured: documentation only. No code written. No gate verdict authored. No P-level moved. mc_test.exs untouched.


0. Headline — the pre-registration was falsified, and that is the result

Four of the five Gaia drift signals can never read equal=true. Not because the documentation is wrong, but because the two sides being compared are different kinds of thing. No documentation edit can clear them. equal=false is their permanent, normal reading.

I predicted three doc fixes would clear three drifts. All three predictions are false, and false for a structural reason rather than a contingent one. Phase 1's falsifier — "the file is genuinely absent, i.e. the code is wrong and a doc fix would launder it"fired on item 1.2, and the same mechanism turned out to govern 1.3 and 1.5.

Had I executed the plan as written, I would have edited three documents, observed nothing clear, and been tempted to edit the collector to make it clear. That is the laundering the phase was built to prevent.

1. The evidence

viewer/gaia/collectors.cjs:741-749 — the comparison is a pure byte equality:

function driftSignal(id, a, b, relation) {
  const equal = a.raw === b.raw;
  ...
}

All five signals are pushed unconditionally (out.push(driftSignal(...))), so the gaia-drift-surfaced gate — which requires the five to exist, not to be unequal (verify_gaia.cjs:514-521) — stays PASS either way. Clearing a drift would not break that gate. The problem is different: the comparison cannot be satisfied.

drift side A side B can equal ever be true?
drift.fqdn_cjs a line of CLAUDE.md prose (grepFirst) git ls-files viewer/fqdn.cjs output No. Prose ≠ a file listing, and B is hard-coded to a path that does not exist. Only creating viewer/fqdn.cjs changes B.
drift.gate_row_schema_path a doc line citing gate_row.v1.json ls production/schemas/gate_row*.json No. Same type mismatch. Removing the citation makes A a fallback string, still ≠ B.
drift.resolver_planned "dnsmasq (planned)" a JSON array of live resolve states No. A plan label ≠ an observation array.
drift.git_dirty_vs_clean "" (hard-coded "expected clean") git status --short Yes — clears when the tree is clean.
drift.self_caps_doc_vs_served canonicalRaw(CAPS), a JSON object the entire 51 KB GAIA.md file No. A JSON blob ≠ a markdown document.

2. What this means, stated carefully

Gaia is behaving correctly. GAIA LAW requires a mechanical byte-comparison and forbids Gaia from judging. It reports exactly what it computed. There is no violation here.

The instrument is nonetheless not measuring what it appears to measure. A reader seeing drift.fqdn_cjs equal=false reasonably infers "the documentation is stale". But it would read false even if CLAUDE.md were perfect. For four of five, the boolean carries no information about documentation correctness.

The signals are still valuable — they carry both byte-sets verbatim with provenance, so a human can read A and B and judge. The defect is that the equal boolean invites a conclusion it cannot support.

ADR-0002 is not invalidated. "The Control Plane authors, Gaia projects, drift is surfaced and never silently reconciled" all hold. What is corrected is my assumption that these five were actionable defects awaiting a fix. They are standing monitors, and four have a comparison that cannot converge.

3. Disposition of every item

# item disposition
1.1 correct my audit numbers to canonical DONE. 195 rows / 109 unique / 92 PASS · 4 PARTIAL · 1 FAIL · 12 PENDING, in ARCHITECTURE.md §2, §5, §12 and workspace.dsl
1.2 drift.fqdn_cjs NOT_CLEARED — STRUCTURAL. Side B is hard-coded git ls-files viewer/fqdn.cjs. No doc edit can change it. Falsifier fired. Not edited.
1.3 drift.gate_row_schema_path NOT_CLEARED — STRUCTURAL. Doc line vs file listing. Not edited.
1.4 drift.resolver_planned NOT_CLEARED — STRUCTURAL. Predicted not to clear; correct, but for a stronger reason than predicted.
1.5 drift.self_caps_doc_vs_served NOT_CLEARED — STRUCTURAL. JSON CAPS vs the whole of GAIA.md. Not edited.
1.6 drift.git_dirty_vs_clean NOT_CLEARED — USER_OWNED. M test/sp/brain/mc_test.exs. Untouched, as pre-registered. The only one of the five that could clear.
1.7 surface the FAIL gate DONE. nursery-fenced-red-stocked now rides in ARCHITECTURE.md §5 and §12 with its falsifier and claim fence.

Five drifts, zero cleared. Pre-registration said "at most 4 clearable, at least 1 structurally not mine." Observed: at most 1 clearable (1.6), and that one is not mine either. Worse than predicted, in the informative direction.

4. Retractions confirmed

GATES.md is correct on canonical109 unique gates (195 total rows), 92 PASS · 4 PARTIAL · 1 FAIL · 12 PENDING, matching its ledger exactly. My "drifted" claim was measured against the chip's deployed copy. Retracted. Also retracted and corrected in the architecture: "Gaia is not running", "gaia-boot-persistent UNPROVEN", "191 rows / 105 unique".

5. Verification

No code file was modified in UNI.Minecraft; git status --short still shows only the user-owned mc_test.exs. GATES.md was not re-rendered — it did not need to be, which is itself the confirmation that the retraction in §4 is correct. Changes are confined to UNI-FLAGELLUM/docs/control-plane/.

A phase that reports "all drift cleared" has laundered something. This one reports zero cleared, with a structural reason for each.

6. NEXT_ACT

Per ORCHESTRATE-RULES.md §1 and PHASE-1.md §5, Phase 1 is complete only when its successor is written. → PHASE-2.md, committed alongside this document.

sha256 87ba82a9a9ceb7e8 — 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 what actually happened in the first phase, set against the plan that was committed before it. The headline is that the plan's own predictions were falsified, and the page treats that as the result rather than as a setback.

Most of the disagreement signals being watched can never read as equal. Not because the documents are wrong, but because the two sides being compared are different kinds of thing. A line of prose against a file listing. A plan label against a list of live observations. A small blob against a whole document. No edit to a document can clear them, and unequal is their normal permanent reading.

The author had predicted that several edits would clear several of them. All those predictions were false, and false for a structural reason. The page notes what would have happened otherwise: three documents edited, nothing clearing, and a temptation to edit the collector until it did — the exact laundering the phase was built to prevent.

Every item ends with a written disposition, and none of them cleared.

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

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)

This page reports the outcome of the first phase against a plan that was written and committed beforehand. Its opening section is headed as the headline, and it says the predictions written down in advance were falsified — which is the result, not a failure of the phase.

The finding is that most of the disagreement signals under watch can never read as equal, and not because any document is stale. The two sides being compared are different kinds of thing. A quoted line of prose against the output of a file listing. A short label describing something planned against a list of live observations. A small structured blob against an entire document. For these, unequal is the permanent and normal reading, and no edit to a document can change it.

The evidence section shows why. The comparison is a plain byte equality, and every signal is pushed unconditionally, so the gate that requires these signals to exist stays satisfied whether they agree or not. The problem is not the gate: the comparison cannot be satisfied at all. A table then walks each signal, naming what is on each side and whether equality is ever reachable. Only one could reach equality, and does so when the working tree is clean.

The section on what this means is careful in a way worth noticing. The projecting body is behaving correctly: its law requires a mechanical byte comparison and forbids it from judging, and it reports exactly what it computed. The instrument is nonetheless not measuring what it appears to measure — a reader seeing unequal will reasonably infer that the documentation is stale, when it would read unequal even if the documentation were perfect. The signals are still described as valuable, because they carry both sides verbatim with a note of where each came from, and a person can read them and judge. The defect is that the boolean invites a conclusion it cannot support. The governing decision record is not invalidated; what is corrected is the author's assumption that these were defects awaiting a fix, when they are standing monitors, most of which cannot converge.

The disposition table then records every item. Two are done: the audit numbers corrected to the source that counts, and a failing gate made visible in the architecture, with the result that would show it wrong and the written limit on what it claims. The rest are recorded as not cleared, each with a reason: structural in most cases, user-owned in one, left untouched exactly as planned. The count is stated bluntly: none cleared. The plan had said some would be clearable and at least one would not; what was observed is worse than predicted, and the page adds that it is worse in the informative direction.

A short section records the retractions the plan carried in. The central one: a claim that a generated file had drifted from its record was wrong, because it had been measured against a deployed copy rather than the tree that counts.

Verification records that no code file was modified, that the only working-tree change is the user-owned file, and that the generated file was not re-rendered because it did not need to be. That is itself the sign that the retraction holds. The page then repeats its own standard: a phase reporting that all drift cleared has laundered something, and this one reports none cleared with a structural reason for each.

It closes by naming the next act, because the phase is complete only when its successor's plan exists and is committed alongside it.

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