UNI Universal Natural Intelligence

Wiki · The Colony & the Method

Typed model spec — Producer remote colony-sense + observe-only fence

The Colony & the Method · docs/specs/producer_remote_sense_observe_only.md @ 44baf03d5041 (gen2-runtime) — opens the published snapshot ac338733bbba
3 values were removed from this page. Each one is marked in place as [redacted: category] 2 internal hostname, 1 credential. Nothing else was altered. The document is otherwise exactly as it is written in the repository, and the sha256 below is of the original, so what was ingested stays checkable.

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-four pages about the colony. Each agent is an Elixir process holding a generative model and doing inference, attached to a body that logs into a Minecraft world as an ordinary player. Around that sit the broadcast suite that films them and the runbooks that keep the whole thing running. There are typed specifications for each organ of the model, plus the world and genome specs. There are also the adversarial review personas used to attack a proposed change before it ships.

It is for the reader curious how a running system is put together and how it is held to account. The accountability half is the more distinctive. There is a lab protocol governing evidence and attribution, and a claim fence that restricts the vocabulary a claim is allowed to use. There is a public gate log. And there is a standing invitation to reproduce any verdict from the commit and the seed named in its receipt.

Start with the public read, then the lab protocol, then the falsification invitation. If you want the mathematics rather than the operations, go straight to the typed organ specs.

What it is not: a description of a mind, and not all one kind of document. A large part of this corpus is design and planning — specs marked as proposed rather than applied, organs designed but not built, plans that were later superseded — and each page states which it is. A specification is not a running system, and these pages are careful about the difference; the reader should be too. Eight documents were withheld from publication because they describe private infrastructure.

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: reviewed, MERGED VERDICT SIGN-WITH-CHANGES (lab-team review 2026-07-15; verdicts + the 19 consolidated required changes recorded in docs/receipts/producer_reattach_remote_sense_spec.md §3). This spec incorporates every required change. Owner decision: option A′ (chat, 2026-07-15).

Slot Before After Notes
StateSpace Producer genome factors (11 designed modalities, SP.Producer.Genome) unchanged no factor added/removed
ObservationChannels rows from local SP.Brain.Colony.snapshot() (same-node ETS board); tps/log/history as today same channels; rows TRANSPORT becomes SP.Show.RemoteRows.fetch(colony_node): nil → local Colony.snapshot() (today's bytes, incl. failure→[]); node → :rpc.call(node, SP.Runtime.Board, :all, [], 500)pure remote ETS read (remote Colony.snapshot/0 is FORBIDDEN: its ensure_started fallback is a remote write, colony.ex:65-68). timeout/badrpc/exception → []. Rows normalised (username required; kin/mode/senses/action put_new-defaulted) so a v2-vs-HEAD shape drift cannot remap observation channels or crash Director.card/1 (director.ex:515). MB1, MB2, MB3; live row-shape receipt required pre-deploy
ActionSpace genome action set (cut/glide/b-roll/widen/beats/spawn/cull/health/hold…) set unchanged. Under opt observe_only: true, the INTERPRET of exactly {:spawn}, {:cull, _}, {:health, :tps} becomes {:fenced, dir} → logged no-op + per-action counter. Camera/narration directives untouched. Defense in depth: SP.Brain.Colony.spawn_agent/2 + stop_agent/1 refuse under UNI_OBSERVE_ONLY=1. fence is post-decision (generative PROCESS, not model); A5
PreferenceModel (C) genome C per factor; server_health dominant; population C-peak at state 2 (= 6 UNIs) unchanged. Honest note: under the fence, population/server_health preferences are watch-and-narrate only — the fenced node cannot act on them. At the measured 6-UNI colony, population sits at its C-peak, so the dead limbs stay LATENT in the RED (untested, not absent). D2, D4
PolicySet horizon-1 producer decide (depth-5 plan values, γ-weighted, habit-biased sample) unchanged — EFE still scores fenced actions normally; no per-action scalar anywhere MB check 7
LearningParameters learn_a: false, learn_b: false, learn_e: false (genome.ex:125-126, 141, 145) — no learning unchanged. CORRECTED CLAIM (was false in the draft packet): the producer CANNOT adapt to dead actuators. The fence creates a standing, unlearnable prediction error on population/server_health whenever those factors leave preference: frozen B keeps predicting the fixer works, EFE may re-elect it, the fence no-ops it. Senses stay honest (true remote board — faking them would be Food-Hack-class fraud). Instrumented via fenced-action counters + the perseveration tripwire (K consecutive same-fenced-action beats with zero camera directives ⇒ abort/INCONCLUSIVE, never a masked FAIL). D1, D2
PrecisionSchedule γ=12.0 designed unchanged
ValidationAnchors invariant suite green suite stays green (decider_byte_identity, action_clone_invariance, novelty — none of their paths touched); NEW anchors: fence_directives(dirs, [])==dirs (identity), fence replaces exactly the three directives, RemoteRows.fetch(nil) = local branch including the failure branch (exception → [], byte-identical to today's catch), unreachable node → []. MB4
ClaimFence all narration through SP.Brain.Fence.gate_line at Director.add_line unchanged; fenced-choice logs use functional language only; camera bot "Director" is equipment, never narrated as a mind. D check 6

FORBIDDEN FIX (binding, D3): no future change may quiet fenced choices via a per-action scalar, an action-cost, or an edit to the shipped genome's C — that is reward-in-a-wig. If an observer-role producer genome is ever wanted (e.g. population C flattened), it is lawful ONLY as its own separate genome constructor (forage/honest-lineage pattern) through its own lab-team review.

Deployment shape (honesty lines included, D4/A6): container uni-producer on uni-colony-net, HEAD bytes, --sname producer --cookie [redacted: credential] (the one-uni-node law holds — the only --sname uni node remains the colony), env UNI_AUTOSTART=1 UNI_POPULATE=0 UNI_COLONY_NODE=uni@uni-colony UNI_OBSERVE_ONLY=1 MC_HOST=mc-server VIEWER_URL=http://<chip>:3020/, UNI_CAM unset (camera ON: director.js as the Director's Port child — the proven mechanism). Host publishes :4200→:4000 (health + stream; not :4100 — that is [redacted: internal-hostname], caught in the registry 2026-07-15; [redacted: internal-hostname]:4200 is registered nv until its live probe passes; port verified free at deploy) and the existing :3020 forwarder re-points uni-cam:3020 → uni-producer:3020 after uni-cam stops (bot-name collision: MC kicks duplicate "Director" logins). Two Producer minds then sense the same colony: the living v2 one inside uni-colony keeps its cast hands and its legacy :4000/stream narration; the new fenced node is the broadcast show-runner (camera + its own /stream). UNI_OBSERVE_ONLY=1 + UNI_POPULATE=0 are load-bearing (an unfenced node under rows=[] would spawn real bodies / fire kill @e at the live world) and must be attested in the deploy receipt (podman inspect). The camera's own RCON verbs (tp/gamemode spectator/forceload on Director) are the Arm-A-identical proven mechanism — ALLOWED; anything touching UNI-* or entities/items (spawn/cull/kill/give/summon) is FORBIDDEN. director.js gains stdin-EOF self-exit so a supervisor restart can never orphan a camera into a login kick-fight (A4; studio-track edit under the owner's waiver, 2026-07-15).

Code touch-points: lib/sp/show/remote_rows.ex (new) · lib/sp/producer.ex (snapshot seam, fence_directives/2, fenced counters in :status) · lib/sp/brain/director.ex (snapshot seam) · lib/sp/show.ex (status count through the seam — else /producer/health reads the local empty board and gate 1 is unreachable) · lib/sp/brain/colony.ex (observe-only refusal guards) · ui/lib/sp_ui/application.ex (UNI_POPULATE gate + show_opts/0) · viewer/director.js (stdin-EOF exit, waived) · tests.

sha256 79c3d3c0feb18a0e — 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 a typed design specification, reviewed and signed with required changes, for letting one component sense a colony running on another machine while being unable to act on it.

Most of the page is a table with one row per part of the model, saying what it was before, what it becomes, and why. Almost every row says unchanged, which is the point: only the transport of one observation changes, and three specific actions become logged no-ops.

The most interesting row is a correction. An earlier draft claimed the component could adapt to actuators that no longer work. It cannot, because it does no learning. So the block creates a standing prediction error the component has no way to resolve, and the spec instruments that rather than hiding it.

One fix is forbidden outright: quieting those blocked choices by attaching a cost to an action, which the spec calls reward in disguise.

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

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 is a typed model specification with a review verdict attached: signed with required changes, with the required changes folded in and an owner decision recorded.

Its shape is a table with one row per slot of the model. The state space is unchanged; no factor is added or removed. The observation channels keep the same shape, and only the transport of one of them changes, from a local read to a read from another machine. A strict rule says which remote call is allowed and which is forbidden, because the forbidden one would perform a write on the remote side. Every failure mode falls back to an empty result, and rows are normalised so a shape difference between versions cannot silently remap the channels or crash a display.

The action space is also unchanged as a set. What changes is what happens after a decision: under an observe-only option, exactly three actions become logged no-ops with counters, while camera and narration instructions pass through untouched. A second layer of defence refuses those same operations at their source. The spec is careful to say the block lives after the decision, in the process rather than in the model.

The preference model is unchanged, with an honest note that under the block two preferences are watch-and-narrate only. And because the colony sits at its preferred size, the blocked limbs stay latent in the experiment, which it describes as untested rather than absent.

The learning row carries a correction, and it is the most instructive part. An earlier draft claimed the component could adapt to actuators that no longer respond. It cannot, because all learning is switched off. The consequence is spelled out: the block creates a standing, unresolvable prediction error, since the frozen model keeps predicting the blocked action works and may keep choosing it. The spec insists the senses stay honest, saying that faking them would be fraud of a class already named in this project. It adds a tripwire that aborts to an inconclusive result, rather than letting a masked failure look like a verdict.

A binding paragraph forbids one fix outright: quieting the blocked choices with a per-action cost or an edit to the shipped preferences, which it calls reward in disguise. An observer-role variant would be lawful only as its own separate configuration through its own review.

A long deployment section names the shape of the container, and the settings that are load-bearing, because an unfenced node would act on the live world. It names what the camera is allowed to do and what it is forbidden to touch, and one detail caught in a registry check. It also states plainly that two of these minds will then sense the same colony, one keeping its hands and one fenced.

A final list names the files the change touches.

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