Wiki · The Colony & the Method
OPERATOR RUN SHEET — you are the primary operator
[redacted: category] — 1 private address, 2 internal hostname. 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.
Print this. It is the only page you need to run a show.
Everything here was proven live, not asserted. Where something is unproven, it says so. Receipts:
docs/receipts/production_sweep_2026-07-16.md and the 2026-07-17 sweep
(undermined_signals_swept_2026-07-17.md, air_alarm_the_one_change_2026-07-17.md,
hud_glance_honesty_2026-07-17.md).
What changed 2026-07-17 (a full audit — nothing to relearn, just better): every always-on panel that used to read green while something was dark now tells the truth (the byte-count preflight, the egress row with no armed-count floor, a frozen HUD that looked live, a SIGHT panel that greened as its sensor died). The HUD got an off-monitor AIR ALARM (§4a) so you can step away. Gaia is whole. The run-of-show and off-air steps now survive a mid-show restart. None of your muscle memory changes.
0. THE ONE CALL — "what is my state?"
curl -s http://127.0.0.1:8090/api/status
Answers everything: stack, the journey step you're on, every surface's live probe, what to do next.
Never grep the repo to answer a state question. If this doesn't answer, the door is down → open
the Door icon (viewer/door_open.vbs) — it resurrects from fully cold.
The HUD is the same truth as a glance surface: Ctrl+Shift+H (it is a native widget, not
a webpage — there is no URL that shows it).
1. WHAT ONLY YOU CAN DO (the agent is forbidden — G-PA)
| Action | Why it's yours |
|---|---|
| Type stream keys + passphrase | An agent must never handle a key. |
| Pick the PC webcam device | The Bind button; the agent can't know which hardware you want. |
| Unmute the mic before a talk cut | All cams + mic boot muted (talent-hot policy). |
| Fill the broadcast metadata | showTitle / segment / presenter / guest / dateline / kicker / rundown. |
Toggle MUSIC ON AIR if you go off DMCA-safe programming |
Default ON per your owned/licensed policy. |
Type CONFIRM to go live |
Gate G-PA. No agent ever types it. |
Rule the colony_on_program fence |
See §6. Nobody else can decide it. |
2. COLD START (nothing is running)
- Double-click the Door icon on the desktop (or
viewer/door_open.vbs). - In the Door (
http://127.0.0.1:8090/door), press ONE KEY (open-all). - Wait until
curl http://127.0.0.1:8090/api/statusshowsstack: UP.
What comes back by itself after a reboot: the Door + healer, Gaia, the HUD (service + widget). The broadcast stack comes back via ONE KEY.
Never hand-launch OBS. Never force-kill OBS. Only
studio_up.ps1launches it (correct working dir); a force-kill leaves a crash sentinel and the next start comes up in Safe Mode with no websocket. Close it gracefully or not at all.
2a. FIRST-TIME LOCAL SURFACE SETUP (once per hardware change)
Command center → Camera roles panel:
- Pick your webcam in the "PC cam" dropdown → click Bind. The
PC cam:pill turns green. (Persists across rebuilds viaruntime/camhost.json.) - Unmute MicHost using the voice buttons when you're about to talk. All cams + mic boot muted by default (talent-hot policy — no unattended mic on air, ever).
Command center → Broadcast metadata panel:
- Fill showTitle / presenter / kicker / dateline (all optional; absent fields render UNKNOWN in overlays, never fabricated).
- If you want a STATION BUG on program, set text + corner + color + tick ON.
Command center → Music panel:
- Confirm MUSIC ON AIR is ON (default per your DMCA policy — full on-air, owned/licensed). If you're airing on a strict platform for a segment, toggle it OFF for that segment.
2b. THE OFF-AIR / SHUTDOWN / REBOOT / BRING-BACK-UP PATH (verbs only, no scripts)
Every step here is a UI button or a single API call. Nothing to type in a shell.
Off-air:
- Console → OFF AIR button. (Or
POST /api/offair.) One click, never blocked.
Disarm fan-out:
- Console → Streaming Endpoints → DISARM. Or HUD → DISARM. Or
POST /api/endpoints {action:"pin-disarm"}.
Close the studio (graceful — no force-kill, no crash sentinel):
- Door (
http://127.0.0.1:8090/door) → CLOSE ALL (graceful) button. This closes OBS + MediaMTX- overlays + console + publisher through the Door's own state machine; Door + HUD + Gaia stay up (the 3 always-on surfaces, "never in close-all").
Reboot:
- Windows Start → Restart. This is the only OS-level action; nothing here should own the reboot because nothing here should be that trusted.
After the reboot (bring-back-up):
- Log in. Door auto-opens on your desktop (per-user Startup
.vbs). HUD widget and Gaia come back on their own. HUD service (UNI-HUD, SCM auto-start) is already running. - Door → 🔑 ONE KEY — OPEN ALL button. The studio comes up in order: LAN cert trust refreshes, OBS launches with the UNI profile/collection, MediaMTX starts, overlays start, publisher starts, console starts, colony + glass windows open.
- Wait until the Door shows
stack=UP(or console → check status). - Console → PREFLIGHT — render + verify EVERYTHING button. Judges pixels, not process existence. If any scene is black, it says so BEFORE you go live.
- Console → Streaming Endpoints → 📥 IMPORT from streaming.txt button. Reads
~/Desktop/streaming.txtserver-side, encrypts, wraps your PIN. Response shows only masked keys. (No re-typing of keys, ever.) - HUD → PIN → ARM. Or console → FAN-OUT ON.
- Console → type CONFIRM → GO LIVE. Cut to a scene. Speak.
3. SET UP THE KEYS — the SAFE IMPORT (new 2026-07-17)
The agent never holds a stream key. Put them in a plaintext file the SERVER reads directly; the agent triggers the import but never sees the contents.
On your Desktop, create
streaming.txt:# streaming.txt — the SERVER reads this. Delete after import. passphrase: <your long AES-256-GCM passphrase — REQUIRED. No backdoor: lose it, keys are gone.> pin: <4-8 digit PIN — OPTIONAL, wraps the passphrase for one-click ARM> # Endpoints, one per line. Pipe-separated OR JSON: YouTube #1 | rtmp://a.rtmp.youtube.com/live2/ | live_yourkeyhere Twitch | rtmp://live.twitch.tv/app/ | live_yourkeyhere {"name":"YouTube backup","url":"rtmp://a.rtmp.youtube.com/live2/","key":"live_backup"}The same platform can appear more than once (name is the key: "YouTube #1" / "YouTube #2"). Comments (
#) and blank lines are ignored.Say "import" — the server reads
~\Desktop\streaming.txt, encrypts straight intoendpoints.enc(AES-256-GCM), wraps the PIN, and returns only masked keys.DELETE
streaming.txt— plaintext keys should not linger. The encrypted store on disk is what persists.
Alternative (classic path if you'd rather type in the browser): Console → Streaming Endpoints panel → paste keys, pick a passphrase → SAVE (encrypt) → SETPIN. Order matters — SAVE before SETPIN.
Risk you already accepted: a short PIN is weaker than the passphrase. Accepted because a leaked stream key only lets someone hijack the channel (rotate it in 30s) — it never exposes data.
4. ARM THE FAN-OUT (every time — it does not survive a reboot)
HUD (Ctrl+Shift+H) or the console: type the PIN → ARM.
Then confirm on the HUD's MIXER strip: EGRESS readers should equal your enabled endpoint count.
PROVEN GOTCHA: the ARM does not survive a reboot or a command-center crash. The
.encfiles do survive — the in-memory unlock does not (command_center.cjs:51 epMem). After any reboot it is one PIN click, never a re-entry of keys.This is correct fail-closed design, not a bug: no unattended process may resurrect key-holding egress. Do not "fix" it by persisting the passphrase.
4a. THE AIR ALARM — you can now step away (new 2026-07-17)
The HUD widget now carries an off-monitor alarm. It is silent unless you are measurably on the air — it does nothing during setup, off-air, or the normal ARM-before-CONFIRM window. Once you are streaming, if the world goes dark it flashes the taskbar, sounds, and pops a tray balloon even if you are not looking at the screen. Three things trip it:
- EGRESS COLLAPSE — live, but nobody is pulling the program for 30s (a pusher died / ingest dropped).
- KEY REJECTED — the ingest is publishing but a platform is dropping it (check that key).
- BLIND — the HUD lost the snapshot while you were on the air.
A red banner appears at the very top of the HUD with an ACK button per alarm. ACK silences the SOUND for 10 minutes — it does not clear the red banner (that stays until the fault clears), and it never disarms your fan-out or touches GO LIVE. The alarm only warns; every action stays yours.
5. RUN THE BROADCAST TEST
POST http://127.0.0.1:8098/api/broadcast_test (button in the command center)
GET same path = live progress
Fan-out must already be ARMED or stage 4 fails by design (readers >= 1 is the definition of
on-air). Takes ~3 minutes.
| Stage | What it proves |
|---|---|
| 1 PREFLIGHT | OBS + MediaMTX + overlays reachable |
| 2 ENCODER | stream started, bytes climbing, frames advancing |
| 3 SEEN SWEEP | every scene's PIXELS — judged only where content is present |
| 4 CAMERAS + FANOUT | public egress: readers sampled twice, 6s apart |
| 5 PARK | the studio is put back the way it was found |
Proven 2026-07-16 (4 keyless rehearsals): stage 3 PASS (15 rendered / 0 black / 14 skipped),
stage 4 FAIL on no readers (correct with no keys), go=NO-GO. The test can both pass and fail —
it is no longer theatre. It caught a real black scene (WEB pointed at the dead chip IP) that the old
byte-count check passed.
⚠️ THE TEST CANNOT PROVE YOU ARE ON THE AIR
Stage 4 measures local MediaMTX readers — that an ffmpeg is copying the program out of this box. It cannot see whether YouTube/Twitch accepted it. Confirm public air on the platform dashboard, every time. If a key is rejected, the pusher flaps (attach → refused → die → respawn ~3s); stage 4's two-sample check calls that UNSTABLE — that message means check the key.
6. GO LIVE
- You type
CONFIRMand press GO LIVE. (G-PA. Never an agent.) - Cut COLONY. It is the source verifiably rendering (99.9% non-black, measured).
Music scene picks (2026-07-16): if you want a dedicated music segment, cut MUSIC_HOUR
(cover full frame + progress + up-next + store URLs). For a talk over a track, cut MUSIC_CARD
(you on the left, cover card on the right). ShowRadio is a session-pinned /radio MP3 stream —
you never manage the URL; it resolves at bring-up from the registry. See §11 for the
music-service story.
3. Confirm on the platform dashboard.
Scene guidance, measured 2026-07-16:
- ✅ COLONY 99.9% · OVERLOOK 88.6% · DUAL_WORLD 59.9% · COLONY_SIDE 44.5% · GLASS_OS 39.0% · WEB 38.7% · BARS_TONE 81.7%
- ⏭️ Every camera scene (CAM_A/CAM_B/GRID/TRIO/DUAL_AB/DESK/SHARE/…) is dark because no camera is publishing — not broken, just unconnected.
- ❌ Do not rebuild the stage before a show. A
studio_stage.cjsrebuild re-rolls the WGC dice oncap_colony/cap_overlook— the two sources that currently work.
THE FENCE — you must rule on this before the cut
forage-pureworld-graduation is PENDING, so colony_on_program is live-BLOCKED — but the
fence is display-only; no code enforces it, and the test cuts COLONY to program. Decide which
reading binds:
- (a) the camera may cut; only on-air life/awareness claims are fenced, or
- (b) the scene stays off program until PASS.
Don't let a default program scene decide it for you.
DO NOT SAY ON AIR
"Six UNIs are alive." verify_colony.cjs FAILs (RCON isn't LAN-published), so colony_count=6
has one source and zero corroboration — the Lab Protocol requires two. It blocks no broadcast
(the colony is a picture, not a claim). It hard-blocks the claim.
7. STAYING LIVE — read before a long run
A 4-hour run is NOT underwritten. Attend it, or don't do it. Stated plainly:
| Risk | What you must know |
|---|---|
| Black picture | OBS WGC window-capture is a documented dice-roll, twice realized. Detection exists; automatic recovery does not. The durable fix (cam_bridge.cjs) is not built. |
| A cc crash drops ALL public air | The watchdog restores the process, not the fan-out. Re-ARM needs your PIN → you must be reachable. |
| Supervisors disagree under air | door_healer abstains while streaming; systray_watchdog restarts unconditionally. Know this before hour 3. |
| No soak gate exists | Pre-register studio-soak-4h before a sustained run, as a harness collector — not an LLM session. |
| Chip lease moves | Symptom: colony camera + producer go unreachable together while the chip is fine. Check the DHCP lease before diagnosing the studio. |
8. OFF AIR / EMERGENCY
- OFF AIR — in the command center. Always one click. Never gated behind a code.
- DISARM — HUD or console. No PIN required (stopping is never gated).
- G-STOP — ⚠️ has never been human-fired. Worth 60 seconds of rehearsal before a public run.
- Close the studio — the Door's close-all (graceful). Never force-kill OBS.
9. WHEN SOMETHING LOOKS WRONG
| Symptom | First move |
|---|---|
| Anything at all | curl http://127.0.0.1:8090/api/status — it names the problem |
| Colony cam and producer both dead, chip fine | The chip's DHCP lease moved. Not the studio. |
| "OFF AIR" but you think you're live | Check for SYNCING — that means not measured, not off. The HUD never fabricates OFF. |
| A scene is black | Was its input connected? The test skips absent inputs and only fails a scene whose content is present. |
| Gate ladder / receipts | docs/GATES.md, docs/receipts/ |
11. MUSIC SERVICE (fully integrated 2026-07-16)
The service — The Collected Packages Radio — runs on the chip at [redacted: internal-hostname]:8687
(currently [redacted: private-address]:8687 until the other agent's DNS work lands). It exposes /radio
(endless MP3), /api/nowplaying?session=<sid> (metadata), /api/telemetry (listener count),
/api/tracks, /art/<file>, /lyrics/<file>.md, /healthz.
How the studio consumes it (all automatic — nothing to type):
| Piece | What it does |
|---|---|
viewer/infra_registry.json — music service |
Declares the name so any consumer (including CEF) can be given a live IP via host_resolve. |
viewer/command_center.cjs — music poller |
Every 5s: GET /api/nowplaying + /api/telemetry, mirrors into spool.nowPlaying. Overlays read the spool — they never hit the music service directly. |
viewer/studio_stage.cjs — ShowRadio input |
ffmpeg_source on /radio?session=obs-studio-thinker. URL resolved from [redacted: internal-hostname] at bring-up. |
Scenes — MUSIC_HOUR / MUSIC_CARD / COLONY_SIDE_MUSIC |
Full cover / talk-with-card / colony-with-card. Cut them like any other scene. |
Fallback — STANDBY_OFFLINE |
Local file bed when the music service is unreachable. Honest degrade. |
Overlays — ovl_nowplaying / ovl_musicbug / ovl_music_hero / ovl_lyrics |
Lower-third strip / corner bug / full hero / side lyrics panel. All auto-driven; no operator config needed. |
musicOnAir gate |
Defaults ON per your DMCA policy. Toggle in the Music panel. When false, the music scenes still exist but the operator can refuse to cut them on program. |
Honest failure mode: if the music service is unreachable, nowPlaying records err:"…",
overlays render "unbound" instead of a stale/fabricated payload, and the fallback STANDBY_OFFLINE
carries the local file bed if you park there. No black music screen.
12. WHAT THE HUD / COMMAND CENTER TELLS YOU AT A GLANCE (2026-07-16)
Every field on the command center now traces to a real upstream — none are hardcoded literals:
| Panel | Field | Source |
|---|---|---|
| Camera roles | PC cam: pill |
OBS GetInputSettings on CamHost → resolved to a device name |
| MIC | LIVE / MUTED / unknown | OBS event mirror audioMute |
| Health | SIGHT: GO/HOLD/BLOCK pill |
Derived from health checks + pcBound + micOk |
| Health | one row per fan-out endpoint | Each armed pusher's respawn count + rate |
| Colony | verdict / driver / count / tps / frame / star | 5s poller of colony:4200/producer/health |
| Music | title / artist / album / cover / progress / next / listeners | 5s poller of music:8687/api/nowplaying + /api/telemetry |
| Metadata | showTitle / segment / presenter / guest / dateline / kicker / rundown | Your input, persisted in spool.meta |
Freshness discipline: panels flip to "STALE" when their updatedUtcExternal is >20s old.
A CC self-heartbeat cannot make a stalled panel look fresh — that was fixed 2026-07-16.
10. THE LAWS (never violated, by anyone)
- Reads never actuate — a GET never spawns a process.
- OBS is launched only by
studio_up.ps1. Never hand-launch. Never force-kill. - One bring-up at a time (OS mutex
UNI_STUDIO_UP). - Never private — the broadcast test runs the one live path; stage 4 needs real public egress.
- Science is out of scope for the studio: don't touch
lib/sp/**. - Remote doors (world/colony/colonycam/relay/producer) are observe-only.
- Go-live is human-typed (G-PA). The agent never types CONFIRM, never holds a key.
sha256 3998a5e86a1d0842 — of the original file, so what was ingested stays checkable.
Plain — written for this website, not the source document
This is the one page a person needs to run a live show, written to be printed. It says at the top that what is on it was tried live rather than asserted, and that where something is unproven it says so.
It begins with a single call that answers what state everything is in, and a rule never to go searching through files for that answer.
Then it lists what only the human may do, and the list is short and firm: handle the keys, choose the camera, unmute the microphone, and type the word that puts the show on air. No agent does any of those.
The rest is a cold start, a first-time setup, the shutdown path, arming the outward push, an alarm that lets the operator step away, a broadcast test, and going live.
The honest sections are the best part. A long unattended run is stated as not underwritten. A test is stated as unable to prove you are actually on the air.
Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 3998a5e86a1d0842
Clear — written for this website, not the source document
This is the operator's run sheet, written to be printed and used while running a live show. Its opening line says everything on it was tried live rather than asserted, that where something is unproven it says so, and it names the recorded runs behind it. It starts with one call that answers what state everything is in, and a rule: never go searching through files to answer a state question. It also points at a glance surface and notes that it is a native widget rather than a page.
The next section lists what only the human may do, and each row gives the reason. Typing the keys, because an agent must never handle one. Choosing the camera hardware. Unmuting the microphone, because everything boots muted by policy. Filling in the show metadata. Typing the word that puts the show on air. And ruling on one contested limit nobody else can decide.
A cold-start section gives three steps and states which surfaces come back on their own after a restart. A warning follows about never launching or force-killing the broadcast application by hand, with the consequence spelled out. Later sections cover first-time hardware setup, then an off-air, shutdown and bring-back-up path expressed entirely as buttons rather than commands to type, with three surfaces named as always-on.
A section on the keys describes a safe import: they go into a plain file the server reads directly, so an agent triggers the import but never sees the contents, and the file is deleted afterwards. A knowingly accepted risk is stated rather than hidden.
Arming the outward push is described as something to do every time, because it deliberately does not survive a restart. The page insists that this is correct fail-closed design rather than a defect, and tells the reader not to fix it by storing the passphrase.
An alarm section explains an off-monitor warning that stays silent unless you are measurably on air, and names the three faults that trip it. It is careful about its limits: acknowledging it silences the sound for a while, does not clear the banner, and never disarms anything.
The broadcast test is described stage by stage with what each stage shows. Two honest notes stand out. One records that the test both passed and failed in rehearsal, and that it caught a real black scene an older check had passed, so it is no longer theatre. The other, set apart in its own box, states that the test cannot prove you are on the air at all. It measures whether something is copying the programme out of this machine, not whether any platform accepted it, so the platform's own dashboard must be checked every time.
Going live is three steps, with measured guidance on which scenes actually render and a warning not to rebuild the stage first. Two limits follow. One is a contested reading the operator must rule on, stated as display-only with no code enforcing it. The other bans a specific phrase from the air, because the number behind it has one source and no corroboration.
The staying-live section is the bluntest. A long run is stated as not underwritten, and a table of risks follows. It includes a documented picture failure whose automatic recovery does not exist, and a crash that drops all outward air and needs the operator's code to restore. It also includes two supervisors that disagree while on air, and the absence of any soak gate.
The final sections cover off-air and emergency actions, a symptom-to-first-move table, and the music service.
Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 3998a5e86a1d0842