Wiki · Evidence & Verdicts
Nursery fenced RED — nursery(0.3, 0.2) + stocked prey: **FALSIFIED** (2026-07-19)
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-seven dated pages: receipts, pre-registrations, handoffs, validation records and review verdicts. A receipt is written at the moment a piece of work was checked. It names what was claimed, the commit and the seed, what was actually run, and the outcome in one of a small set of controlled words. Then it names what the work did not achieve. That last part is what makes it a receipt rather than an announcement. A pre-registration is the same discipline run in advance: the conditions that would count as a pass and the conditions that would falsify the claim are written down before the run, so neither can be adjusted once the numbers arrive.
That is why so many small dated stubs are an audit trail rather than noise. No one of them is meant to be a good read. The value is in the sequence and in the dates, because you can watch a prediction be registered, then the run happen, then the verdict land — sometimes against the prediction. Pages here record a falsified result, a rejected fix, a retracted overclaim, and a green receipt that turned out not to be reproducible from the commit that carried it. A record that carried only successes would be worth a good deal less than this one.
A gentle way in is to read a pre-registration first, so the shape becomes familiar, then a result page, then one of the corrections. This section sits off the main navigation on purpose: it is the record you check the rest of the site against, not the place to begin.
What it is not: documentation, and not a summary. Nothing here has been tidied in hindsight. Every entry reads as of its date, a later entry may overturn an earlier one, and the presence of a page is not a claim that its result stood.
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.
Track: science-track, fenced. Streamed colony untouched throughout (5 UNIs, driver=producer,
count gate clean). No lib/sp/** changed. No FE math changed.
Pre-registration: written into runs/nursery_fenced_red.exs before the run (committed d5bbddb).
Verdict: FALSIFIED — F1 and F3 both fired.
CLAIM FENCE: every store, count and pb mass below is a MODEL VARIABLE. Survival is in-world persistence. ZERO evidential weight for awareness, experience or life.
1. Why this run existed
The prior fenced observation of homeostat_colony_forage(0.3) (kin 80, prey-unstocked) died at
t=150s: 4 hunts, mean prey distance 45.2 blocks, zero kills, 29 futile eat attempts against
inv_food=0. This run restored the two things the surviving 2026-07-12 RED had and that soak lacked:
the developmental runway (metab_scale 0.2) and stocked prey. It was the most favourable
configuration available — more favourable than anything the streamed colony can offer.
2. Pre-registered gates (verbatim, written before the run)
PASS (all four):
P1 all N bots ALIVE at end (no hunger death)
P2 >= 1 world-earned kill (killed=true)
P3 inv_food > 0 on at least one probe
P4 pb[atk->food] moves OFF its 0.25 start on at least one bot
FALSIFIES (any one):
F1 any bot dies of hunger
F2 zero kills across the arm
F3 pb[atk->food] stays flat at 0.25 on every bot
3. Result
| gate | outcome |
|---|---|
| P1 all alive | FAIL — UNI-81-1 died of hunger at t=750s |
| P2 ≥1 kill | PASS — 3 kills |
P3 inv_food > 0 |
PASS — food=1 held by UNI-81-2 and UNI-81-3 |
| P4 pb off 0.25 | FAIL — exactly 0.25 on all three, whole run |
| F1 hunger death | FALSIFIED |
| F2 zero kills | clear (3 kills) |
| F3 pb flat on every bot | FALSIFIED |
Two falsifiers fired. Not a PASS. No deploy follows from this run.
4. What DID work — stated at its true size
The forage loop closed behaviourally. UNI-81-2 went kill → collect → eat → energy 1.0,
world-earned, zero gives. First self-sustaining feeding observed in this line of work.
Changing ONE variable (prey reachability) against the identical motor code that had logged
2449/2449 failures on the streamed colony produced kills immediately. This independently vindicates
the lab-team REJECT of the proposed hunt fix
(docs/receipts/hunt_fix_lab_team_review_2026-07-19.md): the motor was never the defect.
5. Why it still failed — the geometry, quantified
| measure | value (final, t=1200s) |
|---|---|
| Hunts / prey encounters | 31 |
Aborted at struck=0 |
24 (77%) |
| Kills | 3 (9.7% conversion) |
| Prey encounter distance | min 2.2 · median 15.6 · max 42.6 |
| Pursuit abort threshold | 11 |
Accounting note, flagged rather than smoothed: grep -c killed=true returns 3, while the
struck=N killed=true breakdown accounts for only 2 (struck=6, struck=10). The third kill is
not attributable to a specific strike count — most likely stdout/stderr interleaving in
podman logs splitting a line. The direct count (3) is used above; the discrepancy is recorded
rather than resolved.
Container's own verdict block:
== PRE-REGISTERED VERDICT ==
P1 all alive at end .......... FAIL (2/3)
P3 inv_food > 0 seen ......... PASS
P4 pb[atk->food] moved ....... FAIL
F1 a bot died ................ FALSIFIED
The median encounter distance (15.6) sits ABOVE the pursuit ceiling (11) even in a stocked
environment. Stocking places prey at ~2 blocks, but animals wander, and by the time the brain
selects :attack the target has drifted out of range. Restocking every 2.5 min does not hold them
inside the window. collectDrops fired 289 times — collection is not the broken link.
Survival was therefore decided by geometry, not policy:
| bot | attacks | food | energy @600s | outcome |
|---|---|---|---|---|
| UNI-81-2 | 1 | 1 | 1.0 | survived |
| UNI-81-3 | 7 | 1 | 0.995 | survived |
| UNI-81-1 | 18 | 0 | 0.174 | died t=750s |
UNI-81-1 attacked the MOST and converted nothing — it lost a ~10% geometry lottery eighteen times.
A lineage whose survival depends on winning that lottery has not closed the forage loop; two of its
three members were dealt a lucky hand.
6. TWO INSTRUMENTATION FINDINGS — these reach beyond this run
6a. The atk_food probe measures the wrong axis
SP.Brain.Learn.maybe_learn_b/1 updates pb[u][j] += qs · lr · qs_prev[j] — pb[u] is a
state→state transition tensor. The probe (atk_food_mass, inherited verbatim from
runs/forage_red.exs) reads index 3 of each column as "the has_food OUTCOME". That index is a
hidden state, not an outcome. Because the inventory factor is no: 4, ns: 4 the dimensions
coincide, so it never errors — it silently returns a quantity that is not what it is labelled.
This is the pre-registered REQUIRED mechanism metric of the forage RED
(docs/receipts/forage_red_preregistration.md:27 — "atk_food (learned pb[:attack]→has_food
mass) ON > OFF (the mechanism — REQUIRED for PASS)"). If that reading is right, the forage RED's
load-bearing metric measures state-transition mass rather than outcome likelihood.
6b. The inventory factor is denied the informative prior its job requires
:inventory %{name: :inventory, organ: :chemotaction, no: 4, factor: :inventory, ns: 4}
-> no init_a, no pb_seed
:aim_state … :motion_state init_a: :diagonal
:energy, :satiety init_a: :diagonal, pb_seed: 50.0
With A uninformative the inventory posterior never concentrates, so qs ≈ [.25,.25,.25,.25] and the
B update adds equal mass to every entry of every column — pinning the normalized ratio at exactly
1/ns = 0.25 forever. That is precisely what was measured, to 4 dp, across two kills and a full
energy recovery. Learning ran; it carried no information.
Caveat held: learn_a: true, so A does learn and could eventually concentrate. Over 20 minutes
and 1–10 attacks it plainly had not. The honest claim is structurally disadvantaged, not
impossible — but the factor asked to carry attack→has_food is the one denied the treatment the
metabolism and motor factors received.
Why it matters: emergent_forage_cure1.md step 4 — "a world-earned kill lets Dirichlet B learn
attack→has_food" — is the mechanism claim under the open forage-pureworld-graduation gate. On this
reading the factor carrying that contingency starts uninformative and the registered metric reads
the wrong axis.
Owner: this is science-track. It belongs to the science agent and /lab-team-review. No
lib/sp/** change was made on the strength of it, and none should be without a MERGED VERDICT.
7. Bearing on "are we ready to deploy the more advanced UNIs"
Not on this evidence. The binding constraint is not the genome — the organs work, hunger fires, the runway holds energy, kills convert to calories. The constraint is that the pursuit ceiling sits below the median encounter distance, so the loop is geometry-limited before it is ever brain-limited.
A PASS here would in any case have been conditional on stocking and would not have licensed an unstocked deploy to the streamed colony (prey there measured 24.7–48.6 blocks). That condition was written into the pre-registration before the run precisely so it could not be quietly dropped afterward. It did not pass, so the question is moot — but the fence stands either way.
8. Fencing honoured
kin 81 (guarded against collision with streamed 1/2/3, forage RED 72/73, prior soak 80 — a duplicate
login would kick live UNIs off air) · /tmp memory root, never /app/runs/colony · UNI_AUTOSTART=0
· --sname unursery, never uni · ZERO-GIVE guard raising on give|item|clear|xp (real prey summon
is permitted and is not a give — the animal must still be found, struck, killed, collected, eaten).
sha256 ee5750f06d6fad14 — of the original file, so what was ingested stays checkable.
Plain — written for this website, not the source document
A run that was falsified, and the page says so in its own title. Two of the failure conditions written down beforehand fired: one body starved, and the quantity that was supposed to move stayed exactly where it started on every body. What did work is stated at its true size, because one body did complete the whole feeding loop with nothing given to it. The reason it still failed is geometry: the animals were typically further away than the pursuit will go. Two instrumentation findings reach well beyond this run, and both are about a model variable measuring something other than its label.
Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is ee5750f06d6fad14
Clear — written for this website, not the source document
A fenced run with a falsified verdict, written into the script before it ran and committed beforehand. A claim fence — a stated limit on what may be said — says every store and count is a model variable, and that survival here means persistence in the world and nothing more.
Why it existed: a previous observation died early with no kills, so this run restored the two things a surviving earlier run had, a reduced metabolic pressure and stocked prey. That made it the most favourable configuration available, more favourable than anything the streamed colony can offer.
The gates are quoted exactly as written before the run: four conditions to pass and three that would falsify. The results table then shows two passes, two failures, and two of the conditions that would show it wrong fired, and the conclusion is drawn in one line. Not a pass, and no deployment follows from it.
What did work is stated at its true size rather than inflated. One body went from kill to collect to eat and back to full energy, world-earned with nothing given, described as the first self-sustaining feeding in this line of work. And changing one variable, against the identical code that had failed thousands of times elsewhere, produced kills immediately, which independently supports an earlier review's rejection of a proposed fix: the motor was never the defect.
Why it still failed is quantified as geometry. Most encounters aborted before a strike, the median encounter distance sits above the pursuit ceiling even in a stocked environment, and the animals wander out of range before the brain selects the action. Collection is ruled out as the broken link by its own count. A small discrepancy between two ways of counting kills is flagged rather than smoothed, with the likely cause named and the difference left recorded rather than resolved.
The per-body table is the sharpest thing on the page. The body that attacked by far the most converted nothing and died, while two others survived on one conversion each. The conclusion drawn is that survival was decided by a lottery rather than by policy, and that a lineage depending on winning that lottery has not closed the loop.
Then two instrumentation findings that reach past this run. First, the probe used as the required mechanism metric reads an index that is a hidden state rather than an outcome. Because two dimensions happen to coincide it never errors, and silently returns a quantity that is not what its label says. Second, the factor asked to carry the contingency is denied the informative starting point that neighbouring factors were given, so its belief never concentrates and the update adds equal mass everywhere, pinning the measured ratio exactly where it was found. The caveat is held: learning is structurally disadvantaged rather than impossible, and over this window it plainly had not happened.
The closing sections say what this does and does not bear on. The binding constraint is not the genome, because the loop is limited by geometry before it is ever limited by the brain. And even a pass would have been conditional on stocking, a condition written into the pre-registration before the run precisely so it could not be dropped afterwards. A fencing section lists the precautions that kept the live colony out of harm's way throughout.
Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is ee5750f06d6fad14