Recipe L3

L3 — Organ / Physiological Control (the Cardio-Renal Heart Lab)

proven
proven (Class C; engine ticket Class E 15/15)

Part of the literal UNI Cookbook: one no-backprop active-inference engine, shown across scales. This rung is a developmental SIMULATION, never a person and never a patient. Where this recipe and the claim ledger disagree, the ledger wins. Honest program position: ~2 of 11+ developmental rungs earned.

What you are building. A browser-native organ lab that takes the same discrete POMDP engine you already built at L0–L2 and points it at a reduced Karaaslan cardio-renal generative model — the RSNA → MAP → sodium/volume loop — re-expressed in active-inference language so that a heart attack reads as a failure of the prediction loop (maladaptive priors, miscalibrated precision, a damaged generative process). "Same math, many scales." This is the medical teaching bridge of the ladder; it is not a clinical tool and not a diagnostic instrument.


Ingredients (pantry engines/primitives, called by name)


Method (numbered build steps)

  1. Reduce the reference. Take the Karaaslan long-term cardio-renal model down to the load-bearing RSNA → MAP → sodium/volume loop. This is the generative process the lab will track.

  2. Re-express it on the same engine. Model the loop as a prediction-loop on the single POMDP engine from core.py — homeostasis as prediction-error minimization. Build the lab by duplicating Loop and swapping only the observation/generative model (keep variable names identical so the downstream engine code is reused verbatim; the diff to every untouched page should be exactly one nav line).

  3. Add safe-state handling (engine ticket OAS-710-T3). Build, test-first, the parameter-clamping + labeled-safe-state layer: CARDIO_BOUNDS, a clampState() that clamps all 10 state variables every tick (finite-safe, no NaN), and a labelCardioState() that returns a clinical regime label (hypertensive crisis / decompensated / hypertensive / hypotensive / normal) instead of a raw clamp. Build the inline-JS Canvas viewer (ticket OAS-710-T2) under the same test-first discipline (rAF fixed-timestep, visibilitychange pause, canvas fallback).

  4. Pin page-engine to canonical engine. Write the *_parity.ts test that asserts the inline-JS lab engine and the canonical cardio_renal.ts engine produce identical trajectories. Register the Heart-Lab engine ticket OAS-710-T3 in the ledger at Class E (15/15 tests pass), typecheck clean, with no sibling regression.

  5. Wire the honesty fences into the artifact, not just the prose. The page must carry, as coded copy: not a clinical tool · not a diagnostic instrument · not evidence that active inference is the correct theory; the resemblance to clinical reality is "an interpretive act, not a measurement." Where the Zenodo DOI appears, it must be fenced as an unrefereed preprint (Polzin et al. 2026, DOI 10.5281/zenodo.19785799, MIT; Layer-1 AI-executable audit complete, Layer-2 human expert review PENDING).


Gate (exact pass condition, exact ledger figures)

From CLAIM-LEDGER row L3.1 (the single source of truth):

No point-estimate verdicts: this rung's gate is the tolerance band + the parity assertion chain, registered before scoring (M2). Never card this row above Class C (and the engine ticket above Class E 15/15).


Falsifier (operable)

The L3.1 claim fails if either:

Either outcome demotes the row; the parity test is wired to fail the build, so a drift cannot ship silently.


Recorded NEGATIVE(s) — first-class, inline

L3.1 itself carries no negative row in the ledger — but the honesty discipline that produced it is the recorded content, and it is first-class:

There is no SIGNED consult insert at L3 (the 2026-06-27 consult designs attach to L2, L5, L7, L9, L11, L12, and the continuity sub-ladder, not here). Nothing on this rung is raised by a design that has not been run.


HONEST FENCE — proven (Class C; engine ticket Class E 15/15)

A held, sealed PASS exists and its falsifier is still live: the reduced cardio-renal loop tracks the Karaaslan reference within tolerance, pinned by parity tests, with the OAS-710-T3 engine ticket at 15/15.

Not claimed (load-bearing, never softened): this is NOT a clinical tool, NOT a diagnostic instrument. "Same math, many scales" framing only; the heart-attack-as-prediction-loop-failure framing applies to the toy model, not to clinical reality. It is not "active inference demonstrated" (the lab is a re-expression on the engine, a framing LENS, not a sealed AIF loop), not comprehension, not awareness, not human-level, not AGI, not evidence that active inference is the correct theory of physiology. The Zenodo preprint is the mathematical foundation only and remains unrefereed (Layer-2 human review PENDING). A toy model, not clinical reality; a bounded peek in a developmental simulation, ~2 of 11+ rungs earned.