Wiki · The Colony & the Method
Rung-1 typed spec — graded per-subsystem viability + work/fatigue (cures 1+2+3)
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.
The first buildable rung of
generative_model_depth.md(owner chose the deepest first rung). Design + offline only; the live paired RED needs owner go-ahead (live-stream guard). One opt-in organ:homeostat(absent fromdefault/0⇒ byte-identical). Motivated by the measured death:metabolism_regulation_gate_v2.md(FALSIFIES — the flat fixed-setpoint dies 6/12, no reserve). STEP 0 blocker (motor_config by name) = DONE (1c49e62).
StateSpace — the graded viability factors (all L1, mean-field, per-factor A/B/C/D)
Owner gradient, ns = no = 6: {0 critical · 1 depleted · 2 tired · 3 nominal · 4 sated · 5 surplus}.
init_a: :diagonal (self-sensing — breaks the no==ns uniform-A degeneracy). All under the :homeostat organ.
| factor | subsystem | B (transition) | body store | world coupling |
|---|---|---|---|---|
energy_reserve |
organism ATP | :emptying (drain) / :filling on :eat |
energy |
eat refill, upkeep+work drain |
gut_satiety |
gut buffer | :filling on :eat, :emptying via gut→energy transfer |
gut |
food in, digestion out |
soma_integrity |
health | :emptying on damage / slow :filling |
soma (MC health) |
gated on measured health-channel variance |
muscle_fatigue |
per-limb (arm first) | :fatiguing (work→spent, rest→recover, two-signed action-partitioned) |
arm_fatigue |
mine/attack accrue; → Motor.pi |
pb_seed ≈ 50 on each B (durable point-estimate; W_b→0 faster, not a term that erases). Semantics of
muscle_fatigue bins run the SAME gradient but read as fresh(5)…spent(0) (surplus=fresh, critical=spent).
PreferenceModel — interior-peak reserve-holding C (the fix)
drive_c(:reserve, 6) = [-8.0, -3.0, -1.0, +1.0, +2.5, +2.0] — keyed by the heritable drive_shape gene
(default :setpoint ⇒ byte-identical; :reserve is opt-in). Positive gradient nominal→sated (refill pressure
returns the instant belief slips below sated) with surplus(+2.0) < sated(+2.5) ⇒ argmax at an INTERIOR
buffer bin, never the ceiling: bounded, non-hoarding, non-saturable-at-the-edge. muscle_fatigue C prefers
fresh/nominal (a rest pull), same interior-peak discipline. NOT a monotone ramp (that IS the saturable foil
= reward-smuggling) and NOT the flat setpoint (that is the death). Anticipation is FREE from the existing
depth-5 Plan rollout applying the emptying-B forward under this C — no new EFE term.
Coupling / seams (each named; organ-gated, never the default path)
- C routing: replace the hardcoded
[:energy,:satiety]dispatch ingenome.ex card/1with a name→shape map so each homeostat factor gets its interior-peak/:reserveC; every other modality keeps curriculum C. Default genome has no homeostat factors ⇒ identicalDesigner.compile. - Body stores + attribution:
metabolism.exgains per-subsystem stores advanced by wall-clockdtwith acted-subsystem attribution (mine/attack→arm fatigue+arm-ATP; move→legs;@upkeepon core every tick incl.:noop).gut→energydigestion transfer each tick. All in the BODY store →felt_*observation → belief; never a policy logit (no scalar-per-action). - Fatigue→motor:
muscle_fatiguebelief lowersMotor.piloop-gain (fresh 1.0 → spent ~0.35) → weaker servo → degraded aim reafference.:motor_cortex-gated (mining consequence); honest scope (leg fatigue is cost+C only until a locomotion servo exists). - Timescales: fatigue on a faster clock (~3 s) than energy (~8 s) — the first per-factor timescale split.
PrecisionSchedule
No affect→precision in rung-1 (that is cure-4). γ/γ_m stay as-is. (Keeps rung-1 attributable: viability + fatigue only.)
Invariant anchors (each a REJECT-on-fail property test, run BEFORE any live deploy)
- Byte-identity:
default/0depth-5 Planmad < 1e-12vs the frozen golden; AND per-seam over every touched non-default lineage (:metabolism,:motor_cortex,:sight_cortex, WS-B slow_context). Gate every step-path edit on:homeostat in active_organs, notl2==nil. - Action-clone-invariance (extended): clone a drive-action's full B stack; identical depth-5 Plan values. NEW action-history-invariance: permuting realised action history at fixed beliefs must leave every C / demand estimate unchanged (any demand estimate is a fn of a hidden-state posterior only — no action-tally→C).
- No scalar-per-action: every cost enters via that action's own B column → felt obs → belief.
- Monotonic decay: info terms use the floored
wnormkernel ⇒ W→0 as counts→∞, C- and state-independent. - No compounding: transient γ/lr re-based each tick, stores→beliefs round-trip clean, C restored on persist.
- Do NOT lift
@factor_capglobally, re-derive@l2_period, or use the positional motor index (fixed).
Paired RED (pre-registered; per-mechanism ablation so a bundled win stays attributable)
- Arms (one cure-bundle, but ablation-decomposed): FULL (reserve C + per-subsystem + fatigue) vs the
:setpointbaseline vs the:saturablefoil; PLUS mechanism-ablation arms — C-only (reserve, no fatigue), fatigue-inefficiency-only, fatigue-pi-only — so any survival/pacing delta is attributable to a NAMED coupling. - PASS (all): (a) N≥12 survival ≥ 11/12 (vs measured 6/12); (b)
allostasis_index(believed reserve at eat-onset,:reserve−:setpoint) CI-excludes-0 positive; (c) two-ended satiation — fights harder near critical in a scarce world AND stops eating / does not hoard in a rich world; (d) beats BOTH:setpointand:saturable, survival-count CI excluding each; (e) cross-subsystem dissociation Δ CI-excludes-0 (energy and gut beliefs measurably decouple — the 2nd factor is not renaming bins); (f)fatigue_pacing_index= corr(believed fatigue, P(non-arm action | just-mined)) > 0 for FULL, ≈ 0 for pi-ablated, AND MotorControl target_error rises with fatigue within a bout, falls after rest. - Per-subsystem SEVERED-LIMB falsifier (each factor independently): a twin whose factor drains + forms
beliefs + emits C but whose world-coupling is CUT must, on the LIVE world, differ (KS/CI) from intact; if
indistinguishable it is a preference-hack with no world limb ⇒ reject/rewire THAT factor. Per-limb F4: an
all-
:nooptwin must RECOVER while an actor ACCRUES (else fatigue-B advances with no action-consequence). - FALSIFIES / REJECT if: survival not improved; OR indistinguishable from
:saturable(just "eat more"); OR rests/hoards into starvation (over-brake); OR dissociation Δ includes 0 (dead depth — collapse to Cure 1); OR any invariant anchor trips (regardless of survival).
ClaimFence
Every reserve/felt/viability/fatigue float is a MODEL VARIABLE, never a felt state. Passing demonstrates graded self-maintenance / work-rest pacing as BEHAVIOUR only — necessary-not-sufficient, ZERO weight for awareness/life. "The arm gets tired" = a limb-ATP/soreness proxy, never narrated as felt in any stream overlay.
Build order (each step: implement → offline byte-identity + suite green → commit)
- ✅ motor_config by name (
1c49e62). :homeostatorgan + gradedenergy_reservefactor (6-state) +drive_c(:reserve)+ name→shape C routing.- Body: graded
energystore + acted-subsystem attribution; wireenergy_reservefelt obs. - Per-subsystem:
gut_satiety+soma_integrity+ gut→energy transfer. muscle_fatiguefactor + arm attribution +→ Motor.pi.- Paired RED launcher + analyzer (ablation arms, allostasis/dissociation/pacing indices, severed-limb twins).
- Offline invariant gate GREEN + two-ended/dissociation offline pre-checks →
/lab-team-reviewsign → owner go-ahead → live RED.
REVISION 1 — control-arm FE surface (lab-team MERGED VERDICT = SIGN-WITH-CHANGES, 2026-07-11)
The RED control/foil/ablation/severed arms were reviewed by the full 5-persona lab team and signed
SIGN-WITH-CHANGES. This section is the typed model spec + validators follow-on artifact; the paired RED
design is docs/receipts/rung1_graded_viability_RED.md (REVISION 1). All BUILT + suite-green (334/0).
PreferenceModel — pinned control shapes (lib/sp/brain/curriculum.ex, magnitude-matched to :reserve)
| shape | vector | argmax | role |
|---|---|---|---|
:reserve (built) |
[-8.0,-3.0,-1.0,1.0,2.5,2.0] |
bin 4 (interior) | FULL energy/gut treatment |
:saturable6 |
[-8.0,-3.0,-1.0,1.0,2.0,2.5] |
bin 5 (ceiling) | eat-to-full foil (= :reserve w/ bins 4,5 swapped ⇒ exact magnitude parity) |
:setpoint6 |
[-8.0,-1.0,2.5,2.5,-1.0,-8.0] |
bins 2,3 (symmetric) | death-shape baseline (disprefers surplus ⇒ thin buffer) |
:fatigue_reserve |
[-8.0,-3.0,-1.0,1.0,2.5,2.0] |
bin 4 | muscle_fatigue own rest-pull (interior peak) |
:soma_monotone |
[-8.0,-4.0,-2.0,0.0,1.0,2.0] |
bin 5 | soma monotone-to-full (fixes the wrong-signed interior-peak) |
All share floor -8.0, peak 2.5, span 10.5 (shape-only; no smuggled precision). FULL (homeostat_l1_phase0)
routes soma→:soma_monotone, fatigue→:fatigue_reserve via drive_shape_by_factor; energy_reserve + gut inherit
the scalar :reserve.
Gated fields (all additive, no-op default ⇒ default genome byte-identical; back-filled via slow_defaults)
drive_shape_by_factor: %{}— name→shape map overriding the scalardrive_shapeper homeostat factor. Read incard/1's drive-C branch only. Empty ⇒ inherit ⇒ byte-identical. The per-factor C routing seam.fatigue_motor_coupling: true— false ⇒agent.expinsmotor_pi = 1.0(K3 ablation / fatigue-efferent severed twin). Read only on the homeostatic step path.severed_limbs: []— factors whose afferent world→store coupling is cut inHomeostat.step/5(a generative-PROCESS edit; the compiled model A/B/C/D/E is byte-identical to the intact twin).
RED arm builders (lib/sp/brain/genome.ex; each flips EXACTLY ONE coupling vs FULL — Lab-Protocol-I)
homeostat_setpoint6 (K1) · homeostat_saturable6 (K1 foil) · homeostat_abl_fatigue_c (K2, fatigue C→:off)
· homeostat_abl_fatigue_pi (K3, pin Motor.pi) · homeostat_severed(limb) (afferent cut; :muscle_fatigue_efferent
= efferent cut).
ValidationAnchors (same-PR invariant gate — test/sp/brain/rung1_red_arms_test.exs, 19/19 + suite 334/0)
- Default depth-5 Plan
mad < 1e-12(existingdecider_byte_identity, unchanged). - Cross-arm single-surface byte-identity: each RED arm's compiled A/B/D identical to FULL; C differs in EXACTLY the named factor (SETPOINT-6/SATURABLE-6 → energy_reserve only; ABL-fatigue-C → muscle_fatigue only; ABL-fatigue-π + severed → C identical to FULL).
- Shape + magnitude parity: setpoint6 symmetric/interior-argmax; saturable6 monotone/ceiling-argmax; soma_monotone monotone-to-full; all share floor/peak/span.
motor_piout of policy logits:MCCodec.encodeinvariant tomotor_piin senses (no:motor_pimodality ⇒ never scored ⇒ no scalar-per-action).- Severed-limb generative-process:
Homeostat.step/5with[]byte-identical tostep/4; a real afferent world-cut when set. - Back-fill / RNG order: the 3 fields via
Map.put_newinslow_defaults; NO newDetdraws inmutate/recombine(existing lineages' draw order preserved). - A6 offline control-validity (
runs/verify_rung1_controls.exs, 3/3): setpoint6 death-prone, saturable6 hoards-deepest, reserve interior between — controls VALID before the live burn.
Ship-gate checklist (ship-gate follow-on artifact — ALL green before owner go-ahead + live burn)
-
/lab-team-reviewMERGED VERDICT = SIGN-WITH-CHANGES (recorded in the RED doc REVISION 1). - Typed spec + validators (this section).
- Paired RED design updated (RED doc REVISION 1: de-bundled arms, PASS-4a/4b split, Δ_dissoc floor, severed KS+TOST, pinned feed schedules, VOID(g′)).
- Same-PR invariant gate green:
mix test test/sp/brain/334/0; new arms test 19/19. - Default byte-identity
mad<1e-12+ action-clone + motor posterior 0.75 intact. - A6 control-validity 3/3;
verify_rung1_step15/5;verify_rung1_dynamics4/4. - Launcher
runs/rung1_red.exs(parse-clean) + analyzerruns/analyze_rung1_red.py(runs) committed. - Owner go-ahead + live-stream guard (separate container / distinct kin 60 / distinct memory dir) — PENDING.
- Live smoke on FULL (embodiment + eats + survives +
c_ok+ no-compounding) before the N=12 burn — PENDING. - Lab-side harness-managed continuous collector committed with the run — PENDING (lab box).
The FE surface is BUILT + signed + offline-green. The remaining unchecked items are the LIVE prerequisites, which require owner go-ahead per the live-stream guard.
sha256 008a4f339ca421c3 — of the original file, so what was ingested stays checkable.
Plain — written for this website, not the source document
This is the first buildable step of a larger depth design: graded per-subsystem viability plus work and fatigue, all behind one opt-in organ so the default configuration is unchanged.
It is motivated by a measured death. A flat preference shape died in half its worlds because it gave no reason to hold a reserve. The fix is a preference whose most preferred point is an interior buffer rather than the ceiling, so refilling pressure returns as soon as belief slips, while stuffing past that point is slightly less attractive.
Four internal factors are named with their transitions, their body stores and their coupling to the world. A fatigue factor lowers the gain of the movement loop, so a tired limb aims worse.
The paired test is decomposed into ablation arms so any win is attributable to a named coupling, and each factor has a severed-limb refuter: cut its link to the world and it must measurably differ. The live run is pending the owner.
Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 008a4f339ca421c3
Clear — written for this website, not the source document
This is the first buildable step of a larger depth design, and the owner chose the deepest rung first. It is design and offline work only; the live paired experiment needs the owner's go-ahead. Everything sits behind one opt-in organ absent from the default configuration, so the default stays byte-identical, and one prerequisite blocker is recorded as already done.
The state space is four graded factors over a six-step gradient from critical to surplus, each seeded so it can sense itself. A table names each factor, its subsystem, how its transitions empty or fill, which body store it reads, and how it couples to the world. One factor runs the same gradient but reads in the opposite sense, from fresh to spent, and the page says so rather than leaving it implicit.
The preference model is the fix. Its shape has a positive gradient up to a high bin and then dips slightly, so the most preferred point is an interior buffer rather than the ceiling. The document is explicit about what it is not: not a monotone ramp, because that is the eat-to-full foil and would be reward smuggled in; and not the flat setpoint, the measured death. It also states that anticipation comes free from the existing deep rollout rather than needing a new term.
The seams are named one by one. How preference routing is generalised from a hardcoded pair to a name-to-shape map. How the body gains per-subsystem stores advanced by elapsed time, with attribution to whichever subsystem acted. How digestion transfers between two stores. How fatigue lowers the gain of the movement loop so a tired limb aims worse, and how fatigue runs on a faster clock than energy, which is the first split between factors. One line recurs: every cost enters through a transition and a felt observation, never through the policy score.
A list of invariant anchors follows, each a test that rejects on failure and runs before any live deployment. They cover identical behaviour when switched off, and a clone test extended with a new history-invariance test requiring that permuting past actions changes nothing. Then the no-scalar-per-action rule, decay of information terms, no compounding of transient values, and three named things not to do.
The paired experiment is registered in advance and deliberately decomposed, with ablation arms so that a bundled win stays attributable to a named coupling. Its conditions require survival above a bar, an earlier onset of eating, and satiation at both ends, so the agent fights harder when scarce and stops when rich. They require beating both the baseline and the foil, and measurable decoupling between two subsystems, so the second factor is not merely renaming bins. A pacing relationship must disappear when the coupling is ablated. Each factor also carries a severed-limb refuter: a twin whose link to the world is cut must measurably differ, and if it does not, that factor is a preference hack with no limb.
A stated limit says that every one of these values is a model variable and never a felt state, and that a tired arm is a proxy and must never be narrated as felt.
A build order and then a revision section follow. The revision records a five-persona review, and the pinned control shapes with their argmax and their role. Then the gated fields that make the arms possible while leaving the default unchanged, the arm builders each flipping exactly one coupling, the anchors that hold them to that, and a ship-gate checklist. The last three items are unticked and named as the live prerequisites awaiting the owner.
Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is 008a4f339ca421c3