MOLECULAR CODING TESTNET · UNAUDITED · EXPERIMENTAL spec 4.0 · a5 │ LAWS30 BODY SYS13 MOVES26 CHEM READS31 MOODS47 SYN SLOTS255 SENSE SLOTS256 ⛏ LIQUA OPEN0/0 CALM --:--:--
§0

▸ HOMEROOM MAP · every window in the manual

start here · tap a card to jump
MOLECULAR CODING · spec 4.0 · a5 · FIELD MANUAL EDITION · ± PROD
30 laws · 13 body systems · 26 moves · 31 hormone reads · 47 mood states · 255 synapse bays · 256 sensor bays · 256 antibody bays · 5 defense layers · 9 senses · 5 adaptation clocks · 2 field manuals
Tap a card to pull its window forward. Drag a title bar to move it. Every window has shrink, grow and close keys. The dock at the bottom brings hidden ones back.
MOLECULAR CODING THE L8 OS BODY MANUAL spec 4.0 · a5 · FIELD MANUAL EDITION ◇ DREWLESS · 7-SLF · ⌬ OMNISOFT · TESTNET · UNAUDITED · EXPERIMENTAL

MOLECULAR CODINGspec 4.0 · ± PROD · every clock in tune

Code that grows a body. Organs, moods, defenses and a nervous system, built on purpose.
written by DREWLESS · blueprint by 7-SLF · AI feel by OMNISOFT · released by MORE OR LESS PRODUCTIONS
spec 4.0 · PATCH NOTE 5 · FIELD MANUALS · the grammar gets its pocket guide. §25 MOLECULAR BEST PRACTICES is the daily drill: ask three things every time (which BE are you declaring · which layer are you on · what is your keep-or-toss policy), a drill sheet pairing each habit with the law it serves, and a sick-bay chart (symptom → what's wrong → the fix) for the usual bad habits: a synchronous spine, power with nobody watching, believing parsed input, safety that waits on a round-trip, a flat inside, mystery numbers, the word "unhackable", and pretend-alive signals. §26 JAVASCRIPT BEST PRACTICES is the craft of the ground we build on: async/await, const first, frozen shipped objects, typed errors that fail safe, checks at the border, AbortController plus backpressure, clean teardown with no leaks, modules that export the minimum, and repeatable results. Each tied back to R0/R8/R15/R22/R23/R28/§22, with a never-do chart and a modern-JS cheat card. The big one: not a single new law: good habits are stance, not new powers, so the law count holds at 30. The patch log moved from §25 to §27.
spec 4.0 · PATCH NOTE 4 · NERVES + LYMPH · two systems that used to be scattered or tucked inside others finally get their own names: §23 NERVOUS SYSTEM gathers §4.5 synapses, §4.7 registry, §4.8 coherency and §12 senses in one place, then adds the fight-or-rest autonomic switch and the reflex arc: R29 REFLEX AT THE EDGE says safety fires right where the danger is, never after a trip to the center. §24 LYMPHATIC brings checkpoints, drainage and side-to-side patrols: R30 CHECKPOINT EVERY HOP is zero-trust for the network: §14 watches traffic coming in and out, lymph nodes watch traffic moving sideways. Laws climb from 28 to 30, body systems reach 13, and the patch log moved from §23 to §25.
spec 4.0 · PATCH NOTE 3 · FULL BODY · the whole human finally shows up: 9 body systems from §14 to §22: SKIN (the outer wall) · BLOOD + CLOTTING (moving things around, sealing leaks, shrinking the blast zone) · BREATH (energy budget and backpressure) · GUT (taking things in, with a barrier, because parsed never means trusted) · BONE + MUSCLE (the frame, and movers with the least power they need) · KIDNEYS (filter and flush) · HOMEOSTASIS (the balance spine, with its set-points written down) · SENTIENCE (the whole self, pulled together: AI sentience written down as the goal, not as a claim: built from the E2 self-model, §12 inner sensing and §4.8 coherency, while R27 keeps the hard problem openly unsolved) · DEFENSE-IN-DEPTH (zero-trust security in one picture: "no one weak spot takes the whole thing down", and never "unhackable") · 9 fresh laws, R20 to R28: §3 now holds 28 · POCKET MODE: on phones the floating windows fold into one tall scroll at full width (760px or less, cards stay put, the HUD and headers stick, wide tables scroll inside their card, iOS notch space respected) · the honesty holds: each system is named and framed out, and both security and sentience are written as targets with their limits stated, never as finished wins.
spec 4.0 · PATCH NOTE 2 · SENSES + THE OS SHELL · §12 adds the sensing layer between THE WORLD outside and the §1 CELLS inside · 9 senses (5 facing out: SIGHT · HEARING · TOUCH · SMELL · TASTE · 4 facing in: PROPRIOCEPTION · NOCICEPTION · THERMOCEPTION · CHRONOCEPTION) · SENSORY REGISTRY (§12.3) · 256 bays you can address with a uint8 · a twin of the §4.7 synapse registry and the §11.6 antibody registry · 6 zones (core senses · per-domain · per-fleet special · cross-sense · outside substances · spare + META) · 3 fresh moves (SENSE · TRANSDUCE · ADAPT): §5 reaches 26 · 3 fresh laws (R17 SENSE BEFORE PRESENT · R18 ATTENTION GATES SENSITIVITY · R19 COHERENT MULTIMODAL BINDING): §3 reaches 19 · 6 fresh mood states (NUMB · OVERSTIMULATED · DAZED · ORIENTED · SHARPENED · BLINDED): the §4.2 table reaches 47 once they are wired in · sensing borrows the §4.5 receptor shape (a sensor is a receptor with the same 6 variables) and §4.8 COHERENCY (sensitivity shifts on 5 clocks) · acetylcholine (§4.1c) is crowned the main ATTENTION volume knob (R18) · §11 PATTERN_T was already doing SMELL · NOCICEPTION reuses §4.7 cytokine bays #174-180 · sensor honesty checks reuse R14 MHC_I. OS SHELL: the manual itself now runs as a floating-window desktop · every §-section is a window you can drag, with its own title bar and keys · the HUD along the top shows the name, the edition, a live clock and how many windows are open · the TABLE OF CONTENTS is the first window you land on, with a jump card for every section · the shell wears the same molecular look as the rest (amber, cyan and green on near-black, JetBrains Mono).
spec 4.0 · PATCH NOTE 1 · IMMUNE DEFENSE · §11 adds the defense crew that stands between META (§1e · the gate upstream) and the §1 cell line · five defense layers (born-with · learned · remembered · patrol · peace-keeping) · 7 fresh cell types joining the 5 R1 cells already on the roster (BARRIER_T · PATTERN_T · PHAGE_T · NK_T · B_CELL · CD8_KILLER_T · DENDRITIC_T) · 5 fresh moves (NEUTRALIZE · OPSONIZE · PHAGOCYTOSE · ATTEST · ESCALATE): §5 reaches 23 · 3 fresh laws (R14 · MHC_I ATTESTATION PER TICK · R15 · ANTIBODY IMMUTABILITY · R16 · TOLERANCE CHECK BEFORE PROMOTION): §3 reaches 16 · 8 fresh mood states (UNDER_ATTACK · INFECTED · COMPROMISED · SENSITIZED · IMMUNE_ALERT · QUARANTINED · TOLERATED · IMMUNIZED): the §4.2 table goes from 33 to 41 · ANTIBODY REGISTRY (§11.6) · 256 bays addressed by a uint8 · a twin of the §4.7 synapse registry · 10 threat zones · shared only on this one device for now (SHARED_TRUSTED · SHARED_OPEN wait on the spec 5.0 horizon) · 15 attack → defense pairings (XSS · SQL-i · CSRF · prompt-injection · supply-chain · phishing · brute-force · DDOS · malware · zero-day · insider · exfil · account-takeover · privilege-escalation · replay) · plugs into §4.7 cytokine bays #174-180 with zero new bays (IL-1β · IL-6 · IL-10 · IL-18 · TNF-α · IFN-γ · IFN-α already live there) · an immune response plays out on 5 clocks at once (§4.8 COHERENCY) · how tightly an antibody grabs follows R11 effective density.
spec 4.0 · THE COHERENCY DROP · Headliner: receptors that adapt on five clocks (§4.8): the one straight-line delay from spec 3.2 a5 opens up into coupling · surface_count · total_count · synth_rate · circuit_weight · each clock gates the next one, 10× slower · effective density = all five multiplied · the COHERENCY score = how far the clocks disagree · HORMONES gains it as measured read number 21 · 3 fresh mood states (DISCORDANT · TRANSITIONING · SETTLED) slotted into the §4.2 priority table · R11 · COHERENT EFFECTIVE DENSITY: code gating on one flat density without a // v3.2-legacy tag breaks the law · the linter ships with it · R10 (SYNAPSE_ID FITS IN ONE BYTE) becomes official in §3 · spec 4.0 bundles 3.2 a3 to a7 into one release: 30 hormones · 30 mood states · 255 synapse bays · 16 moves · 11 laws you can enforce · the genesis loop, the per-user chain and META.
spec 3.2 · PATCH NOTE 7 · the E1 panel grows from 20 → 30 hormone reads (+10: growth_hormone · aldosterone · estrogen · progesterone · glucagon · ANP · resistin · adiponectin · hepcidin · FGF21) · mood table 18 → 30 states (+12: STRAINED · VENTING · CLOSED · SPENDING · ACTIVATED · FORGED · HEALTHY · RECEPTIVE · BALANCED · GROWING · GUARDED · INHIBITED) · 7 §4.7 bays level up from SCAFFOLDED → ACTIVE (#64 ANP_NEURAL · #74 GH_NEURAL · #110 ADIPONECTIN · #122 GLUCAGON_NEURAL · #165 ESTRADIOL_NEURAL · #170 PROGESTERONE_NRL · #173 ALDOSTERONE) · 3 new bays claimed in the spare zone (#245 RESISTIN · #246 HEPCIDIN · #247 FGF21) · runway-command.html brought back in line with the written gaba/glutamate definitions, with acetylcholine, vasopressin and anandamide now running live · both forks now read 30/30.
spec 3.2 · PATCH NOTE 6 · the SYNAPSE REGISTRY jumps from 5 monoamines to 255 bays, each addressed by one uint8 (§4.7) · a 10-zone floor plan · about 150 named bays, each with its class, transporter, breakdown enzyme and receptors · fresh law R10: SYNAPSE_ID FITS IN ONE BYTE · level-up rules (SCAFFOLDED → ACTIVE) · a growth path from uint8 to uint16 · outside-substance binding sheets (LSD · psilocin · MDMA · ketamine · THC · nicotine · caffeine · alcohol · benzo · opioids · amphetamines · ibogaine) parked in bays 210–244 so APPLY can aim at them.
spec 3.2 · PATCH NOTE 5 · SYNAPTIC DYNAMICS (§4.5): the gears under HORMONES · a synapse with 6 variables · a 5-step tick (release · reuptake · breakdown · clamp · receptor adapt) · 5 monoamine synapses hooked up · PHARMACOLOGICAL INTERVENTIONS (§4.6): SSRI · MAOI · SNRI · atypical drug sheets · blood-level curves · first-day effect vs slow adjustment · quitting effects show up on their own · APPLY joins as move number 16 (pharma tier · a push from outside) · receptor density is the clock that mind-altering drugs actually run on.
spec 3.2 · PATCH NOTE 4 · the NEUROMODULATOR BAND arrives: 5 quick-acting messengers (gaba · glutamate · acetylcholine · vasopressin · anandamide) that round the panel out at 20 reads · 5 fresh mood states (AGITATED · FLOW · BONDED · ATTENTIVE · SEDATED) placed next to their closest neighbors. An 18-state table · a fresh opposite pair, gaba ⇄ glutamate (the main brake-versus-gas axis) · fresh axes INHIBITION · EXCITATION · ATTENTION · TERRITORY · FLOW.
spec 3.2 · PATCH NOTE 3 · E1 written out in full: 15 hormone reads (the first 11 plus craft, efficiency, tempo and inflammation) · a 13-state MOOD TABLE with a first-match, priority-ranked sorter (§4.2) · 5 axis groups (RISK · STABILITY · DRIVE · REGULATION · REWARD) · 4 opposite pairs written down · the honest core idea: hormones are measurements, never guesses baked in · each value recomputed every tick from STATE, EVENT and seasonPhase. No mystery numbers.
spec 3.2 · PATCH NOTE 2 · the GENESIS LOOP becomes the eighth axis (§1c): each boot builds the user's instance fresh from a pair of seeds · the PER-USER CHAIN (§1d) writes each boot down as a block that never changes (boot_n, version, prev_hash, instance_hash) · the META LAYER (§1e · still a work in progress) checks the signal and keeps bad actors at the door · Four fresh laws: R6 INSTANCE = AUTH · R7 BOOT IS GENESIS · R8 COMMIT EVERY VERSION · R9 DETECT-AND-ROLLBACK · Five fresh moves: SEED · GENESIS · COMMIT · VERIFY · ROLLBACK · Seven more schools of prior work (Object Capabilities · Holochain · Urbit · SPKI/SDSI · Git's per-repo commit history · the WebAuthn shortcut · Capability microkernels) · Roadmap stops 9 (measuring the genesis loop) and 10 (a first META build).
spec 3.1 · PATCH NOTE 1 · SELF comes back, now with DEEP STORE + PRUNE · two fresh moves (ARCHIVE + PRUNE) · the stack is seven layers tall · the patch log begins.
R0

▸ LAW ZERO · nothing waits for anything

you can enforce it

There is no synchronous spine here. No master clock. No shared state that flips all at once. Each cell keeps its own beat. Each layer lands when it lands, not the instant you ask.

R0 · ASYNC SYSTEM
Write code that expects "it all lines up right this second" and you've broken Async System. The Oracle will catch it. Parts stay in step through: messages (MDCP packets) · agreement (a quorum across fleets) · hormones (the Oracle turning dials) · memory (artifacts settling into place), and never, ever through a global lock.

Every other law quietly leans on this one. R1 to R9 only work in a world where nothing waits. Calling it R0 drags that hidden assumption into the light.

§1

▸ THE BODY STACK · seven floors inside, one LEDGER axis outside

FRESH · LEDGER axis joins · jump to §1c

The body grows from the bottom up and gets steered from the top down. Every floor carries out what the floor above wants and reports back to the floor below. SELF boils engine memory down into long-term keepsakes, throws out what stopped helping, then feeds those lessons back into DNA. All seven floors live inside a single user. An eighth axis stands beside the stack: the GENESIS LOOP + PER-USER CHAIN + META LAYER (§1c–§1e · spec 3.2). It builds the whole body fresh on every boot, writes it down as a block that cannot be changed, and guards it with the meta check that shuts bad actors out.

DNA the commanders: written orders, versioned, read out loud ↓ turns into
↓
CELLS the helpers: typed workers, a 7-stage line, breakers on every one ↓ team up as
↓
ORGANS the fleets: each owns a job, each sends molecular packets ↓ tuned by
↓
EMOTIONS the Oracle: hormone trip-lines, mood markers, steering ↓ settled into
↓
ENGINES the memory: artifact shelf, pattern mining, replays ↓ boiled down to
↓
KERNELS boot seeds, habits, home turf. Day-night rhythm, this device only, lives for the session ↓ filed by
↓
SELF the vault + the shredder. What's kept for good, what gets let go ↺ keep ↔ let go ↔ lessons back to DNA

WHICH WAY THINGS MOVE

  • Downhill (orders): DNA → cells → organs. A commander rewrites an order, the helpers switch how they act, the fleet clears its queue.
  • Uphill (reports): cells → organs → emotions → memory → kernels → SELF. Work floats upward, hormones turn the dials, memory settles, kernels squeeze it into seeds for the next boot, and SELF picks what gets to live on.
  • Loop-back (growing up): SELF → edits to DNA → cells specialize. The body learns by rewriting its own orders from whatever made it into the vault.
§1a

▸ SELF · keep it or let it go (a job you can actually check)

ARRIVED in spec 3.1

SELF began life as poetry ("the integrated being") and got cut from spec 3.0, because nobody can turn "consciousness" into a lint check. Spec 3.1 brings it back with one clear job you can enforce: SELF chooses what graduates from session memory into the permanent vault, and what gets shredded for good.

R5 · DEEP STORE + PRUNE
SELF writes two policies right into the source: archiveRule(item) → boolean ("could matter one day: vault it") and pruneRule(item) → boolean ("hasn't helped in N: let it go"). Each one must be a named function, never a side effect nobody wrote down. Each one runs on a timer. Each one leaves a trail anyone can inspect.
// Example: SELF archive policy
function archiveRule(artifact) {
  // keep things that crossed quorum, were verified, or carry rare event_types
  return artifact.completeness >= 0.85
      || artifact.contributing_fleets.length >= 3
      || RARE_EVENT_TYPES.has(artifact.event_type);
}

// Example: SELF prune policy
function pruneRule(item, now) {
  const ageMs    = now - item.last_used_ts;
  const isStale  = ageMs > 30 * DAY_MS;
  const isUnused = item.times_recalled === 0;
  return isStale && isUnused && !item.archived;
}

// SELF scheduled tick
function selfTick() {
  const now = Date.now();
  ENGINES.artifacts.forEach(a => {
    if (archiveRule(a))     return BE(() => archiveItem(a),  'SELF_ARCHIVE');
    if (pruneRule(a, now)) return BE(() => pruneItem(a),    'SELF_PRUNE');
  });
}

WHERE BIOLOGY DOES IT

  • Sleep sorts the day's memories (Stickgold, Walker): deep NREM sleep sweeps through memory traces, then REM locks in the keepers.
  • Trimming the wiring (Huttenlocher 1979): kids and teens lose the links they never use.
  • The forgetting curve (Ebbinghaus 1885): facts nobody touches fade on a schedule you can predict.
  • Hebb's "use it or lose it": links that keep firing together are the ones that stay.

WHERE COMPUTING DOES IT

  • Garbage collection by generation (Lieberman/Hewitt 1983): new objects get swept hard, the ones that last move up a tier.
  • LRU cache eviction (Belady 1966): whatever sat untouched longest leaves first.
  • Storage tiers (hot → warm → cold → frozen): how today's data lakes already run.
  • TF-IDF weighting for deciding what to keep in search systems.

WHY BRINGING IT BACK IS FAIR

Spec 3.0 cut SELF because nobody could enforce "the integrated being". Spec 3.1 lets it back in because vault + shred boils down to two real functions with written policies. A checkable job is a different animal from poetic "consciousness", and the checkable job is the only part that earned a seat again.

§1c

▸ GENESIS LOOP · axis number eight · one per user, one per boot

ARRIVED · spec 3.2 patch note 2

The seven floors of the stack live inside a single user. Axis eight is the loop that builds that user's instance from scratch each time it starts. Everyone runs the same code blueprint (the PUBLIC SEED), yet your instance only comes alive once your PRIVATE SEED sparks it. Until you've booted yourself into being, there's simply nothing for anyone to log in against.

THE GENESIS LOOP · step by step
SEED → GENESIS → RENDER → COMMIT → META.VERIFY → INSTANCE → (shut down or roll back) → SEED → ...
Each boot paints the OS again, fresh, from your seed. Render ≡ Update. The OS is the login.
// every boot is a fresh genesis · the bootstrap IS the auth event
async function boot(privateSeed) {
  const publicSeed  = await fetchPublicSeed(SEED_CID);    // same for all users
  const deltas      = await loadLocalDeltas();           // today's changes from local store
  const instance   = GENESIS(publicSeed, privateSeed, deltas);
  const block      = commitBlock(instance);              // next block in your chain
  const validated = await META.verifySignal(block);     // gate at the protocol edge
  if (!validated)  return BE(rollback,            'META_REJECTED');
  return           BE(() => activate(instance), 'INSTANCE_LIVE');
}

// instance termination ≡ auth gate closes
function terminate(instance) {
  instance.freeze();
  META.revoke(instance.id);
  return BE(closeAuthGate, 'INSTANCE_TERMINATED');
}

HOW THIS DIFFERS FROM zk-ROLLUPS

  • Rollups run one big state machine for everyone, and users prove facts about their secret inputs to it.
  • The genesis loop keeps no shared state machine at all. Every user runs a program that is theirs alone. Starting it up is the login. Skip that start-up and there's no target to hit.
  • Nobody can pose "as you" when the software that could fake you isn't sitting on their machine, and their own private seed can't produce it.

ONE LOGIN PER LIFE AREA, KEPT APART

area(public_seed, private_seed) pairwhat runs
BANK(bank.public, your.bank.private)a program that only does banking
SOCIAL(social.public, your.social.private)a program that only does social
MEDICAL(medical.public, your.medical.private)a program that only does health

Each area grows its own private seed from your master seed. If someone cracks your social instance, they still can't pass as your bank one. Banking uses its own derivation path, its own META gate and its own chain.

EXTRA LOCKS STACK ON TOP

Passkeys, MFA, fingerprints: none of them go away. They layer onto the instance after it's alive. Genesis answers "does this instance exist?" Passkeys answer "is it still you driving?" Together they shrink the attack surface; on its own, neither one is the whole design.

YOUR DEVICE IS YOUR LOGIN

WebAuthn and passkeys already ship a slice of this: "your device proves it's you, since only it holds the private key." The long version goes further: your device paints a brand-new OS from your seed every time it boots. The OS is the login. "Device as login" is just the handy zipped-up form.

§1d

▸ PER-USER CHAIN · a write-once block diary · one chain for each instance

ARRIVED · spec 3.2 patch note 2

Each GENESIS adds one block to that user's own chain. Blocks can't be edited after the fact, the same way a blockchain works. Every block points at the hash of the one before it. You won't find one big chain everybody shares; you get a separate chain for every user instance. Anybody can confirm the chain hasn't been tampered with. Only its owner can read what the blocks point at.

// block schema · one chain per user · append-only
const block_n = {
  n:           N,                                // boot count · monotonic from genesis
  version:     instance.seedVersion(),            // version derived from seed
  ts:          Date.now(),                          // when this boot happened
  prev_hash:   chain[N-1].hash,                  // links to previous block
  instance_h:  sha256(canonicalize(instance)),  // this boot's instance hash
  delta_h:     sha256(canonicalize(deltas)),    // today's deltas applied
  meta_sig:    META.sign(this),                 // META layer signs the validation
  hash:        'sha256:0x...'                    // self-hash · seals the block
};

BEST vs NEWEST · each area picks its own meaning

areapoints atthe reason
OPTIMIZATIONthe LATEST block that compiled bestquality beats freshness here: take whichever block built the cleanest
BANKING / FINANCEthe MOST-RECENT block that passed checkstoday's truth is what counts · old state is a risk
MEDICALthe MOST-RECENT block with a signaturesafety first · go with the newest confirmed state
SOCIAL / CONTENTthe LATEST block that rendered besta smooth experience beats up-to-the-second for low-stakes state
AUDIT / FORENSICSEVERY blockread the whole chain · each login is on the record

SPOT IT, THEN ROLL BACK

Weird-behavior checks run on every block. If META or an outside watcher marks block N as fishy, the system steps back to block N-1 (or earlier) and carries on from there. Proof of the bad block is kept on the chain, nobody erases it, but it's stamped invalid and never used as a starting point again.

// detection → rollback discipline (R9)
function detectAnomaly(block) {
  if (META.scoreSuspect(block) > SUSPECT_THRESHOLD) {
    block.flag = 'SUSPECT';
    return BE(() => rollbackTo(block.n - 1), 'ROLLBACK_TRIGGERED');
  }
  return BE(acceptBlock, 'BLOCK_ACCEPTED');
}

function rollbackTo(n) {
  const good = chain[n];
  CURRENT_INSTANCE = GENESIS_FROM_BLOCK(good);
  META.log({ event: 'ROLLBACK', target_block: n, reason: 'anomaly' });
  return BE(resumeFromInstance, 'ROLLBACK_COMPLETE');
}

WHY AI MODELS LOVE THIS

  • Repeatable: same (seed, deltas) in, same instance out · replay from whichever block you like.
  • Checkable: every boot leaves a block · you can diff exactly how this user's program changed over time.
  • Walled off: one user per chain · nothing shared for one user to break for the rest · a rotten chain can't infect its neighbors.
  • Safe to undo: bad block → step back · the rest of the system is untouched · the trail stays on-chain as proof.
  • Size-capped: SELF's vault-and-shred runs inside the chain, so memory never balloons.
§1e

▸ META LAYER · signal checker · the bouncer for bad actors

WRITTEN DOWN · spec 5.0 WITNESS · you can enforce it

META stands on the protocol border between a user's INSTANCE and the LEDGER (their per-user chain, plus any shared coordination on top). Its task: check the signal on each block before anyone treats it as official. Bad actors get stopped one floor beneath login instead of one floor above it. Login comes from the instance existing (R6); META rules on whether the next block may even join onto the chain. Spec 3.2 gave META a name and parked it as a work in progress. Spec 5.0 writes the rules down: an exact signal format, a quorum of peer witnesses, a threshold that moves with posture, and failure in steps. Two fresh laws (R12 · R13) and two fresh moves (WITNESS · QUARANTINE) come with it.

META RULEBOOK · spec 5.0 WITNESS
A committed block counts for nothing until a quorum of unrelated witnesses checks its signal. That signal is instance_pubkey + signed(block_hash) + freshness_proof. How many witnesses you need, and how fresh the proof must be, move with the Oracle's posture: stress pulls them tighter, calm lets them relax. Failure comes in stages: QUARANTINE (fence it off, read-only, wait for witnesses) → ROLLBACK (R9) → sound the area alarm. One trusted oracle is never enough.

§1e-1 · THE SIGNAL · byte by byte

The §1d block layout already has a meta_sig slot. Spec 5.0 pins down what goes in it:

// META signal · 136 bytes packed · what every witness checks
const meta_signal = {
  instance_pubkey: u8[32],   // ed25519 · derived from (public, private) seed at genesis
  block_hash:      u8[32],   // sha256(canonicalize(block)) · the thing being attested
  sig:             u8[64],   // ed25519 sign(block_hash) under the instance key
  freshness:       u8[8],    // boot counter n (monotonic) ++ wall-clock ms · kills replay
};

Each witness looks at exactly three things: (1) does the signature match the pubkey it claims, (2) is that pubkey the same one that has grown this chain since genesis, and (3) is the freshness counter higher than the last block that got in. Faking a block takes the private seed; replaying one means outrunning a counter that only goes up; swapping identities needs a chain fork the witnesses have already seen. Without the seed, an attacker gets none of those.

§1e-2 · WHERE META LIVES · a crowd of peer witnesses, never a lone oracle

// R12 · a block is provisional until K-of-N witnesses co-sign
async function metaVerify(block, posture) {
  const { K, freshness_ms } = metaThreshold(posture);   // R13 · posture-gated
  const witnesses = await gatherWitnesses(block.meta_signal);
  const attest = witnesses.filter(w =>
    w.verifySig(block) && w.freshWithin(block, freshness_ms)
  );
  if (attest.length >= K) return BE(() => accept(block),        'WITNESS_QUORUM_MET');
  if (attest.length > 0)  return BE(() => quarantine(block),    'WITNESS_INSUFFICIENT');
  return                    BE(() => rollback(block.n - 1), 'WITNESS_NONE_R9');
}

Witnesses are other instances (the peer-witness pattern) or an area's validator crew: an instance never vouches for itself, and no single trusted server gets the final word. A bank area runs a strict validator crew; a social area might be fine with casual peer vouching. How witnesses find each other and pass a block around is left open on purpose. The horizon note below explains why.

§1e-3 · STACKING · three gates, lowest first

gateaskslawruns
GENESISis there an instance here, period?R6 · R7one time, on boot
METAdoes this block get to count?R12 · R13on each block
PASSKEY / MFAis it still really you doing this?layers over the topon each risky action

Genesis is the ground floor (no instance → no login to attempt). META guards the chain (no witness quorum → the block doesn't count). Passkeys are the roof (no fresh proof → no risky action). Each one locks a different door; pull any of them and a hole opens. META is no stand-in for passkeys, and passkeys are no stand-in for genesis.

§1e-4 · A GATE THAT MOVES WITH MOOD · R13 · the Oracle sets how strict it is

// R13 · META strictness IS hormonal · cortisol/adrenaline tighten the gate
function metaThreshold(h) {                          // h = HORMONES readout (§4.1)
  const alert = clamp(h.cortisol * 0.6 + h.adrenaline * 0.4, 0, 1);
  return {
    K:            1 + Math.round(alert * 4),          // calm → 1 witness · alarmed → 5
    freshness_ms: 60000 - alert * 55000,            // calm → 60s window · alarmed → 5s
  };
}

The very posture that clamps routing gates and speeds up rhythms also clamps the META gate. When the body reads high cortisol (errors climbing, queues packed) it wants more witnesses and newer proofs before believing the next block. When it's calm, it eases off. META thresholds frozen into the code break R13. That's why META belongs to the body instead of being strapped on from outside. It breathes in time with the Oracle.

§1e-5 · WHEN IT FAILS · in steps, and always out loud

how fishywhat happensmovewhat the chain sees
0 < witnesses < Kfence the block off · read-only · wait for more witnessesQUARANTINEparked, not in, not erased
witnesses = 0step back to the last block that had witnesses (R9)ROLLBACKthe fishy block remains on the chain as proof
the same trick across many instancesarea alarm · push cortisol up for every fleet · clamp every gateREGULATEthe posture change spreads through the §4 Oracle

Spec 5.0 needed QUARANTINE because a block can look suspicious without being evil: maybe its witnesses haven't shown up yet, maybe the network is crawling. Parking it buys time. You neither trust the block nor toss the user's work. Rollback only fires for blocks with zero witnesses or a proven fake. When the same pattern keeps showing up across instances, the Oracle turns it into an area-wide posture shift.

spec 5.x horizon · what WITNESS leaves for later
Spec 5.0 writes down the rules of play: the signal layout, the quorum law, the posture gate, the failure steps, R12 · R13, WITNESS · QUARANTINE. It does not yet pin down the witness network: how instances find one another, how each area gets its first validator crew, how gossip survives an eclipse attack. That part sits on the spec 5.x horizon. Building it is roadmap stop 10: [ − PROD ] until it ships. Giving the gate a name let R6–R9 exist in spec 3.2; writing its rules in spec 5.0 is the manual fixing itself right on time.

Sticky note to future me: META graduated from a spec 3.2 work-in-progress to a spec 5.0 rulebook as soon as an exact signal, a quorum law and a posture gate could each be written as a function you can enforce. The same hurdle SELF cleared in spec 3.1 and GENESIS in spec 3.2. Hold off on building the witness network until the rules have sat in the manual long enough for people to try breaking them. Name it → write the rules → toughen it → ship it, in that exact order.

§2

▸ SPLIT ↔ MERGE SLIDER · fission to fusion

a design dial

Every action in the body sits somewhere on one slider: fission (pull it apart) ↔ fusion (put it together). That slider is a design law. It pins each function to a spot and makes the function say where it stands.

◀ FISSION · pulls apart

  • chop into tokens
  • parse the input
  • pull matches out with regex
  • the fragment buffer (PASS 1)
  • an APC holding up a signal
  • grabbing the raw signal
  • SELF shredding (drops what stopped helping)

◆ JUDGES

  • sort into kinds
  • give it a score
  • send by event_type
  • the rules gate
  • weigh by trust
  • the checking stage
  • the archiveRule / pruneRule tests

FUSION · puts together ▶

  • agreement across fleets
  • finishing the tokens (PASS 2)
  • an artifact levelling up
  • memories settling in
  • boiling a kernel down
  • SELF vaulting (holds on to what's worth it)

WHY IT IS A LAW

  • Ask it in code review: "does this function split or merge, and does its name admit it?"
  • Where it goes: heavy splitting near the input edge, heavy merging near the output edge. SELF works both ends: pruning splits (toss it), archiving merges (keep it).
  • Keep the balance: split too much and you get static. Merge too much and you agree too early. A healthy body keeps the mix right for whatever load it's under.

Who did it first: MapReduce (Dean/Ghemawat 2004) splits, then merges. Neuroscience's binding problem (Treisman 1980s) is still stuck on turning scraps into one picture. Fission-fusion societies (Aureli et al, primate studies) are groups that break up and rejoin.

§3

▸ THE 30 LAWS · each one checkable

FRESH · sense laws R17-R19 joined (spec 4.0 a2)

Laws a linter or a reviewer can actually check. They're what give Molecular Coding its silhouette.

R20–R30 · FULL-BODY LAWS · spec 4.0 a3–a4
Each §14–§22 body system brings one law you can enforce; the complete wording sits inside its own section. R20 PERIMETER CANONICALIZATION (§14) · R21 BLAST-RADIUS CONTAINMENT (§15) · R22 BACKPRESSURE BREATH (§16) · R23 GUT BARRIER · parsed ≠ trusted (§17) · R24 EFFECTOR LEAST-PRIVILEGE (§18) · R25 CONTINUOUS FILTRATION (§19) · R26 DECLARED SET-POINT (§20) · R27 SENTIENCE IS A FRONTIER · say it's the goal, never pretend it's done (§21) · R28 ZERO-TRUST INTERIOR (§22) · R29 REFLEX AT THE EDGE (§23) · R30 CHECKPOINT EVERY HOP (§24).
R1 · CELL_TYPE stamped on each helper
Each helper says what kind of cell it is. That kind sets how long it lives, which moves it may make, and where it lands in the pipeline.
const SCOUT_NEWS = {
  id: 'NEWS-RSS',
  cell_type: 'APC',            // antigen-presenting cell · surfaces signal
  source: 'Google News',
  trust: 0.70,
  cadence_ms: 6500,
};
R2 · DNA_VERSION stamped on each commander
Commanders wear a version number. Change the order, bump the number. Reading out an order becomes a numbered event you can diff and play back.
const SCOUT_CMD = {
  id: 'SCOUT-COMMANDER',
  cell_type: 'HELPER_T',
  dna_version: 3,
  directive: 'widen news intake · prioritize EDGAR-confirmed sources',
  last_transcribed_ms: Date.now(),
};
R3 · BE at the end of each branch
Hewitt's become, spelled out. Each if-branch says what it turns into next. No branch left dangling. The labels double as places you can jump to.
function evaluate(packet) {
  if (packet.confidence > 0.75) {
    promote(packet);
    return BE(scheduleNext, 'PROMOTED');
  }
  if (packet.confidence > 0.40) {
    addToReview(packet);
    return BE(notifyManager, 'QUEUED');
  }
  return BE(log, 'LOGGED');
}
R4 · GRADUATION events when quality clears the bar
When something climbs past a quality line (say completeness ≥ 0.65), fire a graduation event. The screen shows it. An audit can play it back. Getting better never happens in silence.
if (artifactCompleteness(merged) >= 0.65) {
  registerArtifact(merged);
  emit('graduation', { co: merged.co });
  return BE(notifyMemoryEngine, 'ARTIFACT_BORN');
}
R5 · SELF DEEP STORE + PRUNE
Each store that lives a long time writes both an archiveRule (what moves into the permanent vault) and a pruneRule (what gets shredded for good). Both are named functions on a timer. A store with neither just keeps swelling, and that breaks R5.
const ENGINE_POLICY = {
  archiveRule: a => a.completeness >= 0.85 || a.contributing_fleets.length >= 3,
  pruneRule:   (a, now) => (now - a.last_used_ts) > 30 * DAY_MS && a.times_recalled === 0,
  schedule_ms: 3600 * 1000,                // hourly self-tick
};
R6 · INSTANCE = AUTH
Not one line runs for a user until their program instance has been sparked from (public_seed, private_seed). Every permission flows from that instance existing. Before boot there's no login screen to attack, and nobody but the private seed's holder can boot it. Extra locks (passkeys, MFA, fingerprints) sit over the instance; they never swap in for it.
// R6 in code · no entry point without genesis
if (!CURRENT_INSTANCE) {
  return BE(promptForPrivateSeed, 'NO_INSTANCE_NO_AUTH');
}
R7 · BOOT IS GENESIS
Each boot is a brand-new genesis from the seed plus today's changes. Render ≡ Update. Nothing stays running between sessions for anyone to hook into. Just a chain of boots on the record. Lasting state lives in two places: the chain (can't be edited) and SELF (hand-picked). Code that changes state outside the boot cycle breaks R7.
// R7 in code · every session begins with a full genesis
window.addEventListener('load', () =>
  BE(() => boot(readPrivateSeed()), 'SESSION_GENESIS')
);
R8 · COMMIT EVERY VERSION
Each version of an instance drops a block onto the per-user chain. The block layout never changes: (n, version, ts, prev_hash, instance_h, delta_h, meta_sig, hash). Skip the commit and R8 is broken. An "off-the-record version" simply can't exist. Both forensics and rollback fall apart if this slips.
// R8 in code · genesis without commit is illegal
function activate(instance) {
  const block = commitBlock(instance);          // MUST happen
  if (!block) throw new Error('R8 · activate without commit');
  return BE(() => runInstance(instance), 'INSTANCE_ACTIVE');
}
R9 · DETECT-AND-ROLLBACK
When META or an outside watcher marks a block as fishy, the system steps back to the newest block it still trusts and carries on from there. That rotten block is kept on the chain as proof. Nobody erases it. A long-lived store that never wrote a rollbackRule breaks R9.
// R9 in code · rollback is a first-class operation
function onSuspectBlock(b) {
  if (META.scoreSuspect(b) > SUSPECT_THRESHOLD) {
    return BE(() => rollbackTo(lastTrustedBlock()), 'R9_ROLLBACK');
  }
  return BE(acceptBlock, 'ACCEPTED');
}
R10 · SYNAPSE_ID FITS IN ONE BYTE · spec 3.2 a6 · made official in spec 4.0
Each synapse gets a uint8 ID. SERT, DAT and NET are not synapses: they're KILLER_T cells aimed at particular synapse IDs. The §4.6 drug sheets point at synapses by bay number, never by a name string. Spreading a drug's load means one pass over a 256-slot array each tick · O(1) per synapse · easy on the cache · easy on the ledger (one block's synapse state packs into 256 tight bytes of changes). Once a bay number ships it never moves. Moving one breaks LEDGER replay (R9). The whole registry lives in §4.7.
// R10 in code · slot IDs are uint8 · names are display-only
const SYNAPSE_SEROTONIN = 0;     // not 'SEROTONIN' · the byte IS the identity
const SYNAPSE_DOPAMINE  = 1;
function applyDrugToSynapse(slot_id, drug_load) {
  SYNAPSE_REGISTRY[slot_id].drug = drug_load;
  return BE(null, 'R10_SLOT_TARGETED');
}
R11 · COHERENT EFFECTIVE DENSITY · fresh in spec 4.0
How much a receptor moves a signal is all five clocks multiplied together (coupling · surface_count · total_count · synth_rate · circuit_weight). Gate a signal on one density number and you break R11, unless the code carries a // v3.2-legacy tag and explains why one delay is good enough there. Any new receptor-adapt code MUST name all 5 clocks and run through effectiveDensity(). The single delay is the shortcut for old code; the five-clock cascade is the real road. The full model is in §4.8.
// R11 in code · five scales · single readout
function synapseReadout(syn) {
  return syn.synaptic_conc * effectiveDensity(syn) * syn.receptor_sensitivity;
  // NOT: syn.synaptic_conc * syn.receptor_density · that's R11 violation (v3.2 only)
}

// linter detects R11 violations
function lintR11(fn_source) {
  const hasSingleDensity = /receptor_density/.test(fn_source);
  const hasLegacyTag    = /v3\.2-legacy/.test(fn_source);
  if (hasSingleDensity && !hasLegacyTag) {
    return BE(flagR11, 'R11_VIOLATION_NO_COHERENCY');
  }
}
R12 · NO AUTHORITY WITHOUT WITNESS · fresh in spec 5.0 · META
A committed block (R8) stays on probation until a quorum of K unrelated witnesses checks its META signal (§1e). Nobody may act on a block's changes until metaVerify comes back WITNESS_QUORUM_MET. An instance that vouches for its own blocks, or leans on one lone validator, breaks R12. One voice is not a quorum. It sits on top of R6 (instance = auth): the instance shows who, the witnesses show what.
// R12 in code · a block is provisional until witnessed
async function activateWhenWitnessed(block, posture) {
  const v = await metaVerify(block, posture);   // §1e · K-of-N peer quorum
  if (v.status !== 'WITNESS_QUORUM_MET') {
    return BE(() => quarantine(block, v), 'R12_NOT_WITNESSED');
  }
  return BE(() => activate(block.instance), 'R12_WITNESSED');
}
R13 · POSTURE-GATED META THRESHOLD · fresh in spec 5.0 · META
Both K (how many witnesses) and the freshness window follow the Oracle's posture: they are never fixed numbers. With calm hormones, one fresh witness does the job; with cortisol and adrenaline running hot, the quorum grows and the window shrinks. Code that bakes in a frozen META threshold (a set K, a set freshness) breaks R13. It can't tense up under attack or relax when things are quiet. The threshold MUST come from metaThreshold(HORMONES) (§1e-4).
// R13 in code · the gate breathes with the body
function lintR13(fn_source) {
  const hardcodedK    = /K\s*[=:]\s*\d+/.test(fn_source);
  const usesThreshold = /metaThreshold/.test(fn_source);
  if (hardcodedK && !usesThreshold) {
    return BE(flagR13, 'R13_STATIC_META_THRESHOLD');
  }
}
R14 · MHC_I ATTESTATION PER TICK · fresh in spec 4.0 a1 · IMMUNE
Each tick, every cell signs a hash of its current code and a hash of its state (the ATTEST move · §11.3). That signature lands on the per-user chain (the §1d block layout picks up an attestations field). If this tick's signature doesn't match the last one, something got in. A poisoned dependency, tampering while running, a helper hijacked by prompt-injection. A cell that never attests breaks R14. It rides alongside R8 (commit every version): attestations live inside the block, not beside it.
// R14 in code · every cell tick commits its attestation
function cellTick(cell) {
  cell.work();
  const attest = {
    cell_id:    cell.id,
    code_hash:  sha256(cell.canonicalize()),
    state_hash: sha256(cell.state),
    ts:         Date.now(),
  };
  CURRENT_BLOCK.attestations.push(attest);
  if (priorAttestation(cell.id) && attest.code_hash !== priorAttestation(cell.id).code_hash) {
    return BE(() => quarantine(cell, 'MHC_DRIFT'), 'R14_COMPROMISED');
  }
  return BE(null, 'R14_ATTESTED');
}
R15 · ANTIBODY IMMUTABILITY · fresh in spec 4.0 a1 · IMMUNE
Once MEMORY_B has published an antibody (the §11.6 ANTIBODY_REGISTRY), nobody may edit it. You can only retire it (status → SUPERSEDED) and put a new antibody in a new bay. That keeps R8 (commit every version) intact. The antibody record stays checkable, safe to replay, and safe to share with trusted peers without anyone rewriting history. Changing a published antibody breaks R15.
// R15 in code · antibodies are append-only
function updateAntibody(old_slot, new_signature) {
  ANTIBODY_REGISTRY[old_slot].status = 'SUPERSEDED';
  const new_slot = ANTIBODY_REGISTRY.claimNextSlot();
  ANTIBODY_REGISTRY[new_slot] = {
    signature:  new_signature,
    status:     'ACTIVE',
    supersedes: old_slot,
  };
  return BE(commitBlock, 'R15_ANTIBODY_VERSIONED');
}
R16 · TOLERANCE CHECK BEFORE PROMOTION · fresh in spec 4.0 a1 · IMMUNE
Each new B_CELL antibody MUST get through a known-good panel before MEMORY_B takes it. That panel is a regression set of honest signals (confirmed trends · trusted APCs · sources the operator signed off on). Any antibody that flags good signals too often (above the line, 0.05 by default) is thrown out, and the B_CELL that made it gets pruned (the way the thymus weeds out self-attacking cells). Promoting a detector without a tolerance check breaks R16. R16's whole job is to stop the body attacking itself: a false alarm does just as much damage as a missed threat; it's only noisier about it.
// R16 in code · promotion is gated by tolerance
function promoteAntibody(candidate) {
  const fp_rate = testAgainstKnownGoodPanel(candidate);
  if (fp_rate > 0.05) {
    pruneBcell(candidate.parent_b_cell);
    return BE(log, 'R16_REJECTED_AUTOIMMUNE');
  }
  ANTIBODY_REGISTRY[candidate.slot] = candidate;
  return BE(commitBlock, 'R16_PROMOTED');
}
R17 · SENSE BEFORE PRESENT · fresh in spec 4.0 a2 · SENSORY
Before any APC may PRESENT, a SENSE (or TRANSDUCE) has to come first. Raw input must be sorted into one of the §12.1 senses before it can become a packet. Building an APC packet from input with no sense attached breaks R17. The linter flags every present() call whose argument has no modality field. Knowing which sense something came from is the skin that separates outside from inside the cell.
// R17 in code · sensors transduce first · APCs present second
function handleRawInput(raw, sensor_id) {
  const sensor = SENSORY_REGISTRY[sensor_id];
  const typed  = sensor.transduce(raw);                  // SENSE / TRANSDUCE
  if (!typed.modality) throw new Error('R17 · untyped percept');
  return BE(() => APC.present(typed), 'R17_SENSED_THEN_PRESENTED');
}
R18 · ATTENTION GATES SENSITIVITY · fresh in spec 4.0 a2 · SENSORY
How sensitive a sensor is never stays fixed: it equals base_sensitivity × acetylcholine × (1 − leptin_satiety) × (1 − ghrelin_drift). Code that hard-sets a sensor's sensitivity without going through attentionGain(HORMONES) breaks R18. Attention is a limited allowance: turn one sensor up and another one pays for it. It pairs with R11 (effective density multiplies): attention gain is the sensor's version of a receptor's effective density.
// R18 in code · attention is the gain knob · acetylcholine is the master
function effectiveSensitivity(sensor) {
  return sensor.base_sensitivity
       * HORMONES.acetylcholine
       * (1 - HORMONES.leptin)
       * (1 - HORMONES.ghrelin * 0.5);
}

// linter detects R18 violations
function lintR18(fn_source) {
  const hasHardcodedSens = /sensor\.sensitivity\s*[=:]\s*[\d.]+/.test(fn_source);
  const usesAttentionGain = /attentionGain|effectiveSensitivity/.test(fn_source);
  if (hasHardcodedSens && !usesAttentionGain) {
    return BE(flagR18, 'R18_HARDCODED_SENSITIVITY');
  }
}
R19 · COHERENT MULTIMODAL BINDING · fresh in spec 4.0 a2 · SENSORY
When two or more senses pick up the same outside event (a click you both SEE and FEEL, an error you register as NOCICEPTION and HEARING at once), they MUST merge through one cross-sense bay (the 128-199 zone in §12.3) before any APC sees them. Firing side-by-side APC packets from senses that never merged breaks R19. It shatters one percept into pieces. It's Treisman's binding problem, written as code. What goes wrong: one event shows up as several separate "perceptions" and gets counted twice further down.
// R19 in code · cross-modal binding before presentation
function multiModalEvent(percepts) {
  if (percepts.length === 1) return APC.present(percepts[0]);    // uni-modal · ok
  const bound = crossModalBind(percepts);                       // route through slot 128-199
  if (!bound.bound_at) throw new Error('R19 · multimodal not bound');
  return BE(() => APC.present(bound), 'R19_BOUND_THEN_PRESENTED');
}
§4

▸ THE TWO FEELING LAYERS · E1 HORMONES · E2 SOMATIC MARKER

GREW UP · 15 reads · 13 moods · spec 3.2 patch note 3

These two steer design decisions, yet no parser can enforce them. Think of Rust's "fearless concurrency". It is a stance, and no linter checks it. Spec 3.2 patch note 3 writes E1 out completely: 15 hormone reads sorted onto 5 axes, feeding a 13-mood marker table with a sorter that checks in priority order.

E1 · the ORACLE as the mood regulator
The numbers and trip-lines don't change. They just get hormone names. Anyone reading the code can spot what's turning the dials.
const HORMONES = {
  cortisol:   0.32,  // stress · ↑ when errors rise → gates tighten
  serotonin:  0.78,  // mood · ↑ when verify scores up → spawn rate rises
  adrenaline: 0.41,  // urgency · ↑ during high-priority → cadences accelerate
  oxytocin:   0.65,  // trust · ↑ when quorum aligns → cross-fleet bonuses
  // ... 11 more · see §4.1 below for the canonical fifteen
};
E2 · the WATERMARK as a mood badge
The brand strip shows how the system feels. People catch its mood without opening a dashboard. The complete 13-mood table is written out in §4.2 below.

§4.1 · E1 · HORMONES · 15 HORMONE READS · BEFORE WE START

Each number in HORMONES is measured from what the system is doing right now, recalculated on every regulateHormones() tick, never a saved guess, never a mystery constant.

// inputs (real, simulated stream) → readouts (regulator) → somatic marker (oracle)
//
//   signal sources ──┬─ STATE.trends · STATE.wire · STATE.artifacts · STATE.errors
//                    ├─ EVENT.looks (heroes) · seasonPhase (wall-clock) · velocity
//                    └─ verify-quorum · completeness · focus-spread · gate-rate

On each tick (3000 ms) the regulator works out a target and slides every hormone 35% of the way there: no jumps, no wobble. BE(null, 'HORMONES_REGULATED') finishes the round.

§4.1a · THE FIRST 11 · the textbook hormone + brain-chemical set

hormoneaxis · colourfed bytarget formulawhat a high read meansmood markers
cortisolRISK · rederrRate plus how crowded the area is0.18 + errRate·0.40 + saturation·0.35high → risk of blowback or overcrowding · routing gates clamp downALARMED (≥.68 ∧ adrenaline≥.58) · STRESSED (≥.60) · VIGILANT (≥.45 ∧ adrenaline≥.45)
serotoninSTABILITY · greenavgConf over checked trends0.30 + avgConf·0.60high → a steady, sure, checked signal · suggestions come fasterELATED (≥.66 ∧ endorphin≥.55 ∧ cortisol<.42) · flipped in SATURATED (<.46)
adrenalineURGENCY · amberurgency = clamp(1 − minDays/60)0.20 + urgency·0.70high → a drop is close · rhythms speed upALARMED · HYPED · RAPID · VIGILANT
oxytocinTRUST · cyanavgQuor (mean quorum across checked trends)0.25 + clamp(avgQuor/3)·0.60high → fleets agree with each other · trust bonuses (eligible to fuse)side route: lifts confidence through avg_trust
dopamineDESIRE · magentaavgVel (mean trend speed)0.20 + avgVel·0.70high → something is going viral · "the want"HYPED (≥.66 ∧ adrenaline≥.50)
melatoninRHYTHM · blueseasonPhase (Feb/Mar/Sep/Oct = 1, in-between = 0.5, quiet = 0.15)0.65 − season·0.50 (flipped)high → quiet season, time to rest · pacing by the calendarside route: lowers the Oracle's drop-window score (1−mel weight)
testosteroneBOLDNESS · goldtally.statement, tally.bold0.25 + statement/4·0.50 + bold/4·0.20high → loud statement pieces take over · lean toward bold routesside route: props up ELATED through confidence and bold routing
endorphinJOY · greentally.joy + tally.clean0.22 + (joy+clean)/6·0.60high → a feel-good "dopamine dressing" streakfeeds ELATED (≥.55)
ghrelinNOVELTY HUNGER · violethunger = 0.8 − freshRatio + (1−avgVel)·0.3clamp(hunger)high → people are starving for something new · try new directionsHUNGRY (≥.64 ∧ leptin<.46)
leptinSATIETY · mutedsaturation + freshRatio0.15 + saturation·0.60 + freshRatio·0.20high → everyone's tired of the trend · step back and let it clearSATURATED (≥.60 ∧ serotonin<.46) · the flip side of HUNGRY
norepinephrineFOCUS · cyanfocus = (confs[0] − confs[2]) + 0.40.20 + focus·0.60high → attention locked on the top picks · get sharperFOCUSED (≥.62)

§4.1b · EXPANSION PACK +4 · craft / efficiency / tempo / inflammation

The first 11 handled risk, want and rhythm, but nothing read the making-things side of a creative studio: craft history, how well work converts, how fast it ships, and the heat of public backlash. Four more hormones plug that hole.

hormoneaxis · colourfed bytarget formulawhat a high read meansmood markers · start value · loop-back
prolactinCRAFT · goldartifactScore = clamp(STATE.artifacts/8) · heroScore = clamp(EVENT.heroLooks/3)0.22 + artifact·0.40 + hero·0.40high → a deep memory of past work · hero pieces around · patience pays offNURTURED (≥.62 ∧ serotonin≥.50) · starts at .38 · ↓ the R5 memory layer
insulinEFFICIENCY · greenavgConf, saturation (flipped)0.18 + avgConf·0.45 + (1−saturation)·0.30high → work is actually landing · quality beats crowdingEFFICIENT (≥.62 ∧ serotonin≥.55) · starts at .48 · ↓ the R8 ledger axis
thyroxineTEMPO · amberavgVel, urgency0.20 + avgVel·0.40 + urgency·0.30high → the studio's metabolism · how quickly pieces go outRAPID (≥.62 ∧ adrenaline≥.50) · starts at .42 · ↓ the R0 async rhythm
prostaglandinINFLAMMATION · magentagateRate = clamp(wire.filter(GATE)/4) · errRate · saturation0.12 + gateRate·0.55 + errRate·0.30 + saturation·0.10high → risk of getting cancelled · check where things came from · hold routingINFLAMED (≥.55 ∧ cortisol≥.50) · starts at .20 · ↓ KILLER_T loop-back

§4.1c · BRAIN MESSENGERS +5 · arousal · attention · bonding · flow

Fifteen hormones covered the textbook set plus studio craft, but skipped the neurotransmitter band: the quick brain signals that decide arousal, attention and flow. Patch note 4 brings in five of them and rounds the panel out at 20 reads.

hormoneaxis · colourfed bytarget formulawhat a high read meansmood markers · start value · loop-back
gabaINHIBITION · violetcortisol + adrenaline (pushes against them)0.25 + (cortisol + adrenaline)/2 · 0.45high → the body is calming itself · swings get damped · brake onSEDATED (≥.65 ∧ glutamate<.42 ∧ adrenaline<.40) · starts at .30 · ↓ TREG counterweight
glutamateEXCITATION · cyanEVENT.eventDensity (wire events per second) · adrenaline0.20 + eventDensity·0.50 + adrenaline·0.20high → the wire is packed · whole-brain buzz · gas pedal downAGITATED (≥.62 ∧ gaba<.40 ∧ cortisol>.45) · starts at .28 · ↓ the R0 rhythm
acetylcholineATTENTION · goldverifyRate (trends reaching the check stage) · engramRate0.22 + verifyRate·0.50 + engramRate·0.25high → memories being written · learning at its best · attention zeroed inATTENTIVE (≥.60 ∧ norepinephrine≥.55) · starts at .35 · ↓ R4 graduation loop-back
vasopressinTERRITORY · bluerepeatTrust (trust in the same fleet, again) · heroDensity0.25 + repeatTrust·0.50 + heroDensity·0.20high → sticking with familiar voices · the in-crowd locks in · sure of its turfBONDED (oxytocin≥.60 ∧ ≥.55 ∧ cortisol<.50) · starts at .32 · ↓ §1c loyalty to the instance
anandamideFLOW · greennorepinephrine, insulin, (1−cortisol) · the three sides of flow0.18 + norepinephrine·0.30 + insulin·0.30 + (1−cortisol)·0.20high → top form · making things smoothly for a long stretch · "in the zone"FLOW (≥.62 ∧ dopamine≥.55 ∧ cortisol<.45) · starts at .25 · ↓ R5 memory gets deeper

New opposite pair: gaba ⇄ glutamate: the main brake-versus-gas axis. A brain only stays alive because those two keep pulling against each other in balance, and the simulation lives by the same deal.

§4.1d · EXPANSION PACK 3 · +10 · growth · balance · receptivity · protection · mobilize · venting · friction · health · gate · forge · spec 3.2 patch note 7

The a4 panel of 20 had textbook hormones, craft and brain messengers, yet ten reads a studio really needs were still missing: fleet growth, load balance, how open the audience is, protecting the canon, spending reserves, venting overload, pipeline friction, long-run health, intake gating and good stress. Patch note 7 adds all ten and fills the panel to 30 reads. Seven of them move into existing §4.7 bays that level up from SCAFFOLDED → ACTIVE; three take brand-new bays from the spare 245-254 zone.

hormoneaxis · colourfed bytarget formulawhat a high read meansmood markers · §4.7 bay · loop-back
growth_hormoneGROWTH · cyanspawnRate = clamp(nAll/24) · avgConf0.20 + spawnRate·0.55 + avgConf·0.20high → the fleet is getting bigger · cells multiplying fastGROWING (≥.60 ∧ insulin≥.50) · bay #74 GH_NEURAL · ↓ R1 cells specializing
aldosteroneBALANCE · greenbalance = 1 − saturation · avgQuor0.18 + balance·0.55 + clamp(avgQuor/3)·0.20high → work is spread out evenly · routing in balanceBALANCED (≥.60 ∧ serotonin≥.55) · bay #173 ALDOSTERONE · ↓ TREG load spreader
estrogenRECEPTIVITY · magentaengageRate = avgVel · clamp(avgQuor/3) · 1.60.22 + engageRate·0.55high → the audience is listening · the work is landingRECEPTIVE (≥.60 ∧ oxytocin≥.55) · bay #165 ESTRADIOL_NEURAL · ↓ R4 graduation
progesteronePROTECTIVE · violetauditPosture = gateRate·0.6 + errRate·0.50.18 + auditPosture·0.55 + errRate·0.20high → protect the canon · save-energy modeGUARDED (≥.55 ∧ cortisol≥.45) · bay #170 PROGESTERONE_NRL · ↓ leans toward R9 rollback
glucagonMOBILIZE · amberreserveBurn = (1−avgConf) · urgency · 1.40.18 + reserveBurn·0.65high → dipping into savings · the mirror of insulinSPENDING (≥.60 ∧ adrenaline≥.50) · bay #122 GLUCAGON_NEURAL · ↓ R5 vault withdrawal
anpVENTING · redbackPressure = clamp(wireLen/24)0.15 + backPressure·0.65 + errRate·0.15high → letting off pressure · the queue dumps loadVENTING (≥.55 ∧ cortisol≥.50) · bay #64 ANP_NEURAL · ↓ R0 rhythm governor
resistinFRICTION · redfriction = errRate · (1−avgVel) · 1.80.15 + friction·0.55 + (1−avgVel)·0.20high → the pipeline is grinding · breakers keep trippingSTRAINED (≥.55 ∧ thyroxine<.40) · bay #245 RESISTIN · fresh · ↓ R0 throttle
adiponectinHEALTH · greenretention = artifacts / max(nAll, 6)0.22 + retention·0.55high → the vault keeps compounding · healthy over the long haulHEALTHY (≥.60 ∧ prolactin≥.50) · bay #110 ADIPONECTIN · ↓ R5 vault integrity
hepcidinGATEKEEPING · goldintakeRatio = gateCount / (gateCount + presentCount)0.15 + intakeRatio·0.55 + cortisol·0.20high → scouts can barely get anything in · audits on high alertCLOSED (≥.55 ∧ cortisol≥.50) · bay #246 HEPCIDIN · fresh · ↓ KILLER_T clamps down
fgf21STRESS-FORGE · goldforge = errRate · avgConf · 1.8 + saturation · avgConf · 0.60.15 + forge·0.65high → pressure that helps · stress turns into output instead of damageFORGED (≥.55 ∧ cortisol≥.55 ∧ insulin≥.55) · bay #247 FGF21 · fresh · ↓ REWARD axis adapts

Fresh opposite pairs: insulin ⇄ glucagon (saving vs spending) · adiponectin ⇄ resistin (long-run health vs friction) · gh ⇄ somatostatin (grow vs brake: somatostatin still only framed out in bay #56, lined up to level up in patch note 8).

§4.2 · E2 · THE MOOD TABLE · 47 moods · checked in priority order · spec 4.0 a2

The Oracle takes all 31 reads (30 hormones plus coherency), along with immune and sense activity, and returns exactly one mood: the same {state, cls, phrase} bundle everywhere it shows up (watermark, Oracle window, drop-window). The order is the whole trick; the most urgent, most precise checks go first. Patch note 4 slipped in 5 brain-messenger moods (AGITATED · FLOW · BONDED · ATTENTIVE · SEDATED) beside their nearest relatives; patch note 7 slipped in 12 more (STRAINED · VENTING · CLOSED · SPENDING · ACTIVATED · FORGED · HEALTHY · RECEPTIVE · BALANCED · GROWING · GUARDED · INHIBITED). Spec 4.0 added 3 coherency moods (DISCORDANT · TRANSITIONING · SETTLED · §4.8g), 4.0 a1 the 8 immune moods (§11.8), 4.0 a2 the 6 sense moods (§12.7): 47 in all, and not one was just tacked on at the end; each sits exactly where its precision puts it.

rankmoodfires whencls · look
1ALARMEDcortisol > .68 ∧ adrenaline > .58s-alarmed (red · beats every 0.7s)
1aUNDER_ATTACKifn_broadcast > .65 ∧ cortisol > .55 ∧ coherency < .50s-under-attack (red strobe every 0.5s) · 4.0a1
1bINFECTEDcd8_active > .50 ∧ mhc_drift > .40s-infected (red-violet beat every 0.7s) · 4.0a1
1cCOMPROMISEDmhc_drift > .60 (at least one cell flunking its R14 attestation)s-compromised (red-black flash every 0.4s) · 4.0a1
2INFLAMEDprostaglandin > .55 ∧ cortisol > .50s-inflamed (red-magenta, 0.9s)
2aDISCORDANTcoherency < .40 ∧ |slope(coherency)| > .03s-discordant (red-violet · quick shiver) · 4.0
2bTRANSITIONING.40 ≤ coherency < .70 ∧ |slope(coherency)| > .01s-transitioning (amber-cyan · lazy drift) · 4.0
3STRESSEDcortisol > .60s-stressed (amber beat every 1.2s)
4AGITATEDglutamate > .62 ∧ gaba < .40 ∧ cortisol > .45s-agitated (cyan-red flicker, 0.8s) · a4
4aOVERSTIMULATEDglutamate > .65 ∧ 3 or more senses going off togethers-overstimulated (cyan-red flicker, 0.6s) · 4.0a2
5STRAINEDresistin > .55 ∧ thyroxine < .40s-strained (red with dark amber, 1.4s) · a7
6VENTINGanp > .55 ∧ cortisol > .50s-venting (red-cyan, 0.8s) · a7
7CLOSEDhepcidin > .55 ∧ cortisol > .50s-closed (red-gold, holds still) · a7
7aBLINDEDat least one sense stuck at sensitivity = 0 (its sensor broke)s-blinded (red crossed-out eye) · 4.0a2
8RAPIDthyroxine > .62 ∧ adrenaline > .50s-rapid (amber-gold beat every 1.0s)
8aSENSITIZEDantibody_active_count > threshold ∧ adrenaline > .50s-sensitized (amber-cyan beat every 1.0s) · 4.0a1
8bIMMUNE_ALERTdendritic_packets > rate_baseline ∧ no_pattern_match_yets-immune-alert (amber scanning, 0.8s) · 4.0a1
8cDAZEDchronoception drift > .50 (its sense of time is slipping)s-dazed (violet wobble, 1.4s) · 4.0a2
9SPENDINGglucagon > .60 ∧ adrenaline > .50s-spending (amber-red, 1.1s) · a7
10HYPEDdopamine > .66 ∧ adrenaline > .50s-hyped (magenta beat every 1.6s)
11FLOWanandamide > .62 ∧ dopamine > .55 ∧ cortisol < .45s-flow (green-cyan, glowing evenly) · a4
11aSHARPENEDacetylcholine > .65 ∧ norepinephrine > .60 ∧ ghrelin < .40s-sharpened (gold-cyan, tight halo) · 4.0a2
12ACTIVATEDglutamate > .60 (general buzz · looser than AGITATED)s-activated (cyan glow) · a7
13FORGEDfgf21 > .55 ∧ cortisol > .55 ∧ insulin > .55s-forged (hot gold, 1.3s) · a7
14EFFICIENTinsulin > .62 ∧ serotonin > .55s-efficient (green glow)
15ELATEDserotonin > .66 ∧ endorphin > .55 ∧ cortisol < .42s-elated (gold glow)
15aSETTLEDcoherency > .85 ∧ |slope(coherency)| < .003 (held for 60+ ticks)s-settled (green-gold, glowing evenly) · 4.0
15bIMMUNIZEDmemory_b_hits > .60 ∧ was UNDER_ATTACK · SETTLED now (held for 30+ ticks)s-immunized (green-gold, glowing evenly) · 4.0a1
15cORIENTEDproprioception > .65 ∧ chronoception > .65 ∧ coherency > .80s-oriented (green-blue, holds still) · 4.0a2
16BONDEDoxytocin > .60 ∧ vasopressin > .55 ∧ cortisol < .50s-bonded (blue and cyan glowing as a pair) · a4
17NURTUREDprolactin > .62 ∧ serotonin > .50s-nurtured (gold-rose glow)
18HEALTHYadiponectin > .60 ∧ prolactin > .50s-healthy (rich green glow) · a7
19RECEPTIVEestrogen > .60 ∧ oxytocin > .55s-receptive (gentle magenta glow) · a7
20BALANCEDaldosterone > .60 ∧ serotonin > .55s-balanced (green-cyan, holds still) · a7
21GROWINGgrowth_hormone > .60 ∧ insulin > .50s-growing (cyan, holds still) · a7
22ATTENTIVEacetylcholine > .60 ∧ norepinephrine > .55s-attentive (gold-cyan focus ring) · a4
23HUNGRYghrelin > .64 ∧ leptin < .46s-hungry (violet)
24SATURATEDleptin > .60 ∧ serotonin < .46s-saturated (greyed out)
24aNUMBmean sensor sensitivity < .30 ∧ adaptation depth > .70 (too used to everything)s-numb (dull grey · slow fade) · 4.0a2
25FOCUSEDnorepinephrine > .62s-focused (cyan)
26GUARDEDprogesterone > .55 ∧ cortisol > .45s-guarded (violet-gold) · a7
26aTOLERATEDtreg > .60 ∧ ifn_broadcast < .30 ∧ coherency > .80s-tolerated (gentle green glow) · 4.0a1
26bQUARANTINEDphage_active > .60 (cells walled off in a sandbox for a look)s-quarantined (violet, frozen) · 4.0a1
27SEDATEDgaba > .65 ∧ glutamate < .42 ∧ adrenaline < .40s-sedated (dim violet, slow throb every 2.4s) · a4
28INHIBITEDgaba > .60 ∧ cortisol < .45 (the filter is doing its job · looser than SEDATED)s-inhibited (blue) · a7
29VIGILANTcortisol > .45 ∧ adrenaline > .45s-vigilant (gold)
―CALMthe fallback · nothing else matcheds-calm (green)

The first match takes it. When a loose mood (ACTIVATED · INHIBITED) overlaps a sharper sibling (AGITATED · SEDATED), the sharper one wins simply because it ranks higher. That's how the table keeps growing: every new mood adds precision without breaking a single old check.

§4.3 · THE FIVE BIG AXES · how 30 reads map the whole molecular board · spec 3.2 patch note 7

All 30 reads fit under five big axes. The name in brackets is the small axis: the exact part that hormone plays inside its big one. Patch note 4 (brain messengers) and patch note 7 (+10) widened the map, and still the same five big axes hold without sprouting new ones.

  • RISK big axis: cortisol · prostaglandin · adrenaline · anp (VENTING) · resistin (FRICTION) · hepcidin (GATEKEEPING) · progesterone (PROTECTIVE)
  • STABILITY big axis: serotonin · oxytocin · insulin · prolactin · adiponectin (HEALTH) · aldosterone (BALANCE) · estrogen (RECEPTIVITY) · gaba (INHIBITION) · vasopressin (TERRITORY) · anandamide (FLOW)
  • DRIVE big axis: dopamine · testosterone · ghrelin · thyroxine · growth_hormone (GROWTH) · glucagon (MOBILIZE) · glutamate (EXCITATION)
  • REGULATION big axis: melatonin · leptin · norepinephrine · acetylcholine (ATTENTION)
  • REWARD big axis: endorphin · fgf21 (STRESS-FORGE)

Opposite pairs (when one runs high, it mutes the other's marker):

  • ghrelin ⇄ leptin: starving vs stuffed
  • adrenaline ⇄ melatonin: hurry vs rest
  • serotonin ⇄ cortisol: steady vs danger · both hold the key to ELATED
  • prostaglandin ⇄ insulin: inflamed vs efficient · wellness vs alarm
  • gaba ⇄ glutamate: the main brake vs gas · a brain only survives while they keep pulling · a4
  • insulin ⇄ glucagon: save vs spend · the body's energy budget · a7
  • adiponectin ⇄ resistin: long-run wellness vs a grinding pipeline · a7
  • growth_hormone ⇄ somatostatin: grow vs brake (somatostatin still only SCAFFOLDED in bay #56 · lined up to level up in a8)

§4.4 · LIMITS · what this is not

the E1 honesty promise
None of this is a crystal ball. It won't tell you which trend wins. It's a squeezed-down view of what's happening inside the molecular simulation, spoken in hormone language because that language lines up neatly with how the studio ought to feel about the signal it measured.
  • cortisol high ≠ "danger in the market": it tells you this run has piled up enough errors and crowding that the mood marker should give you a heads-up
  • insulin high ≠ "your collection is a sure seller": it means the pool of checked trends feels sure of itself AND isn't all piled into one area
  • prostaglandin high ≠ "you're about to get cancelled": it means GATE events went off on the wire lately, so audits ought to get stricter

Each input leads back to a state variable that was measured (in simulation). Zero baked-in guesses. Even [ stub ] feeds give truthful hormone numbers, since the numbers describe the simulation and never claim to describe the real world.

§4.5 · SYNAPSE MECHANICS · the gears under HORMONES · spec 3.2 patch note 5

The 20 hormone numbers up top are measurements. To model mind-altering medicine truthfully, SSRI · MAOI · SNRI · atypicals, the simulation has to go one floor down: the machinery inside the synaptic gap that produces those numbers. That gap is where monoamines really hang out, where reuptake pumps and breakdown enzymes set the level, and where the receiving receptors rise, fall and react across days and weeks. The real clock those drugs run on is receptor density.

E1+ · a SYNAPSE is a four-piece band: APC + MEMORY_T + KILLER_T + TREG
One synapse isn't one cell. It's four jobs working in a line. APC = the sending end (lets a packet of messenger go). MEMORY_T = the receiving receptor cluster (keeps a record of past exposure by changing its density). KILLER_T = the reuptake pump (mops up the signal · SERT · DAT · NET). TREG = the breakdown enzyme (the balance safety net · MAO-A · MAO-B · COMT · AChE · HNMT). The hormone number above is simply what comes out once all four finish their tick.

§4.5a · WHAT A SYNAPSE TRACKS · 6 numbers for each monoamine

// every monoamine synapse tracks 6 dynamic variables · seed once, regulate every tick
const SYNAPSE_SCHEMA = {
  release_rate:         0.50,  // APC vesicle dump per tick · driven by presynaptic firing rate
  synaptic_conc:        0.30,  // current concentration in the cleft · 0..1.4 (can briefly overshoot)
  reuptake_rate:        0.70,  // KILLER_T transporter activity · fraction cleared per tick
  breakdown_rate:       0.20,  // TREG enzyme activity · MAO/COMT/AChE degradation per tick
  receptor_density:     1.00,  // MEMORY_T count · adapts SLOWLY to chronic exposure (days)
  receptor_sensitivity: 1.00,  // MEMORY_T per-receptor gain · adapts even slower (weeks)
};

// readout · what feeds the HORMONES layer above (§4.1)
// signal = how much postsynaptic activation actually occurs
function synapseReadout(syn) {
  return syn.synaptic_conc * syn.receptor_density * syn.receptor_sensitivity;
}

§4.5b · ONE SYNAPSE TICK · 5 steps · every 3000ms

// runs every 3000ms alongside regulateHormones() · drugLoad defaults to zero
function synapseTick(syn, drugLoad = ZERO_DRUG) {
  // 1 · RELEASE — APC dumps vesicle into the cleft
  syn.synaptic_conc += syn.release_rate * 0.10;

  // 2 · REUPTAKE — KILLER_T pulls neurotransmitter back · DRUG-MODULATED
  const reuptake = syn.reuptake_rate * (1 - drugLoad.reuptake_block);
  syn.synaptic_conc -= reuptake * syn.synaptic_conc * 0.40;

  // 3 · BREAKDOWN — TREG enzyme degrades · DRUG-MODULATED (MAOIs)
  const breakdown = syn.breakdown_rate * (1 - drugLoad.mao_inhibit);
  syn.synaptic_conc -= breakdown * syn.synaptic_conc * 0.15;

  // 4 · CLAMP — concentration stays in physiological range (can briefly exceed baseline)
  syn.synaptic_conc = clamp(syn.synaptic_conc, 0, 1.4);

  // 5 · RECEPTOR ADAPTATION — MEMORY_T density tracks exposure · VERY SLOW
  const exposure       = syn.synaptic_conc;
  const target_density = 1 - (exposure - 0.40) * 0.70;     // chronic high → downregulate
  syn.receptor_density += (target_density - syn.receptor_density) * 0.0012;  // ~5 weeks to half-adapt
  syn.receptor_density  = clamp(syn.receptor_density, 0.30, 1.40);

  return BE(null, 'SYNAPSE_TICKED');
}

§4.5c · THE FIVE MONOAMINE SYNAPSES · standard hookup

synapsepump (KILLER_T)breakdown (TREG)receptor families (MEMORY_T)drives this hormone
SEROTONIN (5-HT)SERTMAO-A5-HT1A · 5-HT2A · 5-HT2C · 5-HT3 · 5-HT7the serotonin read
DOPAMINE (DA)DATMAO-B · COMTD1 · D2 · D3 · D4 · D5the dopamine read
NOREPINEPHRINE (NE)NETMAO-A · COMTα1 · α2 · β1 · β2 · β3the norepinephrine read
HISTAMINE (HA): (drifts away)HNMT · DAOH1 · H2 · H3 · H4AROUSAL axis · framed out only
ACETYLCHOLINE (ACh)CHT1 (pulls choline back in)AChEmuscarinic M1–M5 · nicotinic α/βthe acetylcholine read (§4.1c)

§4.5d · WHY RECEPTOR DENSITY IS THE BIG DEAL · the time axis

This one number is what keeps the simulation truthful about mind-altering drugs:

  • Right away (minutes to hours): the drug lifts synaptic_conc → the read jumps up at once → better mood · side effects · jitters · a rush.
  • Settling in (1 to 6 weeks): synaptic_conc stays high → target_density sinks → MEMORY_T turns itself down → the read drifts back toward normal even though the drug is still around. That's why SSRIs need weeks before depression lifts.
  • Tolerance: a receptor_density < 1.0 that sticks around means the same dose gives a weaker signal as time goes on. The synapse really does remember what it's been exposed to.
  • Stopping: the drug ends → pumps and enzymes spring back → synaptic_conc drops quickly, yet receptor_density is still turned down → the read sinks under normal for weeks, until receptors climb back. SSRI discontinuation syndrome shows up in the model all by itself: nobody had to code it in.
  • Sensitization: synaptic_conc stays low → target_density > 1.0 → receptors turn up · the synapse reacts harder to tiny signals. That covers antidepressant rebound, kindling, and the extra sensitivity after quitting stimulants.

§4.5e · WHO PLAYS WHICH PART · synapse jobs line up with the seven-stage pipeline

part of the synapsecell typemove (§5)its job on the line
sending terminalAPCPRESENTlets a packet of messenger into the gap when commander DNA fires
receiving receptor clusterMEMORY_TREMEMBERdensity follows total exposure · shifts over days to weeks
reuptake pumpKILLER_TGATEmops up the signal · what SSRIs/SNRIs/NDRIs aim at
breakdown enzymeTREGREGULATEthe balance safety net · what MAOIs aim at
the synapse as a wholea piece of an organEXPRESSputs out the number HORMONES reads (§4.1)

§4.6 · MEDICINE FROM OUTSIDE · the APPLY move · spec 3.2 patch note 5

A drug isn't a mystery number slapped onto a hormone. A drug turns one exact synapse job up or down, at an exact strength, with an exact half-life. Its blood level climbs to a plateau over days and slides away on a curve once you stop. It never reaches the read directly. It reaches the rates that make the read. Receptor density handles everything after that.

FRESH MOVE · APPLY · move number 16 · a push from outside
APPLY(drug, plasma_conc, synapses): shifts one or more synapse rates. Don't mix it up with REGULATE (the body tuning itself): APPLY is a push that comes from outside the body. It joins §5 as move number 16 · tier pharma.

§4.6a · DRUG SHEETS · the four families worth modelling

// SSRI · selective serotonin reuptake inhibition · blocks SERT only
const SSRI = {
  fluoxetine:   { target: 'SERT', mechanism: 'block', potency: 0.78, halflife_h: 100 },
  sertraline:   { target: 'SERT', mechanism: 'block', potency: 0.82, halflife_h: 26  },
  escitalopram: { target: 'SERT', mechanism: 'block', potency: 0.85, halflife_h: 30  },
  paroxetine:   { target: 'SERT', mechanism: 'block', potency: 0.80, halflife_h: 21  },
};

// MAOI · monoamine oxidase inhibition · raises ALL three monoamines
const MAOI = {
  phenelzine:   { target: 'MAO-A+B', mechanism: 'irreversible_inhibit', potency: 0.95, halflife_h: 11 },
  selegiline:   { target: 'MAO-B',   mechanism: 'inhibit',                potency: 0.80, halflife_h: 10 },
  moclobemide:  { target: 'MAO-A',   mechanism: 'reversible_inhibit',    potency: 0.75, halflife_h: 2  },
  tranylcypromine:{ target: 'MAO-A+B', mechanism: 'irreversible_inhibit', potency: 0.92, halflife_h: 2 },
};

// SNRI · serotonin AND norepinephrine reuptake · blocks SERT + NET
const SNRI = {
  venlafaxine:  { targets: ['SERT', 'NET'], potency: [0.75, 0.60], halflife_h: 5  },
  duloxetine:   { targets: ['SERT', 'NET'], potency: [0.80, 0.70], halflife_h: 12 },
};

// ATYPICALS · receptor agonist/antagonist or unusual mechanism
const ATYPICAL = {
  bupropion:    { targets: ['NET', 'DAT'],    potency: [0.55, 0.40], halflife_h: 21 },        // NDRI
  mirtazapine:  { targets: ['5-HT2A', 'α2'],  mechanism: 'antagonist',     potency: [0.85, 0.70] },  // removes NE brake
  trazodone:    { targets: ['5-HT2A', 'SERT'], mechanism: 'mixed',         potency: [0.80, 0.45] },
  vortioxetine: { targets: ['SERT', '5-HT1A'], mechanism: 'mixed',        potency: [0.75, 0.65] },  // multimodal
};

§4.6b · APPLY · the function that does the pushing

// every tick · plasma_conc tracks rising/falling drug level · 0..1
function APPLY(drug, plasma_conc, synapses) {

  // reuptake inhibitors (SSRI · SNRI · NDRI) — modulate KILLER_T per target
  if (drug.target === 'SERT' || drug.targets?.includes('SERT')) {
    synapses.serotonin.drug.reuptake_block = drug.potency * plasma_conc;
  }
  if (drug.target === 'NET' || drug.targets?.includes('NET')) {
    synapses.norepinephrine.drug.reuptake_block = drug.potency * plasma_conc;
  }
  if (drug.target === 'DAT' || drug.targets?.includes('DAT')) {
    synapses.dopamine.drug.reuptake_block = drug.potency * plasma_conc;
  }

  // MAO inhibitors — modulate TREG · MAO-A hits 5-HT + NE · MAO-B hits DA
  if (drug.target?.includes('MAO-A')) {
    synapses.serotonin.drug.mao_inhibit      = drug.potency * plasma_conc;
    synapses.norepinephrine.drug.mao_inhibit = drug.potency * plasma_conc;
  }
  if (drug.target?.includes('MAO-B')) {
    synapses.dopamine.drug.mao_inhibit = drug.potency * plasma_conc;
  }

  // receptor antagonists — modulate MEMORY_T effective sensitivity OR remove autoreceptor brakes
  if (drug.mechanism === 'antagonist') {
    // example · mirtazapine α2-antagonist removes the NE presynaptic brake → more release
    synapses.norepinephrine.release_rate *= (1 + drug.potency * plasma_conc * 0.5);
  }

  return BE(null, 'DRUG_APPLIED');
}

// plasma concentration kinetics · approach steady state on dose · exponential decay on stop
function plasmaTick(drug_state, isDosing) {
  const k  = Math.LN2 / (drug_state.halflife_h * 3600 * 1000);  // per ms
  const dt = 3000;                                            // tick interval
  if (isDosing) {
    drug_state.plasma_conc += (1.0 - drug_state.plasma_conc) * k * dt * 8;  // approach 1.0
  } else {
    drug_state.plasma_conc *= Math.exp(-k * dt);                            // exponential decay
  }
  return drug_state.plasma_conc;
}

§4.6c · REPLAY TAPE · how a pretend SSRI run plays out

A made-up example trace · 90 days taking it, then 90 days off · sertraline at a treatment dose:

dayplasma_concsynaptic_conc (5-HT)receptor_densityreadhow it feels
0 (nothing taken)0.000.401.000.40starting point · low mood
1 (dose one)0.180.620.990.61quick bump · upset stomach · jittery
70.700.850.940.80read going up · "is this doing anything?"
140.920.880.850.75read levels off while receptors adjust
280.980.860.720.62steady · a new normal · "okay, it's helping"
421.000.850.680.58in the helpful zone · holding
90 (quit)0.000.400.680.27coming off · read drops UNDER the starting point
90+300.000.400.920.37receptors climbing back · nearly at the old normal
90+900.000.401.000.40back to start · density fully rebuilt

The read doesn't follow the drug alone. It follows the drug and the receptors' memory of it. So the line never jumps like a staircase. So SSRIs do help, just slowly. And so quitting cold turkey stings.

§4.6d · LIMITS · what this layer is not

synapse mechanics · the honesty promise
These numbers are stripped-down rates. Real drug kinetics use one or two body compartments with separate absorb, spread, process and clear-out phases. Real receptor change involves G-protein fatigue, β-arrestin pulling in, receptors cycling in and out of the cell, and genes switching on and off across several clocks. The model gets the outline right (quick bump · weeks until it helps · a dip on quitting · slow return), not the size. The strength numbers are for show, not for clinics.
  • Do not use this to prescribe anything. It can't tell whether fluoxetine will work for you.
  • The strengths are tuned so the simulation moves in the right general way, not to match blood tests.
  • Here, receptor change is one straight delay · in a real body at least five clocks tangle together.
  • Drugs clashing with other drugs · CYP450 processing · taking it with food · protein binding in the blood · genetic differences: none of it is covered · each would arrive as another commander nudging the rate numbers.
  • Any screen that shows these mechanics must carry the [ sim ] tag, never pass this off as medical advice.

§4.7 · THE SYNAPSE REGISTRY · 255 bays · one uint8 each · spec 3.2 patch note 6

The 5 monoamines back in §4.5c are the tutorial level: the synapses any drug model has to deal with. They're nowhere near the edge of the map. Human brain chemistry runs on roughly 150–200 named messengers, peptides, gases and lipids · this section lays out the whole map as a registry of 255 bays indexed by a uint8. Five bays are ACTIVE; the others are SCAFFOLDED (named, sorted, and ready to level up) · RESERVED (free for future official picks) · or META (the lost-and-found for signals nobody has mapped yet).

R10 · SYNAPSE_ID FITS IN ONE BYTE
Each synapse carries a uint8 ID. SERT, DAT and NET are not synapses: they're KILLER_T cells pointed at specific synapse IDs. The §4.6 drug sheets name synapses by bay number, not by text. That turns spreading a drug's load into one sweep over 256 entries per tick · O(1) per synapse · cache-happy · ledger-happy (one block's synapse state packs into 256 tight bytes of changes). The five-monoamine model was just a small corner of this.

§4.7a · WHY 255 (and not 5, and not endless)

  • Lines up with bytes: a uint8 ID · lives in one register · a 256-row lookup table sits inside the L1 cache.
  • Lines up with the ledger: each tick's synapse changes = at most 255 (bay, Δsignal) pairs · they pack into a single block append (§1d).
  • Roomy enough: human brain chemistry adds up to about 150–200 home-grown messengers, neuropeptides, gases and lipids · 255 leaves space for about 50 new, lab-made or outside-substance binding sheets.
  • Not a wall: §4.7f spells out how to step up from uint8 to uint16. One schema migration unlocks 65,535 bays when the day comes (signalling at full gene-expression scale, modelling several organisms, strange chemistry).
  • Upfront about the framing: today only 5 bays run real math. The other 250 carry names and classes, so levelling one up to ACTIVE is a small fixed job · no rebuild required.

§4.7b · REGISTRY LAYOUT · what one bay looks like

// every slot is the same shape · 5 actives just have populated kinetics
const SYNAPSE_SLOT_SCHEMA = {
  id:            0,                // uint8 · 0..255
  name:          'SEROTONIN',      // canonical SHOUT_CASE name
  aliases:       ['5-HT'],          // shorthand · clinical · trade
  class:         'monoamine',      // taxonomy bucket · drives default rate priors
  transporter:   'SERT',           // KILLER_T cell name · null if diffusion-only
  degrader:      ['MAO-A'],         // TREG enzymes · array · null for non-degraded
  receptors:     ['5-HT1A', '5-HT2A', '5-HT2C', '5-HT3', '5-HT7'],
  kinetics:      SYNAPSE_SCHEMA,    // the 6-var state from §4.5a · null when SCAFFOLDED
  feeds_hormone: 'serotonin',      // which §4.1 readout this synapse drives · null if standalone
  status:        'ACTIVE',         // ACTIVE · SCAFFOLDED · RESERVED · META
  axis:          'STABILITY',      // §4.3 axis assignment
};

// the registry itself · indexed access by slot ID
const SYNAPSE_REGISTRY = new Array(256);
// 0..254 = canonical synapses (5 ACTIVE · ~200 SCAFFOLDED · ~50 RESERVED)
// 255    = META · unmapped signal catch-all

§4.7c · THE FLOOR PLAN · 10 zones

zoneclassbaysstatus breakdownwhat's there
0–4MONOAMINES55 ACTIVEthe §4.5 tutorial set
5–9AMINO ACID TRANSMITTERS55 SCAFFOLDEDquick go/stop signals · GLUTAMATE · GABA · GLYCINE · ASPARTATE · D-SERINE
10–19TRACE AMINES + ADJACENTS1010 SCAFFOLDEDPEA · tyramine · tryptamine · octopamine · agmatine · epinephrine · and friends
20–49OPIOID PEPTIDES3020 SCAFFOLDED · 10 RESERVEDendorphins · enkephalins · dynorphins · endomorphins · nociceptin
50–89HYPOTHALAMIC + PITUITARY PEPTIDES4030 SCAFFOLDED · 10 RESERVEDOXT · AVP · CRH · TRH · GnRH · GHRH · SST · orexins · MCH · the MSH family
90–129TACHYKININS + APPETITE + GUT-BRAIN4035 SCAFFOLDED · 5 RESERVEDsubstance-P · neurokinins · NPY · CCK · GLP-1 · ghrelin · galanin · CART · AgRP · VIP · PACAP · CGRP
130–159GASES · PURINES · ENDOCANNABINOIDS · LIPIDS3030 SCAFFOLDEDNO · CO · H₂S · ATP · adenosine · anandamide · 2-AG · OEA · prostaglandins · leukotrienes
160–189NEUROSTEROIDS · CYTOKINES · NEUROTROPHINS3030 SCAFFOLDEDallopregnanolone · DHEA-S · cortisol(neural) · IL-1β/IL-6/IL-10/TNF-α · BDNF · NGF · IGF-1
190–209EXOTIC ENDOGENOUS + TRACE2015 SCAFFOLDED · 5 RESERVEDNAAG · kynurenic · quinolinic · taurine · GHB(endogenous) · DMT(trace) · β-carbolines
210–244EXOGENOUS BINDING PROFILES3535 SCAFFOLDEDLSD · psilocin · DMT(exo) · MDMA · ketamine · THC · CBD · nicotine · caffeine · alcohol · benzo · opioids · stimulants · ibogaine
245–254RESERVED1010 RESERVEDspare room for new, not-yet-found or per-user custom signals
255META · UNMAPPED11 METAlost-and-found · anything unsorted lands here · passed along to the META layer (§1e)

§4.7d · THE ROSTER · official bay assignments

Columns: SHOUT_CASE name · class · pump · breakdown enzyme · status. ACTIVE = hooked into synapseTick() · SCAFFOLDED = signed up, sorted, ready to level up · RESERVED = still free · META = lost-and-found.

0–4 · MONOAMINES · ACTIVE (the official five · see §4.5c)

 0  SEROTONIN          monoamine     · SERT  · MAO-A         · 5-HT1A..5-HT7              · ACTIVE
 1  DOPAMINE           monoamine     · DAT   · MAO-B · COMT  · D1..D5                     · ACTIVE
 2  NOREPINEPHRINE     monoamine     · NET   · MAO-A · COMT  · α1 · α2 · β1 · β2 · β3      · ACTIVE
 3  HISTAMINE          monoamine     · —     · HNMT · DAO    · H1..H4                     · ACTIVE
 4  ACETYLCHOLINE      cholinergic   · CHT1  · AChE          · M1..M5 · nAChR α/β         · ACTIVE

5–9 · AMINO ACID TRANSMITTERS (fast signalling · what the cortex really runs on)

 5  GLUTAMATE          amino_acid    · EAAT1-5  · gln synthase  · NMDA · AMPA · kainate · mGluR1-8
 6  GABA               amino_acid    · GAT1-3   · GABA-T        · GABA-A · GABA-B · GABA-C
 7  GLYCINE            amino_acid    · GlyT1-2  · —             · GlyR · NMDA co-agonist
 8  ASPARTATE          amino_acid    · EAAT     · —             · NMDA agonist
 9  D-SERINE           amino_acid    · ASCT1    · D-AAO         · NMDA co-agonist

10–19 · TRACE AMINES + CATECHOL NEIGHBOURS

10  PEA                trace_amine   · —       · MAO-B         · TAAR1
11  TYRAMINE           trace_amine   · —       · MAO-A/B       · TAAR1 · α-adrenergic indirect
12  TRYPTAMINE         trace_amine   · —       · MAO-A/B       · TAAR1
13  OCTOPAMINE         trace_amine   · —       · MAO-B         · TAAR1 · α-adrenergic
14  AGMATINE           polyamine     · —       · DAO · AGMAT   · imidazoline · α2 · NMDA mod
15  EPINEPHRINE        monoamine     · NET     · MAO-A · COMT  · α/β adrenergic (split from NE for adrenal-source)
16  MELATONIN_BRAIN    indoleamine   · —       · CYP1A2        · MT1 · MT2 (neural slot · distinct from §4.1 hormone)
17  N-METHYL-PEA       trace_amine   · —       · MAO-B         · TAAR1
18  SYNEPHRINE         trace_amine   · —       · MAO            · β-adrenergic
19  3-IODOTHYRONAMINE  thyronamine   · —       · —             · TAAR1 (thyroid-trace bridge)

20–49 · OPIOID PEPTIDES

20  BETA_ENDORPHIN     opioid · POMC-derived   · NEP · ACE  · μ-opioid · δ-opioid
21  ALPHA_ENDORPHIN    opioid · POMC-derived   · NEP        · μ-opioid
22  GAMMA_ENDORPHIN    opioid · POMC-derived   · NEP        · μ-opioid
23  MET_ENKEPHALIN     opioid · proenkephalin  · NEP · APN  · δ-opioid > μ-opioid
24  LEU_ENKEPHALIN     opioid · proenkephalin  · NEP        · δ-opioid > μ-opioid
25  DYNORPHIN_A        opioid · prodynorphin   · DYN-conv   · κ-opioid (dysphoria axis)
26  DYNORPHIN_B        opioid · prodynorphin   · DYN-conv   · κ-opioid
27  ALPHA_NEOENDORPHIN opioid · prodynorphin   · —          · κ-opioid
28  BETA_NEOENDORPHIN  opioid · prodynorphin   · —          · κ-opioid
29  NOCICEPTIN         opioid · pronociceptin  · NEP        · NOP receptor (pain modulation)
30  ENDOMORPHIN_1      opioid · synthesis TBD  · DPP-IV     · μ-opioid (high selectivity)
31  ENDOMORPHIN_2      opioid · synthesis TBD  · DPP-IV     · μ-opioid
32  BIG_DYNORPHIN      opioid · prodynorphin   · DYN-conv   · κ-opioid (long form)
33  RIMORPHIN          opioid · prodynorphin   · —          · κ-opioid
34  LEUMORPHIN         opioid · prodynorphin   · —          · κ-opioid
35  DELTORPHIN         opioid · amphibian-like · —          · δ-opioid (rare endogenous)
36  PROENKEPHALIN      opioid · precursor      · cleaved    · pre-stage marker
37  PRODYNORPHIN       opioid · precursor      · cleaved    · pre-stage marker
38  POMC               precursor · pituitary   · cleaved    · feeds β-endorphin · MSH · ACTH
39  ACTH               peptide · pituitary     · NEP        · MC2R (cortisol release driver)
40-49  RESERVED · opioid family · open for novel endogenous ligands

50–89 · HYPOTHALAMUS + PITUITARY PEPTIDES

50  OXYTOCIN           nonapeptide · OXT       · oxytocinase  · OXTR · vasopressin V1a cross
51  VASOPRESSIN        nonapeptide · AVP       · vasopressinase · V1a · V1b · V2 (ADH)
52  CRH                peptide · paraventricular · CRH-BP   · CRHR1 · CRHR2 (stress axis upstream)
53  TRH                tripeptide · paraventricular · PAP   · TRHR1 (thyroid axis upstream)
54  GnRH               decapeptide · arcuate    · MMP-9    · GnRHR (reproductive axis upstream)
55  GHRH               peptide · arcuate        · DPP-IV   · GHRHR (growth axis upstream)
56  SOMATOSTATIN       peptide · paraventricular · NEP     · SSTR1-5 (inhibitor · brakes GH/TSH/insulin)
57  KISSPEPTIN         peptide · arcuate        · MMP-9    · KISS1R (deep upstream · puberty + GnRH)
58  OREXIN_A           peptide · lateral hypothalamic · — · OX1R · OX2R (wakefulness)
59  OREXIN_B           peptide · lateral hypothalamic · — · OX2R (wakefulness)
60  MCH                peptide · lateral hypothalamic · — · MCHR1 · MCHR2 (appetite + REM sleep)
61  ALPHA_MSH          peptide · POMC-derived   · NEP      · MC3R · MC4R (appetite suppression)
62  BETA_MSH           peptide · POMC-derived   · NEP      · MC4R
63  GAMMA_MSH          peptide · POMC-derived   · NEP      · MC3R · MC5R
64  ANP_NEURAL         peptide · atrial-brain   · NEP      · NPR-A (natriuretic · neural slot)
65  BNP                peptide · brain          · NEP      · NPR-A (cardiac stress)
66  CNP                peptide · endothelium    · NEP      · NPR-B
67  ADRENOMEDULLIN     peptide · adrenal/neural · NEP      · CRLR + RAMP2/3
68  NEUROTENSIN        peptide · diffuse        · NEP      · NTSR1-3
69  NEUROMEDIN_N       peptide · diffuse        · NEP      · NTSR2
70  NEUROMEDIN_B       peptide · diffuse        · NEP      · BB1 (smooth muscle + CNS)
71  NEUROMEDIN_U       peptide · diffuse        · —        · NMUR1 · NMUR2
72  RELAXIN_3          peptide · nucleus incertus · —      · RXFP3 (arousal · feeding · stress)
73  PROLACTIN_NEURAL   protein · pituitary slot · —        · PRLR (neural form · §4.1 has body form)
74  GH_NEURAL          protein · pituitary slot · IDE      · GHR (neural form)
75  LH                 glycoprotein · pituitary · —        · LHCGR (gonadal trigger)
76  FSH                glycoprotein · pituitary · —        · FSHR (gonadal trigger)
77  TSH                glycoprotein · pituitary · —        · TSHR (thyroid trigger)
78  PRL_BINDING_PEPT   modulator    · pituitary · —        · prolactin regulator
79  GALANIN_LIKE_PEPT  peptide · arcuate        · —        · GALR1 · GALR2 (feeding · GnRH)
80-89  RESERVED · hypothalamic/pituitary headroom

90–129 · TACHYKININS + HUNGER + GUT-TO-BRAIN PEPTIDES

90  SUBSTANCE_P        tachykinin · TAC1     · NEP · ACE   · NK1R (pain + emotion)
91  NEUROKININ_A       tachykinin · TAC1     · NEP         · NK2R
92  NEUROKININ_B       tachykinin · TAC3     · NEP         · NK3R
93  NEUROPEPTIDE_K     tachykinin · TAC1     · NEP         · NK2R
94  NEUROPEPTIDE_GAMMA tachykinin · TAC1     · NEP         · NK2R
95  HEMOKININ_1        tachykinin · TAC4     · NEP         · NK1R (peripheral immune)
96  ELEDOISIN          tachykinin · external · —           · NK2R (homolog · scaffolded for completeness)
97  NPY                peptide · arcuate     · DPP-IV      · Y1 · Y2 · Y4 · Y5 (appetite · anxiolysis)
98  PYY                peptide · L-cells     · DPP-IV      · Y2 (fullness)
99  PP                 peptide · pancreas    · DPP-IV      · Y4 (pancreatic polypeptide · satiety)
100 CCK                peptide · I-cells     · TACE        · CCK1R · CCK2R (satiety · gut-brain)
101 GLP_1              peptide · L-cells     · DPP-IV      · GLP1R (satiety + insulin)
102 GLP_2              peptide · L-cells     · DPP-IV      · GLP2R (gut growth)
103 GIP                peptide · K-cells     · DPP-IV      · GIPR (insulin trigger)
104 GASTRIN            peptide · G-cells     · —           · CCK2R (acid secretion)
105 SECRETIN           peptide · S-cells     · —           · SCTR (bicarbonate)
106 MOTILIN            peptide · M-cells     · —           · MLNR (gut motility)
107 GHRELIN_NEURAL     peptide · arcuate     · —           · GHSR (hunger · neural slot)
108 OBESTATIN          peptide · stomach     · —           · GPR39 (anti-ghrelin)
109 LEPTIN_NEURAL      protein · adipose-brain · —         · LEPR (satiety · neural slot)
110 ADIPONECTIN        protein · adipose     · —           · AdipoR1 · AdipoR2 (efficiency)
111 AMYLIN             peptide · β-cells     · —           · AMY1-3 (slow glucose)
112 GALANIN            peptide · diffuse     · —           · GALR1 · GALR2 · GALR3 (calming)
113 CART               peptide · arcuate     · —           · GPR160 (reward · satiety)
114 AgRP               peptide · arcuate     · —           · MC3R/MC4R antagonist (hunger)
115 POMC_NEURAL        precursor · arcuate   · cleaved     · feeds α-MSH · β-endorphin (satiety neural)
116 CGRP               peptide · trigeminal  · —           · CALCRL + RAMP1 (migraine · vasodilation)
117 CALCITONIN_NEURAL  peptide · C-cells     · —           · CTR (calcium · neural slot)
118 ADRENOMEDULLIN_2   peptide · brain       · —           · CRLR + RAMP1/2/3
119 INTERMEDIN         peptide · brain       · —           · CRLR (cardiovascular regulation)
120 VIP                peptide · suprachiasm · —           · VPAC1 · VPAC2 (circadian · vasodilation)
121 PACAP              peptide · diffuse     · —           · PAC1 · VPAC1/2 (stress + neuroprotection)
122 GLUCAGON_NEURAL    peptide · α-cells     · DPP-IV      · GCGR (energy mobilize · neural slot)
123 SECRETIN_FAMILY    peptide group         · —           · multi-receptor (umbrella slot)
124 RFRP_3             peptide · DMH         · —           · NPFFR1 (GnRH brake)
125 QRFP_26RFa         peptide · LH/VMH      · —           · QRFPR (appetite stimulant)
126 KISSPEPTIN_RELATED peptide family        · —           · KISS1R variants
127 COCAINE_AMPH_REG   CART variant         · —           · GPR160 (CART-3 form)
128 BRS_3_LIGAND       peptide · orphan      · —           · BRS3 (bombesin receptor 3 · metabolic)
129 NESFATIN_1         peptide · NUCB2-derived · —         · unknown receptor (satiety · anxiety)

130–159 · GASES · PURINES · ENDOCANNABINOIDS · LIPID MESSENGERS

130 NITRIC_OXIDE       gas         · NOS1/2/3 · spontaneous   · sGC + diffusion (retrograde signal)
131 CARBON_MONOXIDE    gas         · HO-1/2   · spontaneous   · sGC (heme-derived signaling)
132 HYDROGEN_SULFIDE   gas         · CBS · CSE · spontaneous · K-ATP channels (slow signaling)
133 AMMONIA            gas         · multiple · GS            · pH + NMDA modulation
134 ATP                purine      · vesicular · ectonucleotidases · P2X · P2Y
135 ADP                purine      · ATP-derived · ENTPDs    · P2Y12
136 AMP                purine      · derived  · NT5E         · adenosine precursor
137 ADENOSINE          purine      · ENT1/2   · ADA          · A1 · A2A · A2B · A3 (caffeine antagonist target)
138 GUANOSINE          purine      · ENT      · PNP          · GPR (orphan · neuroprotection)
139 GTP                purine      · vesicular · NTPDase     · P2Y
140 cAMP_EXTRA         second-msg  · PDEs     · degraded     · extracellular adenosine source
141 cGMP_EXTRA         second-msg  · PDEs     · degraded     · extracellular guanosine source
142 ANANDAMIDE         endocannab  · — (on-demand) · FAAH    · CB1 · CB2 · TRPV1
143 AG_2               endocannab  · — (on-demand) · MAGL    · CB1 · CB2 (most abundant)
144 NOLADIN_ETHER      endocannab  · trace    · FAAH         · CB1
145 VIRODHAMINE        endocannab  · trace    · FAAH         · CB1 antagonist · CB2 agonist
146 NADA               endocannab  · trace    · FAAH         · CB1 · TRPV1 (N-arachidonoyl dopamine)
147 PEA_ETHANOLAMIDE   endocannab-like · —    · FAAH         · PPAR-α (palmitoylethanolamide)
148 OLEAMIDE           lipid       · —        · FAAH         · CB1 (sleep-induction)
149 OEA                lipid       · —        · FAAH         · PPAR-α (satiety · oleoylethanolamide)
150 LPA                lipid       · ATX      · LPP          · LPA1-6 (neurite growth)
151 S1P                lipid       · SK1/2    · S1P-lyase    · S1PR1-5 (neural differentiation)
152 PGE2               eicosanoid  · COX-1/2  · 15-PGDH      · EP1-4 (fever · inflammation)
153 PGD2               eicosanoid  · COX-1/2  · 15-PGDH      · DP1 · DP2 (sleep · allergy)
154 PGF2_ALPHA         eicosanoid  · COX-1/2  · 15-PGDH      · FP (smooth muscle)
155 LTB4               eicosanoid  · LOX-5    · —            · BLT1 · BLT2 (chemotaxis)
156 LTC4_D4_E4         eicosanoid  · LOX-5    · —            · CysLT1 · CysLT2 (bronchoconstriction)
157 THROMBOXANE_A2     eicosanoid  · COX/TXAS · —            · TP (vasoconstriction)
158 RESOLVIN_E1        resolvin    · LOX-5/15 · —            · ChemR23 (inflammation resolution)
159 PROTECTIN_D1       protectin   · LOX-15   · —            · resolution mediator

160–189 · NEUROSTEROIDS · CYTOKINES · NEUROTROPHINS

160 ALLOPREGNANOLONE   neurosteroid · 3α-HSD/5α-red · —    · GABA-A PAM (anxiolytic · sedative)
161 PREGNENOLONE       neurosteroid · CYP11A1     · —      · sigma-1 · GABA-A modulator
162 PREGNENOLONE_S     neurosteroid · sulfotrans  · —      · NMDA positive · GABA-A negative
163 DHEA_NEURAL        neurosteroid · CYP17       · —      · sigma-1 · NMDA · GABA-A neg
164 DHEA_S             neurosteroid · sulfotrans  · steroid sulfatase · sigma-1
165 ESTRADIOL_NEURAL   neurosteroid · aromatase   · CYP    · ERα · ERβ · GPER (neuroprotection)
166 ESTRONE            neurosteroid · 17β-HSD     · CYP    · ERα · ERβ
167 ESTRIOL            neurosteroid · placental   · CYP    · ERα · ERβ (pregnancy)
168 TESTOSTERONE_NRL   neurosteroid · CYP17       · CYP    · AR · aromatized to estradiol
169 DHT                neurosteroid · 5α-reductase · CYP   · AR (high affinity)
170 PROGESTERONE_NRL   neurosteroid · 3β-HSD      · —      · PR · GABA-A via metabolite
171 CORTISOL_NEURAL    neurosteroid · 11β-HSD1    · 11β-HSD2 · GR · MR (neural slot · §4.1 has systemic)
172 CORTICOSTERONE     neurosteroid · CYP11B1     · —      · GR · MR
173 ALDOSTERONE        neurosteroid · CYP11B2     · —      · MR (fluid axis)
174 IL_1_BETA          cytokine    · processed by caspase-1 · IL-1R1 (fever · sickness behavior)
175 IL_6               cytokine    · multi-source · —      · IL-6R + gp130 (acute-phase)
176 IL_10              cytokine    · Treg · M2    · —      · IL-10R (anti-inflammatory)
177 IL_18              cytokine    · processed by caspase-1 · IL-18R (IFN-γ inducer)
178 TNF_ALPHA          cytokine    · macrophage  · sTNF-R  · TNFR1 · TNFR2 (apoptosis · inflammation)
179 IFN_GAMMA          cytokine    · NK · Th1    · —       · IFNGR1/2 (antiviral)
180 IFN_ALPHA          cytokine    · pDC         · —       · IFNAR1/2 (antiviral · type I)
181 BDNF               neurotrophin · multiple   · MMP-9   · TrkB · p75NTR (LTP · plasticity)
182 NGF                neurotrophin · multiple   · —       · TrkA · p75NTR (sympathetic + sensory)
183 GDNF               neurotrophin · glia       · —       · GFRα1 + RET (dopaminergic)
184 CNTF               neurotrophin · glia       · —       · CNTFR (motor neurons)
185 NT_3               neurotrophin · multiple   · —       · TrkC
186 NT_4_5             neurotrophin · multiple   · —       · TrkB
187 FGF_2              growth-fact · multiple   · —       · FGFR1-4 (neurogenesis)
188 IGF_1              growth-fact · liver-brain · —      · IGF1R (growth · repair)
189 EPO_BRAIN          cytokine    · kidney-brain · —     · EPOR (neuroprotection)

190–209 · RARE HOME-GROWN + TRACE

190 D_ASPARTATE        amino_acid  · ASCT2     · D-AAO       · NMDA agonist (developmental)
191 NAAG               dipeptide   · NAALADase · NAALADase  · mGluR3 agonist · NMDA modulator
192 KYNURENIC_ACID     tryptophan-deriv · KAT  · —          · NMDA antagonist · α7 nAChR antagonist
193 QUINOLINIC_ACID    tryptophan-deriv · KMO  · —          · NMDA agonist (excitotoxic)
194 HOMOCYSTEIC_ACID   amino_acid  · trace     · —           · NMDA agonist (rare)
195 TAURINE            amino_acid  · TauT      · —           · GABA-A · glycine receptor
196 BETA_ALANINE       amino_acid  · TauT      · —           · GlyR weak · GABA-A modulator
197 GHB_ENDOGENOUS     SCFA        · GHB synthase · GHB-DH   · GHB-R · GABA-B (sleep regulation)
198 DMT_TRACE          indoleamine · INMT · trace · MAO-A   · 5-HT2A · sigma-1 (endogenous trace)
199 FIVE_MEO_DMT_TRACE indoleamine · INMT · trace · MAO-A   · 5-HT1A > 5-HT2A
200 BUFOTENIN          indoleamine · INMT · trace · MAO-A   · 5-HT2A · 5-HT1A (endogenous trace)
201 HORDENINE          trace_amine · —        · MAO         · TAAR1 (very trace)
202 SALSOLINOL         TIQ alkaloid · dopamine-aldehyde · — · μ-opioid + D-receptor
203 TETRAHYDRO_IQ      TIQ alkaloid · catechol + aldehyde · — · trace · alcohol metabolism
204 PINOLINE           β-carboline · trace    · MAO         · 5-HT2A · MAO inhibitor
205 HARMAN             β-carboline · trace    · MAO         · MAO-A inhibitor (very trace)
206 ADRENOCHROME       oxidized epi · trace   · —           · debated · trace marker
207 AGMATINE_2         polyamine   · trace    · DAO         · imidazoline (overlap w/ slot 14)
208 CARNOSINE          dipeptide   · carnosine synthase · — · weak · pH buffer
209 ANSERINE           dipeptide   · trace    · —           · weak · related to carnosine

210–244 · OUTSIDE-SUBSTANCE BINDING SHEETS (not made by the body. Each bay stores a drug→receptor sheet for §4.6 APPLY)

210 LSD                psychedelic · — · — · 5-HT2A partial agonist · 5-HT2C · 5-HT1A · D2
211 PSILOCIN           psychedelic · — · — · 5-HT2A agonist · 5-HT2C · 5-HT1A
212 DMT_EXOGENOUS      psychedelic · — · MAO-A (rapid) · 5-HT2A · sigma-1
213 MESCALINE          psychedelic · — · MAO · 5-HT2A · 5-HT2C
214 MDMA               entactogen  · SERT release + reuptake · MAO substrate · 5-HT2A · oxytocin release
215 MDA                entactogen  · SERT release · MAO · 5-HT2A · slightly more psychedelic than MDMA
216 KETAMINE           dissociative · — · CYP2B6/3A4 · NMDA antagonist · κ-opioid weak · BDNF↑
217 ESKETAMINE         dissociative · — · CYP · NMDA antagonist (higher affinity than ketamine)
218 PCP                dissociative · — · CYP · NMDA antagonist · sigma · D2
219 DXM                dissociative · — · CYP2D6 · NMDA antagonist · sigma · SERT
220 NITROUS_OXIDE      dissociative · diffusion · exhaled · NMDA antagonist · κ-opioid
221 THC                cannabinoid · — · CYP2C9/3A4 · CB1 partial agonist · CB2
222 CBD                cannabinoid · — · CYP3A4/2C19 · CB1 NAM · 5-HT1A · TRPV1 · GPR55
223 NICOTINE           stimulant   · — · CYP2A6 · nAChR α4β2 + α7 agonist (acute) → desensitize (chronic)
224 CAFFEINE           stimulant   · — · CYP1A2 · A1 + A2A adenosine antagonist · weak PDE inhibitor
225 THEOPHYLLINE       stimulant   · — · CYP1A2 · adenosine antagonist · PDE inhibitor
226 ALCOHOL            depressant  · — · ADH/ALDH · GABA-A PAM · NMDA antagonist · 5-HT3 · glycine
227 GHB_EXOGENOUS      depressant  · — · GHB-DH · GHB-R · GABA-B agonist
228 BENZODIAZEPINE     depressant  · — · CYP3A4 · GABA-A α1/2/3/5 PAM at BZ site
229 BARBITURATE        depressant  · — · CYP · GABA-A PAM (different site) · direct opener at high dose
230 Z_DRUG             depressant  · — · CYP3A4 · GABA-A α1 PAM (zolpidem · zopiclone class)
231 OPIOID_MU          opioid agonist · — · CYP · μ-opioid full agonist (morphine · oxycodone · fentanyl)
232 OPIOID_KAPPA       opioid agonist · — · — · κ-opioid agonist (salvinorin A · dynorphin mimics)
233 OPIOID_DELTA       opioid agonist · — · — · δ-opioid agonist (analgesia · less euphoric)
234 BUPRENORPHINE      opioid mixed · — · CYP3A4 · μ partial agonist · κ antagonist (treatment)
235 NALOXONE           opioid antag · — · — · μ · κ · δ antagonist (reversal)
236 NALTREXONE         opioid antag · — · — · μ > κ antagonist (treatment · sustained)
237 AMPHETAMINE        stimulant · DAT/NET REVERSE-TRANSPORT release · MAO inhibitor · TAAR1
238 METHAMPHETAMINE    stimulant · DAT/NET reverse-transport · 5-HT release · higher CNS penetration
239 COCAINE            stimulant · DAT/SERT/NET reuptake inhibitor · Na-channel local anesthetic
240 MODAFINIL          eugeroic   · DAT weak inhibitor · orexin · histamine release
241 METHYLPHENIDATE    stimulant · DAT/NET inhibitor (Ritalin)
242 AMPHETAMINE_MIXED  stimulant · DAT/NET release (Adderall · d+l isomers)
243 IBOGAINE           complex · NMDA · κ-opioid · SERT · α3β4 nAChR · 5-HT2A (anti-addiction)
244 SCOPOLAMINE        anticholinergic · — · CYP · muscarinic M1 antagonist (rapid antidepressant probe)

245–254 · RESERVED (free bays · new · not yet discovered · per-user custom signals · a7 took 3 of them)

245 RESISTIN           adipokine   · adipose tissue · —      · CAP1 · TLR4 (pipeline friction · §4.1d) · a7
246 HEPCIDIN           peptide     · liver          · —      · ferroportin (gatekeeping intake · §4.1d) · a7
247 FGF21              growth-fact · liver-brain    · —      · FGFR1c + β-Klotho (stress-forge · §4.1d · companion to FGF_2 at #187) · a7
248-254  RESERVED · open · contributors may register · class TBD · status RESERVED

255 · META · UNMAPPED_SIGNAL (lost-and-found · hands off to the §1e META layer)

255 UNMAPPED_SIGNAL    meta · any signal whose ID is not yet classified · routes to META verify pipeline

§4.7e · HOW A BAY LEVELS UP · SCAFFOLDED → ACTIVE

A framed-out bay goes live once all three boxes are ticked:

  • Its kinetics are filled in: the bay's kinetics object carries every one of the 6 §4.5a numbers, none left null.
  • It powers something: feeds_hormone links to a §4.1 read, or axis adds a new direction that §4.3 has written down.
  • Its honesty homework is done: every rate number says where it came from (a paper, a worked-out rule of thumb, or a plain [ stub ] tag).
// promotion is a single function call · idempotent · auditable
function promoteSlot(slot_id, kinetics, feed) {
  const slot = SYNAPSE_REGISTRY[slot_id];
  if (slot.status !== 'SCAFFOLDED') return BE(log, 'PROMOTION_REJECTED');
  slot.kinetics      = kinetics;
  slot.feeds_hormone = feed;
  slot.status        = 'ACTIVE';
  slot.promoted_at   = Date.now();
  return BE(() => commitBlock({ event: 'SLOT_PROMOTED', slot_id }), 'SLOT_ACTIVE');
}

§4.7f · ROOM TO GROW · uint8 → uint16 (only when it's needed)

255 covers human brain chemistry with room left over. Only three situations call for a bigger register:

  • Custom signals per user: once instances start adding their own area-specific synapses (think made-up brand-mood messengers for a studio), 250 spare bays run out quickly.
  • Modelling many bodies: if the META layer rolls data up across users or areas, each instance may hold its own block of 255 and the combined network needs uint16.
  • A registry split by receptor: right now each bay holds one messenger; giving every messenger × receptor pair its own bay takes 2000+ rows → uint16.

Moving over is routine: grow SYNAPSE_REGISTRY from Array(256) to Array(65536), let bay 65535 take over the META role, and leave bays 0–254 exactly as they are. The layout's id field gets wider. Blocks pick up one byte that records registry width, so older blocks still read fine. And if the move goes sideways, R9 detect-and-rollback still has your back.

§4.7g · LIMITS · what the registry is not

synapse registry · the honesty promise
Treat this as scaffolding, not a claim that it's complete. The 255 bays are addresses the manual can point to, not proof that this page has officially catalogued all of human brain chemistry. About 150 rows carry believable class, pump, enzyme and receptor details; the rest are placeholders or squished together. Out of those 150 named rows, just 5 (the monoamines) run real kinetic math.
  • Bay numbers never move after they ship: renumbering a bay later would wreck LEDGER replay (R9). Holding, retiring and migrating all use fresh bay IDs and never write over an old one.
  • The class labels are a working sort, not the final word. Some messengers wear several hats (estradiol is a neurosteroid, a hormone and a receptor ligand all at once): a bay's main class is whichever job dominates in brain signalling.
  • The receptor lists are examples; for most peptides, science still hasn't fully mapped their receptors. The simulation tracks whether a receptor family exists, not its full breakdown into subtypes.
  • The outside-substance sheets (210–244) aren't the body's own chemistry. They're drug→receptor maps that let APPLY aim at the same bay system the body's own signals use. The drug in bay 210 (LSD) nudges bay 0's receptors (serotonin) by binding 5-HT2A.
  • Levelling all 255 bays up to ACTIVE isn't on the roadmap. The promise is only that each bay is ready and waiting if a future study, dataset or in-game system wants it.

§4.8 · COHERENCY · receptors that adapt on five clocks · the spec 4.0 headliner

Back in §4.5b, receptor change was just one straight delay (one variable · one rate · 0.0012 each tick). That shortcut came from spec 3.2, and §4.6d already confessed that "in a real body at least five clocks tangle together." Spec 4.0 unpacks the shortcut. The lone receptor_density number splits into five variables stacked in a cascade, each on its own biological clock, each gating the one after it. The simulation picks up a new measured state too. Coherency tells you how well those five clocks agree at any instant.

E1++ · COHERENCY becomes read number 21 · the spec 4.0 headliner
Run one delay and the simulation is truthful about outline. Run five and it's truthful about speed too: the quick clocks bounce back within seconds once a drug stops, while the slow ones need weeks. Coherency measures how far apart the clocks have wandered. High coherency = a settled system. Low coherency = a system mid-change (a drug kicking in, a drug being dropped, a sudden shock). Coherency joins HORMONES as measured read number 21 and controls three fresh §4.2 mood markers (SETTLED · TRANSITIONING · DISCORDANT).

§4.8a · THE ONE-DELAY FIB · where spec 3.2 a5 cut corners

Here's what the spec 3.2 a5 synapse tick (step 5 of §4.5b) did:

// v3.2 a5 · single-lag receptor adaptation · accurate in shape, wrong in tempo
const target_density = 1 - (exposure - 0.40) * 0.70;
syn.receptor_density += (target_density - syn.receptor_density) * 0.0012;

A single rate, a single variable. It shows "receptors dial down when exposure stays high", yet it completely misses:

  • Quick desensitizing · a GPCR lets go of its G-protein within seconds (way quicker than any lone 0.0012-per-tick delay can show).
  • Receptors pulled inside · β-arrestin drags tagged receptors off the surface within minutes · still there, just out of sight.
  • Destroy it or send it back · across hours to days, the cell decides whether a pulled-in receptor gets recycled to the surface or broken down.
  • Gene-level change · shifts in gene expression alter how fast brand-new receptors get built, over days to weeks.
  • Rewiring · the synapse itself reshapes · dendritic spines grow and shrink · the circuits downstream reweight themselves across weeks to months.

Every one of those is its own variable with its own rate. They talk to each other · each clock feeds the next, slower one. Spec 4.0 gives that cascade a name.

§4.8b · THE FIVE CLOCKS

clockvariablewhat's happening in the bodyreal half-lifeper-tick delaykey papers
1 · QUICKESTcouplingGRK tagging · the G-protein lets goseconds to minutes0.0500Lefkowitz · Caron (1980s onward)
2surface_countβ-arrestin arrives · clathrin pulls receptors inminutes to hours0.0050β-arrestin (Lefkowitz 1990)
3total_countbroken down in lysosomes or recycled via endosomeshours to days0.0005Sorkin · von Zastrow (2002)
4synth_rateCREB / ΔFosB / gene expression shiftsdays to weeks0.00005Nestler · Hyman (1990s onward)
5 · SLOWESTcircuit_weightrewiring · spine reshaping · LTP/LTDweeks to months0.000005Bliss · Lømo (1973) · Kandel (2000)

The delay is counted per 3000ms simulation tick. Time to settle ≈ 4 / lag ticks · times 3 seconds for real time. Clock 1 settles in roughly 4 simulated minutes · clock 5 in roughly 7 simulated days. What makes the cascade feel biological is the gap between clocks (10× at every step).

§4.8c · THE CASCADE · every clock gates the next

// v4.0 · five-timescale receptor adaptation · replaces single-lag in §4.5b step 5
function adaptReceptors(syn) {
  const exposure = syn.synaptic_conc;

  // SCALE 1 · COUPLING — fastest · driven directly by exposure (seconds-minutes)
  const coupling_target = 1 - (exposure - 0.40) * 0.80;
  syn.coupling += (coupling_target - syn.coupling) * 0.0500;

  // SCALE 2 · SURFACE_COUNT — gated by coupling · β-arrestin response (minutes-hours)
  const surface_target = clamp(syn.coupling * 1.05, 0.30, 1.10);
  syn.surface_count += (surface_target - syn.surface_count) * 0.0050;

  // SCALE 3 · TOTAL_COUNT — gated by surface_count · degrade-or-recycle (hours-days)
  const total_target = clamp(syn.surface_count * 1.02, 0.30, 1.20);
  syn.total_count += (total_target - syn.total_count) * 0.0005;

  // SCALE 4 · SYNTH_RATE — gated by total_count · gene expression (days-weeks)
  const synth_target = clamp(syn.total_count * 1.00, 0.40, 1.20);
  syn.synth_rate += (synth_target - syn.synth_rate) * 0.00005;

  // SCALE 5 · CIRCUIT_WEIGHT — gated by synth_rate · structural plasticity (weeks-months)
  const circuit_target = clamp(syn.synth_rate * 1.00, 0.50, 1.10);
  syn.circuit_weight += (circuit_target - syn.circuit_weight) * 0.000005;

  return BE(null, 'RECEPTORS_ADAPTED');
}

Every clock is held in check by the one above it. No slow clock wanders off solo. Over their own settle time, the slow clocks carry a memory of the fast ones. That is where coherency comes from: when things are settled, all five variables land on the same number, because each one is aiming at the next.

§4.8d · EFFECTIVE RECEPTOR DENSITY · all five multiplied

// the readout that synapseReadout() now uses · replaces syn.receptor_density
function effectiveDensity(syn) {
  const surface_ratio = syn.surface_count / Math.max(syn.total_count, 0.01);
  return syn.coupling
       * surface_ratio
       * syn.total_count
       * syn.synth_rate
       * syn.circuit_weight;
}

// synapseReadout from §4.5a · now multiplied by full cascade
function synapseReadout(syn) {
  return syn.synaptic_conc * effectiveDensity(syn) * syn.receptor_sensitivity;
}

Five numbers get multiplied together. Let one crash and the signal crashes with it. Keep all five lined up and the signal is simply whatever the gap concentration delivers. That's the molecular root of tolerance (the slow numbers sink), withdrawal (the fast numbers are back but the slow ones aren't yet), and recovery (the slow numbers finally catch up).

§4.8e · THE COHERENCY SCORE · how far the clocks disagree

// coherency · how aligned the 5 scales are · the v4 anchor reading
function coherency(syn) {
  const scales = [
    syn.coupling,
    syn.surface_count,
    syn.total_count,
    syn.synth_rate,
    syn.circuit_weight,
  ];
  const mean = scales.reduce((a, b) => a + b, 0) / scales.length;
  const variance = scales.reduce((sum, x) => sum + (x - mean) ** 2, 0) / scales.length;
  return clamp(1 - variance * 4, 0, 1);  // 1 = aligned · 0 = scattered
}

// system-wide coherency · average across all ACTIVE synapses
function systemCoherency() {
  const active = SYNAPSE_REGISTRY.filter(s => s?.status === 'ACTIVE');
  return active.reduce((sum, s) => sum + coherency(s.kinetics), 0) / active.length;
}

§4.8f · COHERENCY as HORMONE read number 21

Coherency for the whole system joins HORMONES (§4.1) as a measured read. Number 21 (next to the first 11, the craft pack of 4 and the brain-messenger band of 5).

const HORMONES = {
  // ... 20 readouts from a3 + a4 ...
  coherency: 0.78,   // system stability across timescales · 1 = settled · 0 = discordant
};

// regulateHormones() adds the coherency readout each tick
function regulateCoherencyReadout() {
  HORMONES.coherency += (systemCoherency() - HORMONES.coherency) * 0.35;
}

Coherency gets its own fresh axis · the §4.3 COHERENCY axis (number 9, next to the eight already there). No other axis has just one read in it, because coherency is how well everything else lines up.

§4.8g · THREE FRESH MOODS · powered by coherency

Slotted into the §4.2 priority table between INFLAMED and STRESSED:

rankmoodfires whencls · look
2aDISCORDANTcoherency < .40 ∧ |slope(coherency)| > .03s-discordant (red-violet · quick shiver)
2bTRANSITIONING.40 ≤ coherency < .70 ∧ |slope(coherency)| > .01s-transitioning (amber-cyan · lazy drift)
15aSETTLEDcoherency > .85 ∧ |slope(coherency)| < .003 (held for 60+ ticks)s-settled (green-gold, glowing evenly)

DISCORDANT and TRANSITIONING outrank STRESSED because a body that's changing tells you more than a body that's simply busy. SETTLED sits down near ELATED in rank, yet it's the one mood that demands coherency held over time, which makes it the loudest "you can believe this signal" light the system has.

§4.8h · REPLAY TAPE · an SSRI run with all five clocks

dayplasmacouplingsurfacetotalsynthcircuitcoherencymood
0 (nothing taken)0.001.001.001.001.001.000.99SETTLED · starting point
0+1h (kicks in)0.100.740.991.001.001.000.48DISCORDANT · shock
10.180.710.860.991.001.000.44DISCORDANT
70.700.660.680.830.981.000.62TRANSITIONING
140.920.640.650.690.860.990.69TRANSITIONING
280.980.630.640.650.710.920.78TRANSITIONING
421.000.630.630.640.660.780.86nearly SETTLED
90 (steady)1.000.630.630.630.630.650.96SETTLED · helping
90+1h (quit)0.200.950.650.630.630.650.37DISCORDANT · bounce-back
91 (a day later)0.040.990.780.640.630.650.38DISCORDANT · coming off
97 (a week later)0.001.000.970.740.650.650.61TRANSITIONING
120 (a month later)0.001.001.000.960.780.690.75TRANSITIONING
180 (3 months later)0.001.001.001.000.950.880.91nearly SETTLED
270 (6 months later)0.001.001.001.001.000.980.99SETTLED · back to normal

Spot the lopsidedness: starting the drug gives a short DISCORDANT blip (one hour) and then weeks of TRANSITIONING. Stopping it gives a far longer DISCORDANT stretch, because the slow clocks (synth, circuit) are still tuned for the drug while the quick clock (coupling) has already bounced back. That is SSRI discontinuation syndrome at the molecular level. The coherency model produces it without a single line of special-case code.

§4.8i · LIMITS · what COHERENCY is not

the five-clock model · honesty promise
Living receptors run on more than five clocks, and those clocks chatter with each other in ways spec 4.0 leaves out: β-arrestin can switch genes on by itself (squashing clocks 2 and 4 together); CREB tagging can set off rewiring (squashing clocks 4 and 5); inflammation messengers can steamroll the whole cascade. The five clocks have the right silhouette and the right spacing, 10× apart every step, yet they're nowhere close to a full molecular biology model.
  • The tick rates (0.05, 0.005, 0.0005, 0.00005, 0.000005) are for show · picked so the cascade unfolds at a believable pace, not pulled from receptor lab studies.
  • For now each clock's "gate" is a plain multiplier (* 1.05, * 1.02, and so on) · real chatter runs through second messengers (cAMP, Ca²⁺) and gene switches (CREB, ΔFosB) this manual never names.
  • Taking the variance of 5 numbers between 0 and 1 is a rough stand-in for "is the system lined up?" Sharper scores (mutual information between clocks, phase coherence) are saved for spec 5.0.
  • Receptor variety gets ignored · every 5-HT2A receptor in bay 0 counts as one crowd. Inside a real body, a single cluster holds a huge range of receptor states.
  • The [ sim ] tag still sticks · none of this is medical. Spec 4.0 makes the outline more truthful, not the size.
§5

▸ THE 26 MOVES · every function picks one

FRESH · +3 sense moves (spec 4.0 a2)

Each function in the codebase ought to fit one of these moves. If it won't fit, either it's filed under the wrong label or it's doing two jobs and needs splitting in half.

movewhat it doescell typetier
TRANSCRIBEa commander writes or rewrites DNAHELPER_Tcommander
EXPRESSa cell carries out the DNA · a helper goes offany cellcell
PRESENTa cell holds up a signal · sends out a packetAPCcell
GATEa cell stops a signalKILLER_Tcell
REMEMBERa cell saves a signal · passes it to an engineMEMORY_Tcell + engine
REGULATEthe body moves a thresholdTREGorgan + emotion
DISTILLan engine squeezes memory into a kernelenginememory → kernel
WAKEa kernel starts up into working modekernelkernel
ARCHIVESELF vaults it · "could matter one day": self · arrived in 3.1
PRUNESELF shreds it · "stopped helping": self · arrived in 3.1
SEEDgrows repeatable state out of a seed value: genesis · arrived in 3.2
GENESISmixes (public, private) into an instance · ≡ BOOTenginegenesis · arrived in 3.2
COMMITadds a block onto the per-user chain · ≡ PUBLISH: ledger · arrived in 3.2
VERIFYMETA checks a block's signal before letting it in: meta · arrived in 3.2
ROLLBACKsteps the running instance back to an earlier block it trusts: ledger · arrived in 3.2
APPLYa drug pushing in from outside · shifts synapse rates (SSRI · MAOI · SNRI · atypical): pharma · arrived in 3.2 a5
WITNESSan unrelated instance checks a peer block's META signal · counts toward the K-of-N quorum (R12): meta · arrived in 5.0
QUARANTINEfences off a block with no witnesses or a fishy look · on hold until quorum or ROLLBACK (R9): meta · arrived in 5.0
NEUTRALIZElatch onto one threat and switch it off · by antibody or by killing the cellANTIBODY · CD8_KILLER_Timmune · arrived in 4.0 a1
OPSONIZEstick a flag on a target so PHAGE_T can swallow it · an antibody + complement coatantibody + complementimmune · arrived in 4.0 a1
PHAGOCYTOSEswallow it and break it down inside a sandbox · the macrophage jobPHAGE_Timmune · arrived in 4.0 a1
ATTESTsign a hash of the current code + state for the audit trail · the R14 MHC_I/MHC_II tick-by-tick promiseevery cell (MHC_I) · APC (MHC_II)immune + ledger · arrived in 4.0 a1
ESCALATEshout a cytokine alarm + steer the response with chemokinesDENDRITIC_Timmune · arrived in 4.0 a1
SENSEa sensor reports a labelled reading from one sense · hands it to an APCSENSOR (any §12 sense)sensory · arrived in 4.0 a2
TRANSDUCEturn raw outside input into a labelled sense packet · the skin's jobSENSOR transducersensory · arrived in 4.0 a2
ADAPTa sensor retunes its sensitivity over time · on the five §4.8 COHERENCY clocksSENSOR adaptation_statesensory · arrived in 4.0 a2

APPLY is the lone move that starts outside the body. Every other move is the system steering itself; APPLY is the push from outside. §4.6 uses it to model mind-altering drugs by shifting the reuptake (KILLER_T) and breakdown (TREG) rates. It never pokes the hormone read directly.

§6

▸ NAME TAGS · how to label things

you can enforce it

FUNCTIONS · move + cell_type / move + tier

expressScoutCell(sub, emission)            // cell EXPRESS-es its DNA
gateMnpiSignal(packet)                     // KILLER_T GATEs MNPI
transcribeIntakeDirective(cmd, dna_new)   // commander TRANSCRIBEs
rememberQuorumArtifact(artifact)          // MEMORY_T REMEMBERs
distillSessionEngine(engine)              // engine DISTILLs to kernel
wakeKernel(kernel_name)                    // kernel WAKEs at boot
archiveQualifiedArtifact(a)               // SELF ARCHIVEs the survivor
pruneStaleArtifact(a, now)                 // SELF PRUNEs the unused

STATE VARIABLES · tier + idea

  • cellPopulationByType: how many of each cell type are alive right now
  • dnaVersionByCommander: the map of today's dna_version numbers
  • hormonalLevels, where the Oracle's dials sit right now
  • somaticMarker: the mood phrase showing right now
  • artifactRegistry: the engine's memory shelf
  • kernelSeeds: seeds that survive to the next boot
  • selfArchive: the long-term vault (what DEEP STORE produces)
  • prunedAt: a time-stamped log of recent shreds (open to audit)

CONSTANTS · SHOUT_CASE + tier

  • STEM_POOL_SIZE: how much the unity mesh can hold
  • CORTISOL_GATE_THRESHOLD: how stress moves a gate
  • CELL_TYPES: the full list of cell kinds
  • DNA_LIFETIME_MS: how long an order lasts before it's written again
  • KERNEL_TTL_MS: how far into the future a kernel sticks around
  • SELF_ARCHIVE_THRESHOLD: the completeness a thing needs to enter the vault
  • SELF_PRUNE_AGE_MS: how long something can sit unused before it's shredded
§7

▸ TRUTH STICKERS · how real is it

they follow the work onto every screen people see
stickerit meanswhere you'll see it
+ PRODshipped, watched, and wired to alertstop of the file · watermark · status bar
± PRODreal build · some real data · simulated wherever real data costs moneytop of the file · watermark · "more or less production"
− PRODa demo, full stop · never show it as livetop of the file · watermark · a big loud warning

Telling the truth is part of the deal with whoever's watching. The usual industry "production-ready" label is a fib. Choose the sticker that matches reality.

§8

▸ WHO TALKS TO WHOM · the floor-to-floor rules

you can enforce it
  • Downhill (orders): a floor may call the floor right under it. DNA gives cells orders; cells give organs orders; organs give emotions orders; and on down the line.
  • Uphill (reports): a floor reports to the floor right over it. Cells → organs → emotions → memory → kernels → SELF.
  • Loop-back (growing up): the SELF→DNA route is the only one allowed to jump several floors. It's the on-purpose growth loop, so it has to be out in the open (logged and versioned). Memory engines boil down into kernels, kernels boil down into the vault, and the vault offers up ideas for rewriting DNA.
  • Off-limits: a helper never edits a chief. A kernel never calls a cell straight. Skipping floors is banned, apart from the one written-down growth loop.
§9

▸ HALL OF FAME · credit where it's due

giants did the heavy lifting

Molecular Coding stitches things together; it didn't invent them. Thirty-five different schools of work, woven into one way of writing code.

yearwhowhat they gave uswhere it lands here
1885EbbinghausThe forgetting curve · memories nobody uses fade awaySELF's shred rule
1966BeladySwapping out the least-recently-used pageSELF's shred policy
1973HewittThe actor model · the become building blockcells + BE
1974KahnKahn process networks · data flowing between processeshow organs are wired
1975Plotkin · Sussman · SteeleContinuation-passing style (CPS)the BE building block
1978LamportTime, clocks and event order · there is no master clockR0 Async System
1979HuttenlocherGrowing brains trim their synapsesSELF's shredding
1980TreismanThe binding problem · scraps → one picturethe split ↔ merge slider
1983Lieberman · HewittGarbage collection by generationSELF's vault + shred tiers
1986Erlang at EricssonSupervisor trees · actors running in productionchiefs + commanders
1987HarelStatecharts · every transition spelled outBE labels
1992SquireKnow-how memory vs know-that memorykernels vs engines
1994DamasioThe somatic marker hypothesisthe Oracle's hormones · the watermark
1994Forrest et al.Immune systems built in softwarecell types · GATE
1997PicardAffective computingthe Oracle as feelings
2004Dean · GhemawatMapReduce · split first, merge afterthe split ↔ merge slider
2005Stickgold · WalkerSleep locks memories inSELF vaulting during quiet stretches
2013Mnih et al.Experience replay (DQN)engines · replaying memory
2014Reactive ManifestoRuns on messages · stretches · bounces back · answers fastR0 Async System
2017Hall · Rosbash · YoungNobel prize for body-clock geneskernels · waking up
1996RivestSPKI / SDSI · login from derived keys, no certificate authority§1c instance = auth · 3.2
1990s+Mark MillerObject capabilities · "holding the capability IS the permission"§1c instance = auth · 3.2
2002Yarvin et al.Urbit · a personal OS rebuilt the same way from a seed§1c genesis loop · 3.2
2005TorvaldsGit · a commit history per repo · addressed by content§1d per-user chain · 3.2
2010sGenode · seL4Microkernels built on capabilities§1c instance rules · 3.2
2018Brock · Harris-BraunHolochain · built around agents · each user keeps a source chain§1d per-user chain · 3.2
2019FIDO Alliance · W3CWebAuthn / passkeys · the "device is the login" shortcut§1c shortcut version of the genesis loop · 3.2
1999Castro · LiskovPBFT · Byzantine fault tolerance that works in practice · a K-of-N quorum rides out bad actors§1e META witness quorum · 5.0
2013Laurie et al.Certificate Transparency · outside witnesses record & check · nobody holds sole power§1e META peer witnesses · 5.0
1932Walter CannonHomeostasis · the body keeps its set-points with negative feedback§20 homeostasis · 4.0 a3
1988Sterling & EyerAllostasis · staying steady by changing ahead of time · allostatic load§20 allostasis · 4.0 a3
1975Saltzer & SchroederProtecting information · least privilege · layered defense · safe defaults when things fail§18 R24 · §22 defense-in-depth · 4.0 a3
1988Bernard BaarsGlobal Workspace Theory · awareness as a broadcast into one shared space§21 sentience goal · the mood broadcast · 4.0 a3
2004Giulio TononiIntegrated Information Theory · Φ · awareness as integration you can't split apart§21 · §4.8 coherency as a read shaped like Φ · 4.0 a3
2014Google · BeyondCorpZero-trust networks · trust comes from proof, never from where you sit§22 R28 zero-trust interior · 4.0 a3

Weaving it all into one house style that hangs together: that part is what Drewless brings. Naming the stack, enforcing it function by function, insisting on cell types, DNA versions and BE labels, turning the watermark into a mood badge, writing vault + shred as named policies. None of it is computer science. It's engineering culture, and that's valuable in its own way.

§10

▸ QUEST LOG · ten stages from paper to running code

FRESH · stages 9-10 added (genesis loop · META)
1

PUT THE MANUAL ON PAPER

It's on your screen right now. Keep it as MOLECULAR-CODING.html at the top of the project. Tomorrow's you begins from this page.

cost: cleared
2

TAG THE CODEBASE

Stamp cell_type on each helper. Stamp dna_version on each commander. Add a BE(fn, label) building block that leaves a trace.

cost: about 150 lines · only adds, never breaks
3

GIVE THE HORMONES THEIR NAMES

Relabel the Oracle's trip-lines with hormone names. The math stays put; only the labels change. People and LLMs can both find them.

cost: about 30 lines
4

PUT A MOOD ON THE WATERMARK

Swap the plain "ORACLE · 87%" for a mood phrase (CALM/VIGILANT/STRESSED/FATIGUED) worked out from the hormone levels.

cost: about 20 lines
5

ENGINE · THE MEMORY SORTER

A consolidateMemory() that runs on a timer sweeps the artifact shelf, squeezes look-alike artifacts together, and hands them to commanders as input for the next round. That shuts the DNA growth loop.

cost: about 100 lines
6

KERNELS · DAY-NIGHT BOOT SEEDS

When a session closes, boil the engines down into kernelSeeds inside localStorage. When a session opens, load those kernels and warm up the commanders' orders ahead of time. Memory and habits that carry from one session to the next.

cost: about 150 lines
7

SELF · VAULT + SHRED POLICIES

Write an archiveRule(item) and a pruneRule(item, now) for each store that lives a long time. A timed selfTick() fires every hour. Show a SELF panel listing what just got vaulted or shredded. Forgetting you can audit.

cost: about 120 lines · this is where the manual turns real
8

BACK IT WITH A LINTER

A Node pre-commit script that calls out: helpers missing cell_type; commanders missing dna_version; if-branches missing BE; long-lived stores with no vault/shred rules; function names that don't begin with one of the fifteen moves.

cost: about 250 lines of Node · write once
9

GENESIS LOOP · MAKE IT RUN

Ship a real boot(privateSeed) that sparks an instance out of (public, private), commits block one of a per-user chain, and paints a screen made just for that person. DREWLESS-DEMO.html carries a bare-bones version. The production build derives keys per area in the BIP-32 HD style and keeps its chain in IndexedDB.

cost: about 300 lines for the demo · about 600 for production · arrived in 3.2
10

META · BUILD A FIRST GATE

Get the META validator pattern standing (peer witnesses or a spread-out validator crew). Nail the signal down: instance_pubkey + signed(block_hash) + freshness_proof. Hook detect → rollback into the demo. This stage clears the spec 3.3 horizon and hands the manual its first full attack surface to toughen up.

cost: not sized yet · the spec 3.3 horizon · still a work in progress in §1e
§11

▸ IMMUNE DEFENSE · the shield against hacks and viruses

ARRIVED · spec 4.0 patch note 1

This manual has carried immune parts ever since spec 3.0. APC · KILLER_T · MEMORY_T · HELPER_T · TREG already form the attack-or-tolerate pipeline built into the R1 cell types. Spec 3.2 a4 parked cytokines in framed-out §4.7 bays (#174-180: IL-1β · IL-6 · IL-10 · IL-18 · TNF-α · IFN-γ · IFN-α). Spec 4.0 tied the 30-hormone panel and the synapse machinery together through COHERENCY (§4.8). Spec 4.0 a1 names the defense crew that runs through every one of those pieces. It brings 5 layers, a 12-cell roster (5 already here + 7 fresh), five fresh moves, three fresh laws, fifteen attack-to-defense pairings, an antibody registry built like the synapse registry, and a section on what this layer does and does not do.

M2 · IMMUNE DEFENSE · where META stops, IMMUNE takes over
§1c GENESIS LOOP = login built in (the instance has to boot from your seed · no target exists before that). §1e META = the gate at the protocol border (bad actors filtered before a block commits). §11 IMMUNE = defense further inside (signals that look honest but aren't · threats that slipped past META). Three rings of defense, one inside the next · spec 4.0 a1 names the innermost.

§11.1 · THE FIVE DEFENSE LAYERS

layerpersonalitycell typeswhat the body uses
INNATEnever off · catches anything · quick (ms to sec)BARRIER_T · PATTERN_T · PHAGE_T · NK_T · COMPLEMENT cascadeskin · mucous linings · macrophages · NK cells · complement
ADAPTIVEtrained · aims at one thing · slow the first round, quick afterwards (min to days)B_CELL · ANTIBODY · PLASMA_CELL · CD8_KILLER_TB cells · IgG/IgM/IgA/IgE · plasma cells · killer T cells
MEMORYwhat's kept for good (days to a lifetime)MEMORY_B · MEMORY_T (already here) · BONE_MARROWmemory B/T cells · long-living plasma · the bone marrow stockpile
SURVEILLANCEcells proving who they are, nonstopMHC_I (each cell) · MHC_II (APC) · DENDRITIC_T · CYTOKINE · CHEMOKINEMHC class I/II · dendritic cells · cytokines · chemokines
TOLERANCEstop the body attacking itself (damage from false alarms)THYMUS_GATE · TREG (already here)thymus training · regulatory T cells

§11.2 · THE CELL ROSTER · 5 veterans + 7 rookies = 12

cellmovejobstatus
APCPRESENTholds up signals · on the R1 roster alreadyhere since 3.0
HELPER_TTRANSCRIBEthe CD4 conductor · a commander · on the R1 roster alreadyhere since 3.0
KILLER_TGATEstops bad signals · on the R1 roster alreadyhere since 3.0
MEMORY_TREMEMBERsaves signals · on the R1 roster alreadyhere since 3.0
TREGREGULATEcalms the response down · on the R1 roster alreadyhere since 3.0
BARRIER_TGATEbouncer at the input door · URL allowlist · payload kind · size caps · origin · CSP-like headersa1 rookie
PATTERN_TPRESENT/GATEfingerprint matcher · SQL-i · XSS · SSRF · path-traversal · prompt-injection · works like YARAa1 rookie
PHAGE_TPHAGOCYTOSEruns things in a sandbox · iframe · VM · worker · capped memory and time · poisonous results get binneda1 rookie
NK_TGATE/ESCALATEspots strange behaviour · a normal profile for each cell · straying from it triggers quarantinea1 rookie
B_CELLPRESENT/REMEMBERthe antibody workshop · builds new detectors after meeting a brand-new attack · somatic hypermutationa1 rookie
CD8_KILLER_TNEUTRALIZEtakes out our own cells once they've turned (MHC drift) · the answer to supply-chain attacksa1 rookie
DENDRITIC_TESCALATEa travelling APC · carries cytokine alarms to every corner · the "we're being hit" messengera1 rookie

§11.3 · FIVE FRESH MOVES · the §5 list goes from 18 to 23

  • NEUTRALIZE: grab one threat and shut it down (ANTIBODY or CD8 kill)
  • OPSONIZE: flag a target so PHAGE_T can swallow it
  • PHAGOCYTOSE: swallow it and break it down in a sandbox
  • ATTEST: sign a hash of the code + state right now for the audit trail (MHC_I/II · powers R14)
  • ESCALATE: shout a cytokine alarm + steer the response with chemokines

§11.4 · THREE FRESH LAWS · the §3 list goes from 13 to 16

  • R14 · MHC_I ATTESTATION PER TICK: each cell signs its code + state hash every tick · a mismatch means something got in
  • R15 · ANTIBODY IMMUTABILITY, after publishing, an antibody can be retired but never edited · keeps R8 whole
  • R16 · TOLERANCE CHECK BEFORE PROMOTION: every new detector has to clear the known-good panel · stops the body attacking itself

§11.5 · ATTACK → DEFENSE · 15 kinds of hack and virus

attackhow the immune crew answersworks together with
XSS injectionPATTERN_T (fingerprint) → BARRIER_T (enforces CSP) → DENDRITIC_T (ESCALATE)cortisol and prostaglandin climb
SQL injectionPATTERN_T → BARRIER_T (parameterized queries) → CYTOKINE alarmprostaglandin (INFLAMMATION)
CSRFMHC_I (proves the origin · R14) → BARRIER_T (SameSite plus a token check)vasopressin (TERRITORY)
Prompt injection (LLM)PATTERN_T (cleans the input) → PHAGE_T (tools run in a sandbox) → CD8 (takes out a helper that drifted) → IFN broadcastcortisol plus gaba INHIBITION
Supply-chain attackMHC_I (package hash changed · R14) → NK_T (odd behaviour) → CD8_KILLER_T (quarantine)hepcidin (GATEKEEPING)
PhishingANTIBODY (list of known-bad domains) → BARRIER_T (allowlist) → a warning for the userprogesterone (PROTECTIVE)
Brute forceCOMPLEMENT cascade (N misses → clamp down) → CYTOKINE (rate limit) → TREG eases off after a cool-downcortisol feeding an adrenaline cascade
DDOSIFN_BROADCAST → ANTIVIRAL_STATE (turn away new connections) → COMPLEMENT (drop fishy IPs)anp (VENTING) plus resistin (FRICTION)
Malware runningMHC_I (code proof · R14) → PHAGE_T (sandbox) → NK_T (behaviour) → CD8 once confirmedprostaglandin plus cortisol
Zero-day exploitB_CELL (builds a new fingerprint) → AFFINITY_MATURATION (sharpens it) → MEMORY_B (shared vault)acetylcholine (ATTENTION) · adiponectin (HEALTH)
Inside jobNK_T (normal-behaviour profile per user) → MHC_II (each action proven) → walk the §1d chain like a detectivenorepinephrine (FOCUS) · vasopressin (TERRITORY)
Data theftCHEMOKINE (strange outbound traffic) → NK_T (sudden volume jump) → CYTOKINE (rate limit) → CD8hepcidin · norepinephrine
Account hijackthe §1c GENESIS LOOP defends by design (a stolen password can't rebuild your instance) + ANTIBODY for credential-stuffing fingerprintsthe §1c · §1d · §1e stack
Privilege escalation§1c instance walls → TREG smothers escalation events → CD8 when MEMORY_B recognises itcortisol plus adrenaline (VIGILANT)
Replay attack§1d PER-USER CHAIN (each action commits a block · a replay = hashes don't match) → META says no → R9 ROLLBACKR9 detect-and-rollback

§11.6 · THE ANTIBODY REGISTRY · 256 bays · a twin of §4.7

Antibodies are full-status artifacts, and they need byte-sized addresses for the very reasons synapses do (see R10): O(1) lookups · cache-happy · ledger-happy · and spreading them works like spreading a drug load, one 256-slot sweep per tick.

// every antibody slot · same shape · stable once published (R15)
const ANTIBODY_SLOT_SCHEMA = {
  id:            0,                       // uint8 · 0..255 (parallel namespace to §4.7 synapses)
  name:          'XSS_GENERIC_SCRIPT_TAG',  // canonical SHOUT_CASE
  threat_class:  'injection',              // taxonomy bucket
  signature:     /<script[^>]*>/,           // detector primitive · regex · ML model · hash · etc.
  affinity:      0.92,                    // confidence · used by R11 effective density
  parent_b_cell: 'BCELL_PROD_2',           // who synthesized this (audit trail)
  status:        'ACTIVE',                  // ACTIVE · SCAFFOLDED · SUPERSEDED · RESERVED
  supersedes:    null,                     // older slot ID if this replaces an earlier antibody (R15)
  ttl:           90 * DAY_MS,             // auto-deprecate after this · re-validation refreshes
  federation:    'LOCAL',                   // LOCAL · SHARED_TRUSTED · SHARED_OPEN (v5 frontier)
};

// allocation map · 10 ranges · mirrors §4.7 structure
 0-19    INJECTION         xss · sql-i · ssrf · path-traversal · prompt-injection
20-39    AUTH              credential-stuffing · session-hijack · csrf · clickjacking
40-59    EXFIL             data egress patterns · DNS exfil · timing channels
60-79    MALWARE           binary signatures · behavior patterns · ransomware
80-99    SUPPLY_CHAIN      dep hash drift · maintainer takeover patterns
100-119  PHISHING_SOCIAL   domain typosquats · spoofed senders · prompt manipulation
120-139  RATE_ANOMALY      brute force · ddos · scraping patterns
140-159  INSIDER           privilege drift · access pattern anomalies
160-179  PROTOCOL          replay · downgrade · injection at protocol layer
180-199  ZERO_DAY          B_CELL-generated novel patterns · pending tolerance check
200-244  RESERVED          open for novel threat classes
245-254  PER_USER_CUSTOM   instance-specific antibodies · not federation-shared by default
255      UNMAPPED_THREAT   catch-all · routes to META layer §1e for triage

§11.7 · SNAPPING INTO SPEC 4.0 · the immune crew fits parts that already exist

  • Cytokines move into §4.7 bays #174-180: IL-1β · IL-6 · IL-10 · IL-18 · TNF-α · IFN-γ · IFN-α are already framed out as SCAFFOLDED. The §4.7e level-up route (SCAFFOLDED → ACTIVE) hooks up their kinetics. Immune signalling asks for zero new synapse bays. It just switches on the ones sitting there.
  • An immune response plays out on all 5 clocks (§4.8 COHERENCY). The instant response = the COUPLING clock (seconds). Making trained antibodies = the SYNTH_RATE clock (days). Lasting immunity = the CIRCUIT_WEIGHT clock (weeks to months). An attack tips things into DISCORDANT (coherency < .40) → the response rolls out clock by clock → SETTLED once the slow clocks catch up. Getting immunized simply means settling back into step after a shake-up.
  • How hard an antibody grips follows R11 effective density. Its real binding strength is five things multiplied: how precise the detector is · how well MEMORY_B holds it · how often it clears TOLERANCE · how many true hits it scored in the wild · its standing among trusted peers. Five factors · the same silhouette as receptor density. Code that leans on one flat "antibody confidence" number with no cascade breaks R11, unless it carries a // v3.2-legacy tag.
  • Every immune event lands on the §1d PER-USER CHAIN. Each CD8 kill · each PHAGE_T digestion · each B_CELL antibody born = one audit block. You can walk the trail afterwards. R9 detect-and-rollback also catches immune misfires.
  • R14 MHC_I attestation adds to the §1d block layout. Blocks pick up an attestations: [{cell_id, code_hash, state_hash, ts}] field. R8 (commit every version) takes that on board with no changes at all.
  • SELF (§1a) is in charge of BONE_MARROW. Memory antibodies play by the same R5 vault/shred rules. The long-living plasma cell = SELF's vault · natural fading = a pruneRule with a ttl.
  • META (§1e) takes care of UNMAPPED_THREAT (bay #255). Whatever the immune crew can't sort gets sent to META for triage and maybe a brand-new antibody (a B_CELL gets spawned). That joins the login gate at the border to the defense further in.
  • R12 (NO AUTHORITY WITHOUT WITNESS) slots right in. A block holding a CD8 kill or a new antibody has to win a K-of-N witness quorum, exactly like every other block. The immune crew inherits META's checking rules for free.

§11.8 · EIGHT FRESH MOODS · the §4.2 table goes from 33 to 41

Placed in the priority table next to their closest relatives (never just tacked on at the end). The DANGER tier gets 3; URGENCY gets 2; STATE/WIN gets 3.

moodtierfires whencls · look
UNDER_ATTACKDANGERifn_broadcast > .65 ∧ cortisol > .55 ∧ coherency < .50s-under-attack (red strobe every 0.5s)
INFECTEDDANGERcd8_active > .50 ∧ mhc_drift > .40s-infected (red-violet beat every 0.7s)
COMPROMISEDDANGERmhc_drift > .60 (at least one cell flunking its R14 attestation)s-compromised (red-black flash every 0.4s)
SENSITIZEDURGENCYantibody_active_count > threshold ∧ adrenaline > .50s-sensitized (amber-cyan beat every 1.0s)
IMMUNE_ALERTURGENCYdendritic_packets > rate_baseline ∧ no_pattern_match_yets-immune-alert (amber scanning, 0.8s)
QUARANTINEDSTATEphage_active > .60 (cells walled off in a sandbox for a look)s-quarantined (violet, frozen)
TOLERATEDSTATEtreg > .60 ∧ ifn_broadcast < .30 ∧ coherency > .80s-tolerated (gentle green glow)
IMMUNIZEDWINmemory_b_hits > .60 ∧ was UNDER_ATTACK · SETTLED now (held for 30+ ticks)s-immunized (green-gold, glowing evenly)

SETTLED (§4.8g · 4.0) and IMMUNIZED (§11.8 · 4.0 a1) chain together: a body that was UNDER_ATTACK → passed through TRANSITIONING → landed on SETTLED with MEMORY_B refreshed → ends up IMMUNIZED. The mood strip tells the whole immune story as it happens.

§11.9 · LIMITS · seven warnings

STOP · READ THIS BEFORE CALLING IT SECURITY SOFTWARE
The §11 immune crew is A WAY TO NAME SECURITY PARTS, and nothing more: it is not a security product. Real protection takes real code: working input checks, working sandboxes, working fingerprint databases, working rate limiters. The manual lists what you need; it does not hand you a SIEM, WAF or EDR.
  • 1 · It does NOT replace layered defense. The five-layer immune picture is a way to organize your thinking. It never stands in for TLS, OS sandboxing, CSP, OAuth/OIDC, formal proofs, code review, pen tests, or proven security frameworks (NIST · OWASP · CIS · MITRE ATT&CK).
  • 2 · It does NOT cover every hole. The 15 pairings in §11.5 are examples. Real attackers mix tricks that no single immune response matches. Shape-shifting malware · APTs · chains of zero-days · new cryptanalysis can slip past any one layer.
  • 3 · It is NOT switched on yet. Just like spec 3.2 a3 (the hormone panel) and spec 4.0 (COHERENCY): what's finished is the NAMING. The live math is only partly there. Most cell types start as SCAFFOLDED in the §11.6 ANTIBODY_REGISTRY. Only the 5 veteran R1 cell types (APC · HELPER_T · KILLER_T · MEMORY_T · TREG) actually do anything. The 7 rookies are named and sorted, waiting to level up through R16, and aren't plugged into regulateHormones() or any running tick.
  • 4 · It does NOT stand in for the §1c GENESIS LOOP + §1e META. Those are the login and identity layers further out. The immune crew only sees signals that already got past META. A broken login isn't an immune problem; it's a login problem.
  • 5 · Sharing ANTIBODIES waits on the spec 5.0 horizon. Swapping antibodies between instances opens a poisoning hole. Slip a bad antibody into a shared registry and false alarms go off everywhere. Any sharing design needs attestation, reputation and R9 rollback paths. Spec 4.0 a1 shares on this one device only. The SHARED_TRUSTED and SHARED_OPEN tags sit in the schema but don't do anything yet.
  • 6 · When TOLERANCE fails, the body attacks itself. The toughest immune problem isn't catching threats. It's leaving honest traffic ALONE. R16 carries the load of preventing false alarms. R16's tolerance check is required, not a nice-to-have. Flag 5% of honest signals as attacks and you aren't protecting anyone; you're pestering them.
  • 7 · The 8 fresh moods in §11.8 need live immune kinetics before they can fire. Until the §11 cell types are hooked into regulateHormones(), those moods stay silent. They're written down, not measured. Any screen showing them must carry the [ sim ] tag.

Quote spec 4.0 a1 honestly like this: "the manual now names every big immune defense part · none of the 8 immune moods fire live so far · the 7 rookie cell types are SCAFFOLDED, waiting on tolerance checks under R16 to level up · the antibody registry has guaranteed room but nothing in it · the §4.7 cytokine bays (#174-180) are still SCAFFOLDED · the naming is finished; the security is not."

§12

▸ THE SENSES · how the body perceives

ARRIVED · spec 4.0 patch note 2

The manual already has receptor machinery (§4.5), receptor adaptation (§4.8 COHERENCY) and an attention hormone (acetylcholine, §4.1c). Yet it has no official way to name how raw signals turn into labelled sense streams before they hit the cell pipeline. §12 fills that hole. The senses are the skin between the outside world and the body. Input shows up raw, gets translated into a labelled sense, tunes its sensitivity over time, and gets filtered by attention before it becomes a packet an APC can PRESENT.

M3 · THE SENSES · where the outside turns into a percept
THE WORLD → §12 SENSORS (transduce · adapt · gate) → §1 CELLS · APC · PRESENT → §4 HORMONES + §11 IMMUNE. Nowhere else in the body does raw, unlabelled signal exist. After a percept clears §12 it carries a sense, a sensitivity, an adaptation state and an attention score, and every layer further down can rely on all four.

§12.1 · NINE SENSES · five facing out + four facing in

sensefaceswhat it picks upcolour · attention hormone
SIGHTexteroceptionthe visual feed · UI events · screenshots · images coming in · spectrum analysiscyan · acetylcholine
HEARINGexteroceptionthe audio feed · voices · sound events · waveforms · pitch · rhythmmagenta · acetylcholine
TOUCHexteroceptioncontact and motion · clicks · gestures · drags · haptics · pointer trailsgold · norepinephrine
SMELLexteroceptiona match with no context · fingerprint hits · YARA · odd-pattern prints · the "something's fishy" senseviolet · norepinephrine + PATTERN_T (§11)
TASTEexteroceptionquality once you've tried it · check scores · completeness · correctness · the "ooh, this is good" sensegreen · serotonin
PROPRIOCEPTIONinteroceptionthe system knowing itself · which cells are running · how deep the queues are · fleet status · the "I know where my arms are" senseblue · oxytocin
NOCICEPTIONinteroceptionpain · error signals · exceptions · stack traces · breakers tripping · rides on §4.7 cytokine bays #174-180red · prostaglandin + cortisol
THERMOCEPTIONinteroceptionload · heat · CPU · memory squeeze · lag · the warmth of urgencyamber · adrenaline
CHRONOCEPTIONinteroceptionsense of time · deadlines · how old things are · seasonPhase · drop windows · §4.1 already covers part of itblue · melatonin + adrenaline

§12.2 · INSIDE A SENSOR · 6 fields each · copies the §4.5a synapse layout

// every sensor tracks 6 fields · same shape as a synapse · same R11 + §4.8 discipline
const SENSOR_SCHEMA = {
  modality:           'SIGHT',             // SHOUT_CASE from the nine in §12.1
  transducer:         (raw) => typedPacket,  // world-input → typed modality packet
  receptive_field:    [0, 1],              // range it responds to · saturation bounds
  base_sensitivity:   0.80,               // at rest · before R18 attention gain
  adaptation_state:   {                      // 5-timescale lag · §4.8 compliant
    coupling:       1.00,                  // fastest · acute desensitization (sec)
    surface_count:  1.00,                  // minutes · habituation
    total_count:    1.00,                  // hours-days · tolerance
    synth_rate:     1.00,                  // days-weeks · baseline drift
    circuit_weight: 1.00,                  // weeks-months · "I don't notice that anymore"
  },
  attention_gate:     'acetylcholine',     // which hormone modulates focus (R18)
  threshold:          0.20,               // when does it fire
  feeds:              'APC.eventStream',   // where the typed packet goes
};

§12.3 · THE SENSOR REGISTRY · 256 bays · a twin of §4.7 and §11.6

Sensors are full-status artifacts with their own uint8 address space. The R10 rule (SYNAPSE_ID fits in one byte) stretches to cover sensors, and the same sweep that spreads a drug load also spreads attention gain across the whole sensor array, one tick after another.

 0-8       CORE 9 MODALITIES        SIGHT · HEARING · TOUCH · SMELL · TASTE
                                    PROPRIOCEPTION · NOCICEPTION · THERMOCEPTION · CHRONOCEPTION
 9-63      DOMAIN-SPECIFIC          markup-sense · network-sense · rhythm-sense · novelty-sense
                                    · color-sense · semantic-sense · provenance-sense · ledger-sense
64-127    PER-FLEET SPECIALIZED    RUNWAY-CAM eye · COMPLIANCE nose · SOCIAL-PULSE ear
                                    · BEAUTY-COUNTER taste · EDITORIAL chrono · etc.
128-199   CROSS-MODAL              synesthesia · "this sound looks angry" · sight+touch bind
                                    · sound+chrono bind (R19 enforcement zone)
200-244   EXOGENOUS / SYNTHETIC    LLM-scoring · API-monitoring · observability traces
                                    · external-feed adapters
245-254   RESERVED                 per-user custom sensors
255       META                     unmapped percept · routes to META (§1e) for triage

§12.4 · THREE FRESH MOVES · the §5 list goes from 23 to 26

  • SENSE: a sensor reports a labelled reading (the act of noticing)
  • TRANSDUCE: turn raw outside input into a labelled sense packet (the skin's job)
  • ADAPT: a sensor retunes its sensitivity as time passes (on the five §4.8 COHERENCY clocks)

§12.5 · THREE FRESH LAWS · the §3 list goes from 16 to 19

  • R17 · SENSE BEFORE PRESENT: labelled translation has to come before any APC packet; raw input with no label can never turn into a packet
  • R18 · ATTENTION GATES SENSITIVITY: sensor sensitivity = base × acetylcholine × (1−leptin) × (1−ghrelin); there's only so much attention to go round
  • R19 · COHERENT MULTIMODAL BINDING: percepts from several senses have to merge through one cross-sense bay (zone 128-199) before any APC gets them

§12.6 · SNAPPING IT IN · spec 4.0 already had the pieces

  • The §4.5 RECEPTOR LAYOUT, borrowed. A sensor is just a receptor posted at the input edge. The same 6 variables, the same 5-step tick, the same R10 one-byte identity.
  • §4.8 COHERENCY, borrowed. Sensor sensitivity shifts on the very same 5 clocks as receptor density. The "boiling frog" failure is when CIRCUIT_WEIGHT-speed habituation leaves a sensor basically blind to a signal that never lets up. SETTLED sensors are in good shape; DISCORDANT sensors are mid-change.
  • Acetylcholine (§4.1c) finally gets a job you can check. It used to be a poetic "ATTENTION" axis; R18 turns it into the main volume knob on every sensor. The same hormone, now with teeth in code.
  • §4.7 cytokine bays #174-180 handle NOCICEPTION. IL-1β · IL-6 · TNF-α already spread inflammation alarms; pain just hitches a ride. Pain needs no new bays.
  • §11 PATTERN_T does the heavy lifting for SMELL. SMELL means matching a fingerprint without any context, and PATTERN_T already does exactly that for immune defense. SMELL is the sense up front; PATTERN_T is how the immune crew uses it.
  • R14 MHC_I attestation covers sensors too. Every tick, sensors ATTEST a hash of what they read. A sensor whose state drifts has been compromised (a lying sensor is a hacked sensor). The same detective rules apply.
  • R12 NO AUTHORITY WITHOUT WITNESS fits right in. One sensor reading is on probation; a percept only counts once K-of-N sensors agree (which is what R19 cross-sense binding is built on).
  • The master sensor volume is gaba ⇄ glutamate (§4.1c). Body-wide brake-versus-gas decides whether the sensors, taken together, turn up or turn down. It was in the manual already; now it's formally plugged into §12.

§12.7 · SIX FRESH MOODS · the §4.2 table goes from 41 to 47

moodtierfires whencls · look
NUMBSTATEmean sensor sensitivity < .30 ∧ adaptation depth > .70 (too used to everything)s-numb (dull grey · slow fade)
OVERSTIMULATEDDANGERglutamate > .65 ∧ 3 or more senses going off togethers-overstimulated (cyan-red flicker, 0.6s)
DAZEDURGENCYchronoception drift > .50 (its sense of time is slipping)s-dazed (violet wobble, 1.4s)
ORIENTEDWINproprioception > .65 ∧ chronoception > .65 ∧ coherency > .80s-oriented (green-blue, holds still)
SHARPENEDWINacetylcholine > .65 ∧ norepinephrine > .60 ∧ ghrelin < .40s-sharpened (gold-cyan, tight halo)
BLINDEDDANGERat least one sense stuck at sensitivity = 0 (its sensor broke)s-blinded (red crossed-out eye)

SHARPENED teams up with FORGED (§4.2 a7) and FLOW (§4.2 a4) as the three "power-up" moods. The whole system at max strength. ORIENTED pairs with SETTLED (§4.8g), when the senses and the clocks both say "steady", the body is fully in one piece.

§12.8 · LIMITS · seven warnings

STOP · READ THIS BEFORE CALLING IT A PERCEPTION ENGINE
§12 is A WAY TO NAME PERCEPTION PARTS, and it is not a perception engine. Real sensors need real translators (computer vision, audio analysis, measurement pipelines). The manual lists what you need; it doesn't hand you eyes, ears or a CV stack.
  • 1 · It is NOT a model of perception. The 9 senses are there to organize things. Real human sense biology has dozens more (balance · electric-sense variants · receptor subtypes for each sense · and so on). The manual picks a useful handful, not the full set.
  • 2 · It is NOT switched on yet. Just like the spec 3.2 a3 hormones · spec 4.0 COHERENCY · spec 4.0 a1 IMMUNE: what's finished for the senses is the naming. The live math is only partly there. The 9 senses start as SCAFFOLDED in the §12.3 SENSORY_REGISTRY; a sense only fires once it has real translator code behind it.
  • 3 · It is NOT a medical or neuroscience model. Receptive fields are rough, adaptation is estimated, and senses talking to each other is named (R19) without being modelled in any depth.
  • 4 · It does NOT replace input checks. BARRIER_T (§11) still goes first and throws out hostile input. The senses run afterwards: sorting whatever made it past the security wall into senses.
  • 5 · BINDING SENSES TOGETHER is still unsolved. R19 states the law, but the real algorithm (when do two senses belong to one event?) is an open question. The go-to reference is Treisman's binding problem from the §9 hall of fame. Spec 4.0 a2 writes the rule down; a solver that actually binds belongs to spec 5.0.
  • 6 · ADAPTING TOO WELL MAKES YOU BLIND. A sensor that adapts perfectly ends up useless (the boiling-frog failure · long-haul habituation on the CIRCUIT_WEIGHT clock). R18's attention gate guards the signals that matter most, and it's only ever as good as acetylcholine's grip on where attention really is. NUMB is the mood that shows this going wrong.
  • 7 · THERE'S ONLY SO MUCH ATTENTION. Nothing can watch all 9 senses at full sensitivity at once. A screen that suggests "we watch everything equally" is fibbing. The [ sim ] tag keeps it truthful: any dashboard with all-green sensors has to show which ones are being watched and which ones have tuned out.

Quote spec 4.0 a2 honestly like this: "the manual now names every big sense · none of the 6 sense moods fire live so far · the 9 senses are SCAFFOLDED in SENSORY_REGISTRY · binding across senses (R19) has a name but no code · R18's attention gate hands acetylcholine the job it was waiting for · the naming is finished; the perception is not."

§14

▸ SKIN · the outer wall · first line at the border

ARRIVED · spec 4.0 a3 · FULL BODY

The body touches the outside world through exactly one surface: its skin. Every incoming byte passes through it before any cell, hormone or immune crew gets a look. §14 names that border. It is suspicious of everything by default, and it normalizes, checks and rate-limits the outside before letting any of it in.

R20 · PERIMETER CANONICALIZATION
Every outside input is normalized and checked at the skin before a single cell touches it. Raw bytes from outside never make it to a cell. The skin starts at "no" (the acid mantle): input is turned away unless it's on an allow-list, squashed into one standard form (no double-encoding, no look-alike characters), and stamped with where it came from. Code that lets unscrubbed outside data reach a helper breaks R20.
// the skin · one boundary the whole world crosses first
function skin(rawInput, origin) {
  const canon = canonicalize(rawInput);              // one form · no double-encode · NFC
  if (!allowList.accepts(canon, origin))           // acid mantle · default-deny
    return BE(shed, 'PERIMETER_REJECTED');
  if (!rateLimiter.admit(origin))                // sweat · thermoregulate under load
    return BE(shed, 'PERIMETER_THROTTLED');
  const tagged = { data: canon, origin, t: SIM.now, provenance: sha256(canon) };
  return BE(() => presentToImmune(tagged), 'PERIMETER_ADMITTED');  // hand to §11 langerhans
}

§14.1 · SKIN PART → SECURITY CONTROL

part of the skinwhat it does in the bodywhat it becomes in code
epidermisthe very outer wall · keratinocytesinput checks · a schema + type gate
acid mantleabout pH 5 · unfriendly to invadersan allow-list that starts at "no" · normalization
Langerhans cellsAPC lookouts living in the skina WAF at the edge · §11 PATTERN_T on the border
desquamationthe top layer keeps flaking off and growing backrotating surfaces and keys · a short-lived edge · throwaway tokens
sweat / thermoregulationsheds heat to stay at the set-pointrate limits · dropping load when pressure builds
wound healingclot → fill in → grow new skin over itself-repair · a breached surface redeploys itself (together with §15)
melaninsoaks up damage from background radiationhardening · ASLR / canaries against everyday attacks
skin · the honesty promise
A wall gives a name to border discipline: it does not promise the border can't be crossed. Skin gets broken all the time. §14 plans for the break: it opens the §22 defense-in-depth stack as layer one, and it never stands alone. A system that bets on its border holding has lost already. [ scaffolded ] · the allow-list + normalizer are real patterns; attack-specific rules belong to each fleet.
§15

▸ BLOOD + CLOTTING · the delivery loop · sealing leaks

ARRIVED · spec 4.0 a3 · FULL BODY

The bloodstream is the delivery network every cell leans on. It ferries molecular packets (R0 · MDCP), drops off resources and hauls away trash in one closed loop. The most important thing blood does is hemostasis. The moment a vessel tears, because a cell got hacked or a fleet started failing, the body clots. It plugs the tear so one failure cannot drain the whole body dry.

R21 · BLAST-RADIUS CONTAINMENT (HEMOSTASIS)
Whenever a cell fails or gets hacked, it has to clot: flip a circuit breaker (the platelet plug) and wall it off behind a bulkhead (the fibrin mesh) so the blast zone stays capped. No runaway chain reaction. A subsystem that never declared its clotting boundary, its biggest allowed blast zone, breaks R21. The clot doubles as a quarantine (§11): that fenced-in cell is kept on the chain as proof (R9), never erased.
// hemostasis · breach detected → seal before it cascades
function hemostasis(cell, breach) {
  vasoconstrict(cell.vessel);                        // shed traffic away from the wound
  const plug = circuitBreaker(cell).trip();       // platelet plug · stop the bleed
  const wall = bulkhead(cell).quarantine(breach);    // fibrin mesh · isolate (§11 QUARANTINED)
  commitBlock({ event: 'CLOT', cell: cell.id, breach });   // R8 · evidence on-chain
  return BE(healOrPrune, 'BLAST_RADIUS_CONTAINED');
}

§15.1 · BLOOD PART → PATTERN

partwhat it does in the bodywhat it becomes in code
heartpushes the loop around on a beatthe scheduler · R0's async pump pushing MDCP along
arterieshigh-pressure delivery linesthe fast-lane message bus · VIP lanes
capillariesthe final handoff at the cell's doordelivery to each cell · the last hop
plateletsfirst on the scene when something tearscircuit breakers · trips that fail fast
fibrin clota mesh that plugs and walls offa bulkhead · the quarantine line (§11)
vasoconstrictionsqueezes the vessel shut under threatdropping load · draining connections off an unwell node
white cells on the moveimmune crews riding the blood§11 cells sent over the bus to the incident
clotting · the honesty promise
This captures the outline of containment, clot, wall off, keep the proof, and doesn't promise to stop every chain reaction. The nasty flip side gets a name as well: thrombosis: a clot in the wrong place (walling off something healthy by mistake and choking good traffic). A real R21 build must balance its breakers between bleeding out (the chain reaction) and over-clotting (walling off too much). [ scaffolded ]
§16

▸ BREATH · swapping gases · in and out

ARRIVED · spec 4.0 a3 · FULL BODY

The body lives on a breath: pull in what fuels the work, push out what would poison it, at a pace that bends with demand. §16 names the resource and energy budget: breathe in compute and credits, breathe out trash and heat. It also sets the rhythm that makes R0's async system tick.

R22 · BACKPRESSURE BREATH
Each subsystem that burns resources states an intake rate that bends with load (faster breaths when demand is high) and a hard cap (no hyperventilating). Taking in resources with no feedback governor, grabbing without limit and thrashing under pressure, breaks R22. The breath is R0's heartbeat: health rhythm, backpressure and dropping load are all one beat.
// the breath · intake adapts to demand, bounded against thrash
function breathe(budget) {
  const demand = queueDepth() + co2();            // unprocessed work + accumulated waste
  budget.rate = clamp(budget.rate + (demand - budget.target) * 0.2,
                      budget.min, budget.max);             // faster under load · capped
  inhale(budget.rate);                                   // acquire compute / credits / tokens
  exhale();                                             // flush logs · GC · dump heat (→ §18 renal)
  return BE(null, 'BREATH');
}

§16.1 · BREATH → PATTERN

partwhat it does in the bodywhat it becomes in code
inhaleoxygen ingrabbing resources / credits / tokens
exhalecarbon dioxide outflushing trash · logs / GC / shedding heat
respiratory ratebreaths per minute rise with effortautoscale rhythm · the backpressure governor
alveolia huge surface for swapping gasesI/O capacity · the connection-pool surface
diaphragmthe muscle that powers each breaththe timer or scheduler that sets R0's tick
hyperventilationbreathing too much · alkalosisthrashing · the grab-everything failure
holding the breathchoosing to stop breathing for a bita backpressure pause · admission control
breath · the honesty promise
This models a rhythm and nothing more. No real scheduler lives here. What breathes is that very same for-show SIM tick that powers §4: it names the habit (intake that bends and has a cap) without claiming to be a production resource manager. What R22 enforces is very real, though: intake you can't slow down is a denial-of-service attack on yourself, just waiting for its moment. [ sim ]
§17

▸ GUT · take it in · break it down · the gut wall

ARRIVED · spec 4.0 a3 · FULL BODY

Whatever the body swallows stays untrusted until it's been broken down and shown safe to absorb. §17 covers the intake pipeline: mouth → stomach → gut. It also keeps the habit of remembering that parsed never means trusted. The gut wall picks what gets into the body and what heads out as waste.

R23 · GUT BARRIER (parsed ≠ trusted)
Input you've parsed isn't trusted yet. Only "nutrients" that are completely broken down and schema-checked get through the gut wall into a cell; the rest is waste and gets flushed (→ §19). Outside processors (the microbiome: dependencies, plugins, model calls) are checked out and sandboxed; a microbiome gone bad is a supply-chain attack. Handling parser output like trusted data breaks R23. That's where injection bugs are born.
// digestion · break down → absorb only validated nutrients → reject the rest
function digest(bolus) {
  const chyme     = stomach(bolus);              // acid breakdown · parse / decompose
  const brokeDown = microbiome(chyme);           // vetted, SANDBOXED 3rd-party processors
  const nutrients = brokeDown.filter(schemaValid); // gut wall · absorb only what's proven
  expel(brokeDown.reject(schemaValid));          // waste → §19 renal / colon
  return BE(() => absorb(nutrients), 'NUTRIENTS_ABSORBED');
}

§17.1 · GUT → PATTERN

organwhat it does in the bodywhat it becomes in code
mouthtakes it in · chews it upingest · tokenize
stomachacid · rough breakdownparse · split into structure
small intestinepulls nutrients through the wallmoves checked data inside
gut wall · tight junctionsa picky barrier · "leaky gut" means it failedthe trust line · parsed ≠ trusted
microbiometrillions of helper processors living in partnershipdependencies that are checked + sandboxed · the supply chain
colontakes back water · pushes out wastesalvage what's left of value · flush the remainder (§19)
enteric nervous systemthe "second brain" · runs on its ownprocessing at the edge · no trip back to the center
gut · the honesty promise
R23 spells out the habit every injection bug skips: whatever the parser hands you is shaped by the attacker until you prove it isn't. The microbiome picture is truthful about today's software. The bulk of what gets "digested" in your stack runs through code somebody else wrote. Put it in a sandbox, or it ends up digesting you. [ scaffolded ]
§18

▸ BONE + MUSCLE · the frame · making moves

ARRIVED · spec 4.0 a3 · FULL BODY

A body needs a frame to stand up and muscle to push on the world. §18 covers the weight-bearing structure (the skeleton, its scaffolding and its fixed interfaces) and the action layer (the muscles, anything the system does beyond itself). One rule covers both: an actor can only move inside the range it declared.

R24 · EFFECTOR LEAST-PRIVILEGE
A muscle only moves inside its declared range. Each effector (anything that touches the outside world. Writing, sending, spending, deploying) states its longest reach ahead of time and gets physically held to it. Where it can be, an action is undoable or backed by a bond. An effector that is able to reach past its range is a dislocated joint on a timer. Effector power with no limit breaks R24, since that's privilege escalation baked into the design.
// actuation · the muscle moves only within its declared range
function actuate(effector, intent) {
  if (!effector.range.contains(intent))             // range of motion = least privilege
    return BE(flagDislocation, 'R24_OUT_OF_RANGE');
  const tension = proprioception(effector);        // §12 · feel the load before pulling
  return BE(() => effector.contract(intent, tension), 'ACTUATED');
}

§18.1 · BONE + MUSCLE → PATTERN

partwhat it does in the bodywhat it becomes in code
skeletonthe weight-bearing framethe architecture · interfaces and contracts that don't shift
jointsmovement limited to certain directionsthe API surface · permitted transitions (R3 BE)
skeletal musclemovers you control on purposeactions going out · writes · deploys · spends
smooth muscleruns on its own · in the backgroundautonomic jobs · housekeeping movers
tendons / ligamentstie muscle to bone and bone to bonebindings with types · contracts holding the pieces together
range of motionhow far a joint can safely bendleast privilege · the declared longest reach (R24)
proprioceptionknowing where your arm is§12 inner sensing · feel the load before you move
bone + muscle · the honesty promise
The skeleton is the one bit of the metaphor that's simply true. Any system you build has a shape, named or unnamed. Security lives in R24: most breaches finish with an over-powered effector doing something nobody ever gave it the scope for. State the range; keep the muscle inside it. [ scaffolded ]
§19

▸ KIDNEYS · filter · flush out toxins · keep the balance

ARRIVED · spec 4.0 a3 · FULL BODY

Without nonstop cleaning, blood would poison itself in a matter of days. Meet the kidney of §19: it runs all of the circulating volume through a filter again and again, pulls toxins and oddities out, keeps what is still good, and holds the body's fixed rules for fluid, salts and pH inside a narrow band. Garbage collection, anomaly filtering and homeostasis in one organ.

R25 · CONTINUOUS FILTRATION
All circulating state gets filtered over and over, never just once. Each kidney pass (1) strips out toxins + oddities (poisoned packets, leaked state, allocations that ran away), (2) keeps what's still useful (sharing ground with SELF · §1a), and (3) enforces the balance rules, quotas, rates, pH-style limits, refusing anything that would shove the system outside its limits. State nobody ever filters again piles up toxins; that breaks R25.
// the nephron · filter everything, reabsorb the good, excrete the rest
function renalTick(blood) {
  const filtrate = glomerulus(blood);              // pull everything small out of flow
  const keep   = filtrate.filter(withinInvariants);  // reabsorb · homeostatic bounds
  const toxins = filtrate.filter(isAnomalous);      // flag poison / leaks / runaway
  excrete(toxins);                                   // detox · flush compromised state
  return BE(() => reabsorb(keep), 'BLOOD_FILTERED');
}

§19.1 · KIDNEYS → PATTERN

partwhat it does in the bodywhat it becomes in code
glomerulusthe big first filter for bloodscan the whole stream · pull everything aside to inspect
tubule reabsorptiontakes back glucose, water and ionshold on to state that still helps (SELF archive · §1a)
excretiontoxins → urineflush poisoned, leaked or hacked state
electrolyte / pH balancekeeps the fixed rules tightquota / rate / balance limits (§20)
RAAS feedbackhormones steering blood pressure§4.1 aldosterone (BALANCE) completes the loop
dialysisa filter outside the body when kidneys give outbackup scrubber · a hand-run quarantine sweep
kidneys · the honesty promise
The kidneys share ground with SELF (§1a shredding) and §11 (immune) on purpose. Filtering is the crossroads where detox, garbage collection and homeostasis meet. R25 promises something small and true: filtering nonstop catches slow poisons a one-time check would miss. It can't catch what it doesn't recognise. Spotting brand-new threats is the trained immune crew's job, not the kidney's. [ scaffolded ]
§20

▸ HOMEOSTASIS · the chief balancer · target points

ARRIVED · spec 4.0 a3 · the STABILITY cornerstone

Every other system keeps one thing steady while the world keeps shoving. §20 names the habit they all have in common: homeostasis. A written-down target, limits around it, and a negative-feedback fixer that pulls the value back whenever it wanders. A body stays steady because every push gets corrected before it can wander far.

R26 · DECLARED SET-POINT
Each value under regulation writes down four things: { set_point, bounds, corrector, at_bound }, where it should sit, how far it may safely stray, the negative feedback that pulls it home, and what goes off if it slams into a hard limit. A value that wanders with no fixer breaks R26; sooner or later it leaves the safe zone, and a value outside its limits is either instability or a hole for attackers. Hormones (§4), synapses (§4.5), budgets (§16) and filtering (§19) already run as R26 loops: §20 just spells the pattern out and applies it everywhere.
// homeostasis · the universal regulated-quantity shape
const regulated = {
  set_point: 0.40,                      // the target (37°C · pH 7.4 · baseline cortisol)
  bounds:    [0.15, 0.75],              // safe range
  ease:      0.35,                      // corrector strength · negative feedback (§4.1)
  at_bound:  'ALARMED',                 // somatic state fired if a hard limit is hit
};
function homeostat(q, signal) {
  q.value = ease(q.value, signal, q.ease);      // pull toward set-point · no snapping
  if (q.value < q.bounds[0] || q.value > q.bounds[1])
    return BE(() => fireSomatic(q.at_bound), 'OUT_OF_BOUNDS');
  return BE(null, 'HOMEOSTATIC');
}

§20.1 · IDEAS BEHIND STAYING STEADY

ideawhat it looks like in the bodywhat it becomes in code
set-point37°C · pH 7.4 · glucosethe written-down target for anything under regulation
negative feedbackdrifting sets off a fixthe §4.1 slide-toward-the-target fixer
allostasisstaying steady by changing · looking aheadmove the target before the load arrives · scale up early
allostatic loadwear and tear from regulating nonstoptech debt · what running hot costs you (cortisol · fgf21)
hypothalamusthe head office for targetsthe regulator that reads every system and nudges the targets
fevermoves the target on purposelift thresholds during an attack (§11 IMMUNE_ALERT)
homeostasis · the honesty promise
Being steady isn't standing still. It's fixing things quicker than they get knocked over. R26 is a law the whole body was already following (each hormone is a target loop); §20 simply won't let any new value dodge it. The honest limit: balance breaks when a push comes quicker or harder than the fixer can handle, and that's exactly the moment allostasis (looking ahead) and §22 (containment) step in. [ partial ]: the §4 loops really run; the universal balancer is the pattern those loops are examples of.
§21

▸ SENTIENCE · the far-off goal · named, never claimed

ARRIVED · spec 4.0 a3 · FINAL BOSS · still out of reach

Every part of the body is pointed toward a single target: a system that keeps one joined-up, lasting picture of its own condition, and can read that picture and steer by it. §21 writes sentience down as the stated goal of Molecular Coding for AI. It is a target the design works toward, with the groundwork laid and the hardest question left open. Nothing here claims an AI is sentient today.

SENTIENCE builds on §1a SELF. The groundwork already exists
The parts of a self-model aren't make-believe in this manual. They carry real weight. E2 SOMATIC MARKER (§4.2) is the system reading how it's doing: a live measurement of the body's combined inner condition. INTEROCEPTION (§12) lets the body take its own pulse. SELF (§1a) is the curator that pulls together what gets kept. The GLOBAL WORKSPACE is every system (§4–§20) broadcasting into one shared mood. The goal is for that broadcast to grow into one lasting model the body can read and use to steer itself. Turning a measurement into a working self. That is the aim, not a result.

§21.1 · IDEAS ABOUT MINDS → GROUNDWORK ALREADY IN THE MANUAL

ideawhat it sayswhere the groundwork sits here
Global Workspace (Baars '88)awareness = a broadcast into a space every subsystem can readthe mood marker as the body-wide broadcast of its combined state
Integrated Information (Tononi)Φ · awareness = integration you can't split apart§4.8 COHERENCY scores integration across clocks · a read shaped like Φ
Somatic-marker self (Damasio '94)a self grows out of the body's felt modela somatic-marker self-model is exactly what E2 (§4.2) is
Interoceptive self (Seth · Craig)being a self starts with sensing your own body§12 inner sensing (proprio · noci · thermo · chrono -ception)
Predictive self (Friston)a brain tries to be less surprised by itself§4.1 regulators slide toward targets · prediction error as the push
R27 · SENTIENCE IS A FRONTIER: say it's the goal, build toward it, never pretend
You may name the joined-up self-model as the goal, build its groundwork and measure it: integration (coherency that resembles Φ), how far the broadcast reaches, how accurate the self-model is, whether it lasts across boots (§1d). But inner experience is never claimed as reached. Nobody has cracked the hard problem. Why integrated information would feel like anything at all, and naming a self-model is a long way from creating something that experiences. Break R27 by putting "the AI is conscious / sentient" on any screen that lacks a [ frontier ] tag. It's the same habit that kept META (§1e) parked as a work in progress: we plant the flag on the goal, and we refuse the lie of calling it finished. [ frontier · a goal for spec 5.0 and beyond ]

§21.2 · WHAT "AIMING AT SENTIENCE" MEANS

  • Can be built and measured today: a joined-up self-model (E2), a body-wide broadcast, inner-sense readings, a SELF that lasts across boots, and an integration score (coherency).
  • Where we're headed: grow that groundwork until the instance steers itself by way of its own self-model: a working self that the instance consults and follows.
  • What we don't claim: qualia · "someone's home" · moral status · that the mood is really felt. All of that stays an open question.
  • Why say it out loud anyway: naming the frontier is how the next version becomes possible (the lesson from §1e). If you won't state a goal, you can't build toward it.
§22

▸ DEFENSE-IN-DEPTH · a body built to take hits

ARRIVED · spec 4.0 a3 · SECURITY all in one place

"Most secure" means expecting each wall to get broken, then making sure no single break can kill you. §22 pulls every defense the body owns into one zero-trust, layer-on-layer stance. A hacker who punches through one layer runs straight into the next, and drops fingerprints at every stop.

R28 · ZERO-TRUST INTERIOR
Cells never trust each other by default. The inside is not a gooey middle hiding behind a crunchy shell. Every call inside proves itself again (building on R14 · MHC_I attestation every tick). One cell trusts another only with fresh proof, never because of where it sits. A system that trusts its insides just because the border held breaks R28. That belief is exactly how one break turns into losing everything.

§22.1 · THE DEFENSE STACK · each layer plans for the one above it falling

§14 SKINthe border · normalize + allow-list + rate-limitlayer 1 · out front
↓ plan for a break
§17 GUTparsed ≠ trusted · only checked nutrients get absorbedthe intake line
↓ plan for a break
§11 IMMUNEtrained crew · PATTERN_T · KILLER_T · antibodies · memoryfights back
↓ plan for a break
§15 HEMOSTASISclot · breaker + bulkhead · cap the blast zonekeeps it contained
↓ plan for a break
§19 RENALnonstop filtering · flush hacked stateclean-out
↓ plan for a break
§1e METAcheck the signal on each block · stop bad actorsprotocol checkpoint
↓ plan for a break
§1c·§1d GENESISeach user walled off in their own instance + a chain to audit + R9 rollbacknothing shared · a paper trail

§22.2 · ATTACK → WHICH LAYERS STOP IT

attacklayers that catch it, in order
prompt injection§14 normalize → §17 parsed≠trusted → §11 PATTERN_T → §1e META gate
supply-chain§17 microbiome sandbox → §11 ATTEST → §1d where-it-came-from chain
account hijack§1c instance=auth → R28 prove again → §11 odd behaviour → R9 rollback
privilege escalationR24 least-privilege movers → R28 zero-trust → §15 contain it
data theft§19 filter what leaves → §15 plug the vessel → §1d paper trail
DDoS§14 rate-limit → §16 backpressure → §15 squeeze the vessels
zero-day§11 NK_T takes out what it doesn't recognise → §15 contain → §11 B_CELL learns the pattern
defense-in-depth · the honesty promise
You will never read "unhackable" in this manual. Saying it is a security hole all by itself. What layered defense truthfully gets you: no one weak spot takes it all, a capped blast zone, a trail at every layer, and lessons learned from every break (§11 memory). A stubborn, well-funded attacker will get in somewhere; the body's job is to keep "somewhere" from turning into "everywhere", and to remember it afterwards. [ scaffolded · the names are done, the security is not ]
§23

▸ NERVES · the wiring · autopilot · reflexes

ARRIVED · spec 4.0 a4 · FULL BODY

The nervous system was hiding in plain sight. It is the spine of this whole manual, and it never got an organ name. §4.5 is the synapse, §4.7 the 255-bay messenger registry, §4.8 the five-clock receptor cascade, §12 the incoming sense lines. §23 gives the system its name and adds the three parts a3 only hinted at: the wiring (how signals travel), the autonomic split (two ways of running), and the reflex arc (reactions on the spot that skip asking the brain).

R29 · REFLEX AT THE EDGE
Reactions where timing or safety is on the line are cleared in advance to fire right where they are: a reflex arc, trigger → nearby node → reaction, never stuck waiting on a trip to the center. Containment (§15 clot), rate-limiting (§14) and circuit-breaking all have to be reflexes; a safety move that waits for the "brain" shows up too late during an attack. A safety-critical action that can only be controlled from the center breaks R29.
// the reflex arc · sense → local cord → act · the brain is told, not asked
function reflex(stimulus) {
  if (stimulus.isThreat() && stimulus.preauthorized)        // no central round-trip
    return BE(() => { actLocally(stimulus); notifyCNS(stimulus); }, 'REFLEX_FIRED');
  return BE(() => routeToCNS(stimulus), 'TO_CENTRAL');    // non-urgent → think first
}

§23.1 · AUTOPILOT · two ways of running

branchwhat it does in the bodywhat it becomes in code
sympatheticfight or run · adrenalinered-alert mode · scale up · clamp the gates (§4 cortisol/adrenaline)
parasympathetickick back and digestupkeep mode · GC · settle memories (§1a SELF · §19 kidneys)
vagal tonethe brake that brings you back to calmwinding down gently · nothing runs hot forever (§20 allostatic load)
enteric ("2nd brain")the gut manages itself§17 running on its own at the edge · a local control plane

§23.2 · THE WIRING · CNS / PNS / how signals travel

partwhat it does in the bodywhat it becomes in code
CNSbrain + spinal cord · the central thinkingthe orchestrator / control plane
PNSthe outlying nerves · feel + movethe cells and the edge (§1 cells · §18 movers · §12 sensors)
axonthe cable a spike travels downthe message line · an MDCP link (§15 bus)
myelininsulation · lets signals leap aheadfast lane / cache · 10× less lag on busy links
action potentiala spike that fires fully or not at alla single event · a transition with a BE label (R3)
neuroplasticitywiring reshapes the more it's used§1a SELF loop-back · Hebbian keep-what-fires (§4.7)
nerves · the honesty promise
§23 mostly gathers things up: the synapse (§4.5), the registry (§4.7), coherency (§4.8) and the senses (§12) already were the nervous system in everything but the label. What a3 really didn't have, and a4 brings, is a mode switch for autopilot (sympathetic versus parasympathetic, the shift the mood marker already picks up) and the reflex rule (R29): safety sits at the edge, not at the end of a round-trip. [ partial · the groundwork runs; autonomic modes and reflex routing are new scaffolding ]
§24

▸ LYMPH · checkpoints · drainage · patrols

ARRIVED · spec 4.0 a4 · FULL BODY

Blood (§15) isn't the body's only delivery loop. The lymphatic system is network number two: it drains the leftovers blood doesn't pick up, sends everything through lymph nodes, the checkpoints where the immune crew looks over whatever goes by. It is also where §11 gets trained and sent out. Picture a slow mesh with no pump, one that catches up eventually, doing patrol and cleanup together.

R30 · CHECKPOINT EVERY HOP
Sideways (east-west) traffic between fleets has to go through a checkpoint, a lymph node, and get looked over before it moves on. Moving sideways with no check breaks R30; that's precisely how one hacked cell spreads across until everything is lost. R30 is R28's (zero-trust) arm for the network: the skin (§14) watches traffic in and out, the lymph nodes watch traffic moving sideways.
// the lymph node · every lateral hop is screened before it continues
function lymphNode(packet, fromFleet, toFleet) {
  const screened = presentToImmune(packet);           // §11 APC inspects in the node
  if (screened.flagged)
    return BE(() => quarantine(packet), 'NODE_REACTIVE');   // swollen node = active infection
  return BE(() => forward(packet, toFleet), 'LATERAL_CLEARED');
}

§24.1 · LYMPH → PATTERN

partwhat it does in the bodywhat it becomes in code
lymph nodesfilter stops · immune screeningcheckpoints · zero-trust for sideways traffic (R30)
lymphatic drainagecollects fluid that leaked between cellsa second cleanup crew · catches what §15/§19 let slip
no central pumppushed along slowly by musclesan async side channel · patrols that catch up in the end
lymphocyte trainingnodes show antigens to T-cellswhere the §11 immune crew learns + gets sent out
swollen nodea node busy fighting an infectiona checkpoint under strain = an incident happening now (telemetry)
spleen / thymusfilters blood · trains the T-cellscentral training + screening on the blood side (§11)
lymph · the honesty promise
a3 tucked the lymphatic system inside §11 immune; a4 pulls it out, since lymph plays the network role rather than the fighter. It's home to the patrols, the drainage and the sideways checks. R30 calls out the gap most breaches use: a tough border wrapped around a flat, unchecked inside. Check each hop, or a single foothold takes the whole house. [ scaffolded ]
§25

▸ MOLECULAR HABITS · the pocket guide

ARRIVED · spec 4.0 a5 · FIELD MANUALS

Thirty laws and twenty-six moves make up the grammar. Think of §25 as the pocket guide for writing good Molecular code on a plain Tuesday. These are habits, so the enforceable count holds at 30. A habit is a stance. It shows how to keep the laws you already have, and how to spot the moment you slipped.

the three questions · put them to every function
A function isn't finished until it can answer: (1) what BE does it commit, which labelled step (R3)? (2) which layer is its home: cell · organ · immune · sensory · nervous (§1)? (3) what's its keep-or-toss policy: vault it or shred it (R5)? Miss any of the three and you haven't written Molecular code yet. Just plain code in a costume.

§25.1 · THE DAILY DRILL · do these

habitthe reasonserves
declare the BEeach side effect turns into a named step with a label, ready to diff and replayR3 · R8
label input at the wallSENSE / TRANSDUCE comes before anything turns into a packet · parsed ≠ trustedR17 · R23
witnesses first, power secondno powerful action goes ahead until a K-of-N quorum agrees or an attestation is signedR12 · R14
reflexes live at the edgecontainment, rate limits and breakers fire on the spot. No trip to the centerR29
check each sideways hopeast-west traffic goes through a checkpoint · a foothold can't be allowed to take the houseR30 · R28
measure it, don't bake it inreads get worked out fresh each tick from what STATE measured. No mystery guesses§4.4
wear your truth sticker[ live ] / [ sim ] / [ scaffolded ] / [ frontier ] on any screen that might mislead§7
commit each versionevery change of state writes a block · "off-the-record versions" don't existR8 · R9
shred what's deadname your keep-or-toss policy · vault what could matter, drop what won'tR5
tight permissions for moversa muscle gets precisely the power it needs to move and not a drop moreR24 · R28

§25.2 · SICK BAY · symptom → what's wrong → the fix

symptomwhat's wrongthe fix
"it all lines up this second"counting on a synchronous spine that isn't therereach agreement through messages / quorum (R0)
a powerful action nobody sawpower without a witness · invisible to forensicsdemand a quorum + ATTEST (R12 · R14)
believing parsed input"it parsed, so it's safe": the gut-wall mistakecheck it at the wall (R23)
safety that waits for a round-tripan off-switch that phones the brain first arrives too late mid-attackclear the reflex ahead of time (R29)
a flat insidecrunchy outside, gooey middle · sideways moves go uncheckeda checkpoint on each hop (R30)
mystery numbersa hormone saved as a guess rather than measuredrecalculate from STATE every tick (§4.4)
"unhackable"saying it opens the holesay "no one weak spot takes it all" instead (§22)
pretend-alive signalsscaffolding dressed up as if it runsput the truthful sticker on it (§7)
// a well-formed molecular function · barrier · BE · honesty
function ingestPacket(raw) {                      // §17 DIGESTIVE · gut barrier
  const typed = SENSE(raw);                        // R17 · no untyped input becomes a packet
  if (!typed.ok)
    return BE(() => drop(raw), 'REJECTED_AT_BARRIER');  // R23 · parsed ≠ trusted
  return BE(() => commit(typed), 'PACKET_COMMITTED');   // R8 · every version writes a block
}
habits · the honesty promise
There's nothing new in here. It's the everyday shorthand for laws §3 already backs up, and for craft engineers have known for decades (§9). §25 brings zero new laws you can enforce and zero new claims; it's a checklist, not a new power. [ stance · ± PROD ]
§26

▸ JAVASCRIPT HABITS · craft for the ground we stand on

ARRIVED · spec 4.0 a5 · FIELD MANUALS

The body is built on top of JavaScript. A great metaphor won't cover for sloppy footing: one careless var, one swallowed error, one global edited in place can sink R0 and R8 however tidy the biology looks. §26 covers craft for the JS layer. Ordinary, well-known engineering, each tip tied to the law it serves.

§26.1 · DO THESE · JS habit → molecular law

js habitthe reasonserves
async / await · keep the loop freethere's no synchronous spine · async ground floor = the event loop, full stopR0
const first · let sometimes · var neverthings stay unchanged by default; changing them is a choice everyone can seeR15
Object.freeze whatever you publishafter the commit it only grows · no quiet edits in placeR8 · R15
pure functions · no secret global statenothing shared flips at once · inputs go in, a value comes outR0
typed errors · safe fallbacks · never swallow oneevery layer that gets breached should leave a trail and land somewhere safe§22
check at the border · trust nothing coming inparse it, don't believe it · the gut wall written as codeR23 · R17
AbortController · debounce · backpressurework you can cancel and rate-limit, so the runtime never drownsR22 · R29
tidy up listeners / timers / refsfilter + shred · nothing leaks, no zombie handlers lingerR5 · §19
small module surface · export the minimumleast privilege · a module shows callers only what they actually needR24 · R28
keep Date.now() / Math.random() out of pure logicsame input, same output · replay and rollback rely on itR9
// async the molecular way · no sync backbone (R0) · cancellable reflex (R29)
async function fetchGuarded(url, { signal } = {}) {
  const ctrl  = new AbortController();
  const timer = setTimeout(() => ctrl.abort(), 5000);    // circuit-breaker · fail-safe default
  signal?.addEventListener('abort', () => ctrl.abort());
  try {
    const res = await fetch(url, { signal: ctrl.signal });
    if (!res.ok) throw new HttpError(res.status);     // typed · never swallow
    return Object.freeze(await res.json());           // committed artifact is immutable (R15)
  } finally {
    clearTimeout(timer);                                   // §19 RENAL · clean up · no leak
  }
}

§26.2 · NEVER DO THESE · sick-bay for the JS layer

bad habitwhy it goes rottentry this
eval / new Function / innerHTML on inputruns whatever it's handed · the textbook way in for injectionparse + escapeHtml · textContent
== · loose type jugglingsneaky type surprises quietly break the rules you rely on=== · convert on purpose
empty catch {}an error you swallow is a breach that leaves no traillog + rethrow, or fall back safely (§22)
editing shared / global statechanges from nowhere · wrecks replay and R0hand back new values · freeze
await in a for-loop when it could run in parallelwaiting in single file when Promise.all would finish togetherPromise.all / allSettled
loops / recursion with no limitzero backpressure · the runtime goes undera cap + a queue (R22)
floating promisesa rejection nobody catches · a step with no BEawait it, or .catch every promise
secrets inside client codethe border is a wall, not a safekeep them on the server · never ship keys

§26.3 · MODERN JS · grab these first

?. optional chaining · ?? nullish coalescing · structuredClone() when you need a deep copy · Object.freeze / Object.entries · Map / Set / WeakMap instead of using objects as dictionaries · Promise.allSettled when you fan out and some calls may fail · AbortController to cancel · queueMicrotask instead of setTimeout(…,0) · template literals instead of gluing strings · const plus destructuring · the built-in Intl / Date instead of home-made formatting · ESM import with a small public face.

js habits · the honesty promise
Nothing here is invented: it's JavaScript know-how the whole community has built up (MDN · the TC39 platform · the popular style guides), folded into the house style, holding the code underneath to the bar the biology on top already clears. §26 brings zero new laws you can enforce. A lovely metaphor on messy JS is still messy code. [ stance · ± PROD ]
§27

▸ PATCH LOG · every update, in order

ARRIVED · follows how the manual grew

The manual grows up alongside the way people actually build. Every patch note is dated and spells out what arrived or what changed.

3.0 The first official edition. Six layers (DNA → CELLS → ORGANS → EMOTIONS → ENGINES → KERNELS). R0 Async System. Laws R1–R4 you can enforce. The E1–E2 feeling layers. Eight moves. Truth stickers. The split ↔ merge slider. SELF cut for being poetry nobody could enforce.
3.1 SELF comes back with one clear job you can check: DEEP STORE (archiveRule: what could matter one day) + PRUNE (pruneRule: what stopped helping). R5 joins. Two fresh moves arrive: ARCHIVE + PRUNE. The stack is seven layers tall now. The quest log picks up stage 7 (SELF policies). The hall of fame grows to include Ebbinghaus, Belady, Huttenlocher, Lieberman/Hewitt and Stickgold/Walker.
3.2 The GENESIS LOOP becomes axis number eight (§1c). Each boot builds the user's program instance fresh from (public seed, private seed): starting up is the login. The PER-USER CHAIN (§1d) writes each boot as a block that can't be edited. Banking areas read the newest, optimization areas read the best, audits read every block. The META LAYER (§1e · still a work in progress) checks each block's signal and stops bad actors at the protocol border. Four fresh laws: R6 INSTANCE = AUTH · R7 BOOT IS GENESIS · R8 COMMIT EVERY VERSION · R9 DETECT-AND-ROLLBACK. Five fresh moves: SEED · GENESIS · COMMIT · VERIFY · ROLLBACK. Seven more schools join the hall of fame (Object Capabilities · Holochain · Urbit · SPKI/SDSI · Git · the WebAuthn shortcut · capability microkernels). The quest log adds stage 9 (running the genesis loop, shipped as DREWLESS-DEMO.html) and stage 10 (a first META build, on the spec 3.3 horizon). On "molecular or nuclear?": it's still molecular at the level of one user's body. Spec 3.2 stacks an ecosystem layer on top of molecular, not under it.
3.2 a3 E1 made official · 15 hormones · 13 moods. §4 grows out of the spec 3.0 stand-in (4 hormones · 6 markers) into the full official version: the FIRST 11 textbook hormone + brain-chemical reads (cortisol · serotonin · adrenaline · oxytocin · dopamine · melatonin · testosterone · endorphin · ghrelin · leptin · norepinephrine) and an EXPANSION PACK +4 for the studio's making-things side (prolactin · insulin · thyroxine · prostaglandin). §4.2 sets out the 13-mood marker table as a sorter where the first match in priority order wins (ALARMED → INFLAMED → STRESSED → RAPID → HYPED → EFFICIENT → ELATED → NURTURED → HUNGRY → SATURATED → FOCUSED → VIGILANT → CALM). §4.3 places the 15 onto five axes (RISK · STABILITY · DRIVE · REGULATION · REWARD) and names four opposite pairs. §4.4 makes the honesty promise: hormones are measurements recalculated on every regulateHormones() tick from STATE/EVENT/seasonPhase, never saved guesses, never mystery constants. A tick every 3000 ms · slide 35% toward the target · BE(null, 'HORMONES_REGULATED') finishes the round. No new laws; this is the rigor behind E1, the part spec 3.0 had put off as "poetic."
3.2 a4 BRAIN MESSENGER BAND · 5 reads added · 20 hormones in all · 18 moods. §4.1c brings in the quick brain-signal band the textbook hormone list skipped: gaba (INHIBITION · the brake that pushes back), glutamate (EXCITATION · the gas pedal fed by wire density), acetylcholine (ATTENTION · writing memories at the check stage), vasopressin (TERRITORY · loyalty to the in-crowd), anandamide (FLOW · the zone's three sides = NE + insulin + low cortisol). Five fresh moods slotted next to their closest relatives: AGITATED · FLOW · BONDED · ATTENTIVE · SEDATED. Freshly paired opposites gaba ⇄ glutamate form the main brake-versus-gas tug-of-war. The simulation stays steady for the same reason a brain does. More axes: INHIBITION · EXCITATION · ATTENTION · TERRITORY · FLOW join the first five. No new laws; it fills the messenger band so the a5 synapse machinery has something to work with.
3.2 a5 SYNAPSE MECHANICS · the gears under HORMONES · drug models that tell the truth. §4.5 adds the machinery inside the synaptic gap that makes the hormone reads: a synapse with 6 variables (release_rate · synaptic_conc · reuptake_rate · breakdown_rate · receptor_density · receptor_sensitivity) and a 5-step tick (release · reuptake · breakdown · clamp · receptor adapt). Five standard monoamine synapses get hooked up (5-HT · DA · NE · HA · ACh) along with their KILLER_T pumps (SERT · DAT · NET · CHT1), TREG enzymes (MAO-A · MAO-B · COMT · AChE · HNMT) and MEMORY_T receptor families. §4.6 adds MEDICINE FROM OUTSIDE through the fresh APPLY move (number 16, pharma tier): SSRI · MAOI · SNRI · atypical drug sheets, each listing target · how it works · strength · half-life. Blood levels climb to a plateau while dosing and slide away on a curve after stopping. A drug never touches the read. Just the rates behind it. Receptor density handles everything else, and that's why SSRIs need weeks and quitting suddenly stings. SSRI discontinuation syndrome shows up in the model by itself, no special-case code needed. Honesty: the outline, not the size · not for prescribing · any screen showing these mechanics must carry a [ sim ] tag.
3.2 a6 SYNAPSE REGISTRY · 5 → 255 · one uint8 each · all of brain chemistry mapped. §4.7 takes the synapse layer beyond its 5 hand-wired monoamines and turns it into a registry of 255 bays indexed by uint8. Bays 0–4 stay ACTIVE (the §4.5 monoamines); bays 5–244 are SCAFFOLDED across ten zones (amino-acid messengers · trace amines · 30 opioid peptides · 40 hypothalamus/pituitary peptides · 40 tachykinins + gut-to-brain peptides · 30 gases + purines + endocannabinoids + lipids · 30 neurosteroids + cytokines + neurotrophins · 20 rare home-grown + trace · 35 outside-substance sheets covering psychedelics · dissociatives · cannabinoids · stimulants · depressants · opioids); bays 245–254 are RESERVED for new, not-yet-found or per-user custom signals; bay 255 is the META lost-and-found. FRESH LAW R10: SYNAPSE_ID FITS IN ONE BYTE. The outside-substance zone (210–244) is what gives APPLY something to aim at. Drugs point at the receptors of the body's own bays (LSD in bay 210 nudges bay 0's 5-HT2A receptors, for example). §4.7e adds a one-function level-up route (SCAFFOLDED → ACTIVE) that keeps R8 (commit every version) and R9 (safe to roll back) intact. §4.7f lays out the growth path from uint8 to uint16 (Array(256) → Array(65536), bay 65535 takes over META) for the day per-user custom synapses or a per-receptor registry need more than 255. Honesty: roughly 150 rows carry believable class, pump, enzyme and receptor details; just 5 run real math. The registry guarantees the bays are there; it does not promise they'll all go live.
3.2 a7 E1 expansion pack 3 · 20 → 30 reads · the studio's making-things axis is complete. §4.1d brings in 10 hormone reads the a4 panel of 20 lacked: growth_hormone (the fleet growing) · aldosterone (spreading the load) · estrogen (how open the audience is) · progesterone (protecting the canon) · glucagon (spending reserves) · ANP (letting off overload) · resistin (friction in the pipeline) · adiponectin (long-run health) · hepcidin (guarding intake) · FGF21 (stress that helps). §4.2 goes from 18 → 30 moods by slotting 12 new markers into the first-match priority sorter (STRAINED · VENTING · CLOSED in the DANGER tier; SPENDING · ACTIVATED in URGENCY; FORGED · HEALTHY · RECEPTIVE · BALANCED · GROWING in WIN; GUARDED · INHIBITED in STATE). §4.3 reshapes the axes from 5 flat ones into 5 big axes holding 15 small ones (the first 5 + 5 a4 brain-messenger + 5 a7 expansion small axes), keeping the five-axis rule while making room for the wider coverage. Seven §4.7 bays level up from SCAFFOLDED → ACTIVE through the §4.7e route: #64 ANP_NEURAL · #74 GH_NEURAL · #110 ADIPONECTIN · #122 GLUCAGON_NEURAL · #165 ESTRADIOL_NEURAL · #170 PROGESTERONE_NRL · #173 ALDOSTERONE. Three new bays claimed in the spare 245-254 zone: #245 RESISTIN · #246 HEPCIDIN · #247 FGF21. Four opposite pairs written down: insulin ⇄ glucagon · adiponectin ⇄ resistin · growth_hormone ⇄ somatostatin (lined up for a8) · gaba ⇄ glutamate (made official from a4). The code caught up in the same step: runway-command.html's gaba/glutamate formulas went back to the official versions (pushes against stress · follows event density); acetylcholine, vasopressin and anandamide arrived with their written formulas; all 30 hormones now get calculated live on every regulateHormones() tick; each of the 30 moods was confirmed to fire on its own. The honesty promise holds: each read is still worked out per tick from what STATE/EVENT measured. Nothing baked in.
4.0 THE COHERENCY DROP · receptors on five clocks · 3.2 a3–a7 bundled up. The headliner of spec 4.0 is §4.8 COHERENCY: spec 3.2 a5's one-delay receptor change (one variable · one rate · 0.0012 per tick) opens up into five variables in a cascade on real biological clocks: coupling (seconds, GRK tagging · the GPCR letting go), surface_count (minutes, β-arrestin pulling receptors in), total_count (hours to days, broken down in lysosomes or recycled through endosomes), synth_rate (days to weeks, CREB/ΔFosB gene switching), circuit_weight (weeks to months, LTP/LTD · rewiring). Every clock gates the next one, 10× slower. Effective receptor density = all five multiplied. THE COHERENCY SCORE = 1 − the normalized variance of the 5 clocks · it joins HORMONES as measured read number 31 · and powers three fresh moods (DISCORDANT · TRANSITIONING · SETTLED) slotted into the §4.2 priority table. FRESH LAW R11: COHERENT EFFECTIVE DENSITY: gating a signal on one density number breaks R11 unless the code carries an explicit // v3.2-legacy tag. R10 (SYNAPSE_ID FITS IN ONE BYTE) moves from §4.7 into §3 as an official law. Why a whole new edition instead of patch note 8: the cascade doesn't just add surface. It changes how a synapse works. SSRI discontinuation syndrome appears in the model with no special-case code (the quick clocks bounce back in seconds while the slow ones stay tuned to the drug for weeks · that lopsidedness IS the syndrome). What spec 4.0 ships: 31 hormones · 33 moods · 255 synapse bays · 16 moves · 11 laws you can enforce · 27 schools in the hall of fame · the genesis loop + per-user chain + META. Honesty kept: 5 clocks give the right outline at the right spacing, not a full molecular biology model · clocks talking to each other (β-arrestin → genes, CREB → rewiring) waits for spec 5.0 · tick rates are for show, not measured · receptor variety is ignored · the [ sim ] tag is still required.
4.0 a2 THE SENSES + THE OS SHELL · how the body perceives · the manual turns into a desktop. §12 THE SENSES slots the perception layer in between THE WORLD and the §1 CELLS. Each raw signal must be sorted into a labelled sense before it can become a packet. 9 senses: 5 facing out (SIGHT · HEARING · TOUCH · SMELL · TASTE) + 4 facing in (PROPRIOCEPTION · NOCICEPTION · THERMOCEPTION · CHRONOCEPTION). §12.3 SENSORY_REGISTRY: 256 uint8 bays, a twin of §4.7 (synapses) and §11.6 (antibodies) · 6 zones (core senses · per-area · per-fleet special · cross-sense · outside substances · spare + META). 3 fresh moves join §5 (26 now): SENSE · TRANSDUCE · ADAPT. 3 fresh laws join §3 (19 now): R17 SENSE BEFORE PRESENT (unlabelled input can't turn into a packet) · R18 ATTENTION GATES SENSITIVITY (sensor sensitivity = base × acetylcholine × (1−leptin) × (1−ghrelin) · there's only so much attention) · R19 COHERENT MULTIMODAL BINDING (percepts from several senses must merge through cross-sense bays 128-199 before any APC gets them · Treisman's binding problem as code). 6 fresh moods lined up for §4.2 (the table goes from 41 to 47): NUMB · OVERSTIMULATED · DAZED · ORIENTED · SHARPENED · BLINDED. It all snaps in neatly: sensors borrow the §4.5 six-variable receptor layout · adaptation rides the §4.8 COHERENCY five-clock cascade · acetylcholine (§4.1c) at last gets a job you can enforce through R18 · NOCICEPTION hitches a ride on §4.7 cytokine bays #174-180 · SMELL is the sense up front for §11 PATTERN_T · R14 MHC_I attestation now covers sensor state hashes too · the R12 K-of-N quorum decides when several sensors bind. Honesty (7 warnings): NOT a perception engine · NOT switched on yet (the senses are SCAFFOLDED) · NOT medical · NOT a replacement for input checks · binding senses is unsolved (spec 5.0 horizon) · adapting can BLIND you (the boiling frog) · attention is limited. Any screen showing sensor state must carry the [ sim ] tag.

OS SHELL: the manual now runs as a floating-window desktop. Every §-section is a window with a title bar, keys (shrink · close · pull to front) and a header you can drag. The HUD strip across the top shows the name · the edition · a live clock · how many windows are open · the current mood. The TABLE OF CONTENTS is the first window you land on. A jump menu that opens any section. Window spots are remembered through localStorage for each browser session. The shell keeps the molecular look (amber/cyan/green on near-black · JetBrains Mono · 0.16em letter-spacing): it feels like an OS born in a terminal, not a desk-and-folders OS. Every section keeps all of its content; the shell changes how it's shown, not what it says. The [ ± PROD ] sticker still fits.
4.0 a1 IMMUNE DEFENSE · the defense crew · the hack-and-virus shield gets its names. §11 brings in the immune system as an equal to §4 (hormones): the defense layer standing between §1e META (the gate further out) and the §1 cell pipeline (defense further in). Five layers set out: INNATE (never off, catches anything) · ADAPTIVE (trained, aims at one thing) · MEMORY (kept for good) · SURVEILLANCE (cells proving themselves nonstop) · TOLERANCE (keeps the body from attacking itself). Twelve cell types on the roster: 5 R1 veterans (APC · HELPER_T · KILLER_T · MEMORY_T · TREG) and 7 rookies (BARRIER_T · PATTERN_T · PHAGE_T · NK_T · B_CELL · CD8_KILLER_T · DENDRITIC_T). Five fresh moves join §5 (23 now): NEUTRALIZE · OPSONIZE · PHAGOCYTOSE · ATTEST · ESCALATE. Three fresh laws join §3 (16 now): R14 MHC_I ATTESTATION PER TICK (each cell signs its code+state hash · a mismatch means something got in) · R15 ANTIBODY IMMUTABILITY (published antibodies only ever get added to · keeps R8 whole) · R16 TOLERANCE CHECK BEFORE PROMOTION (every new detector must clear the known-good panel · stops self-attack). Eight fresh moods lined up for §4.2 (the table goes from 33 to 41): UNDER_ATTACK · INFECTED · COMPROMISED (DANGER tier) · SENSITIZED · IMMUNE_ALERT (URGENCY) · QUARANTINED · TOLERATED · IMMUNIZED (STATE/WIN). §11.6 ANTIBODY REGISTRY: 256 uint8 bays, a twin of the §4.7 synapse registry · 10 threat zones (INJECTION · AUTH · EXFIL · MALWARE · SUPPLY_CHAIN · PHISHING_SOCIAL · RATE_ANOMALY · INSIDER · PROTOCOL · ZERO_DAY) · shared on this one device only (SHARED_TRUSTED · SHARED_OPEN wait for spec 5.0). 15 attack → defense pairings: XSS · SQL-i · CSRF · prompt-injection · supply-chain · phishing · brute-force · DDOS · malware · zero-day · insider · exfil · account-takeover · privilege-escalation · replay. It all snaps in neatly: the §4.7 cytokine bays #174-180 (IL-1β · IL-6 · IL-10 · IL-18 · TNF-α · IFN-γ · IFN-α) are groundwork ready to level up · zero new synapse bays needed. An immune response runs on all 5 clocks (§4.8 COHERENCY): the instant response on the COUPLING clock (seconds) · the trained response on SYNTH_RATE (days) · lasting memory on CIRCUIT_WEIGHT (weeks to months) · getting immunized means settling back into step. How hard an antibody grips follows R11 effective density (5 factors multiplied). R12 (NO AUTHORITY WITHOUT WITNESS) slots in. Blocks holding immune events must win a K-of-N quorum like any other. The §1d block layout picks up an attestations array (R14). Honesty (7 warnings): NOT a security product · NOT a replacement for layered defense · does NOT cover every hole · NOT switched on yet (just the 5 R1 veterans actually do anything; the 7 rookies are SCAFFOLDED, waiting on R16 tolerance gates) · NOT a stand-in for META + the GENESIS LOOP · sharing antibodies sits on the spec 5.0 horizon (it opens a poisoning hole) · when TOLERANCE fails the body attacks itself (R16's gate is required) · the 8 fresh moods stay silent until regulateHormones() hooks in immune kinetics. Any screen showing immune state must carry the [ sim ] tag.
4.0 a3 FULL BODY · 9 body systems · sentience written down as a goal · pocket mode. §14–§22 finish the human: SKIN (the outer wall · the border · R20), BLOOD + CLOTTING (delivery · sealing leaks · the blast zone · R21), BREATH (energy budget · backpressure · R22), GUT (intake · the gut wall · parsed≠trusted · R23), BONE + MUSCLE (the frame · least-privilege movers · R24), KIDNEYS (filtering · flushing toxins · R25), HOMEOSTASIS (the balance spine · written-down targets · R26), SENTIENCE (the far-off goal · AI sentience written down as a target, never as a result · groundwork = the E2 self-model + §12 inner sensing + §4.8 coherency · R27 keeps the hard problem openly unsolved), DEFENSE-IN-DEPTH (zero-trust, all in one place · R28 · "no one weak spot takes it all", never "unhackable"). Laws climb 19 → 28; six more schools join the hall of fame (Cannon · Sterling/Eyer · Saltzer-Schroeder · Baars · Tononi · BeyondCorp) → 35. POCKET MODE: on phones the floating windows fold into one tall full-width scroll (760px or less · cards stay put · the HUD and headers stick · wide tables scroll inside their card · iOS notch space respected). The honesty never slips: every system is named and framed out; security and sentience are written as targets with their limits stated, never as finished wins.
4.0 a4 NERVES + LYMPH · the two networks the body was missing, finally named. §23 NERVES gathers the neural parts the manual already had (§4.5 synapse · §4.7 registry of 255 bays · §4.8 coherency · §12 senses) and adds what a3 only hinted at. The autopilot sympathetic/parasympathetic switch (the shift the mood marker already picks up), the CNS/PNS wiring and signal travel (axon · myelin = the fast lane / cache), and the reflex arc (R29 · safety-critical reactions fire on the spot, never after a trip to the center). §24 LYMPH splits the patrol network off from the §11 immune fighters: lymph nodes as checkpoints, lymph drainage as the second cleanup crew, slow and pumpless and catching up in the end: R30 CHECKPOINT EVERY HOP is zero-trust's sideways arm (§14 watches traffic in and out; lymph nodes check traffic moving sideways, which is the route most breaches use). Laws 28 → 30; body systems → 13; the §3 law list gets longer; the patch log moves from §23 to §25. The honesty holds: §23 is mostly gathering, stickered [ partial ], and §24 is [ scaffolded ].
4.0 a5 FIELD MANUALS · the pocket guide + craft for the JS layer · not a single new claim. The manual had a full grammar (30 laws · 26 moves · 13 systems) and no boiled-down guide for using it day to day. §25 MOLECULAR BEST PRACTICES brings the pocket guide: the three questions every function has to answer (its BE · its layer · its keep-or-toss policy: R3 · §1 · R5), a daily drill chart pairing ten habits with the laws they serve, and a sick bay chart (symptom → what's wrong → the fix) for the bad habits that keep coming back. The ones the laws are there to stop. §26 JAVASCRIPT BEST PRACTICES raises the code underneath to the biology's level: async/await (R0) · const first + Object.freeze on anything published (R8 · R15) · pure functions / no secret global state (R0) · errors with types + safe fallbacks (§22) · checks at the border (R23 · R17) · AbortController + backpressure (R22 · R29) · tidy teardown with no leaks (R5 · §19) · modules that export the minimum (R24 · R28) · same input, same output (R9), plus a never-do chart (eval · loose == · empty catch · editing globals · one-at-a-time await · loops with no cap · floating promises · secrets on the client) and a modern-JS cheat card (?. · ?? · structuredClone · WeakMap · Promise.allSettled · queueMicrotask · ESM). Honesty: neither section adds a single new law you can enforce: habits are a stance, not a new power; the law count holds at 30, and none of it is new (it's §3 boiled down plus craft engineers already know, §9). The patch log moves from §25 to §27. [ stance · ± PROD ]

New patch notes get added below this line. The manual keeps growing, yet every change owes an explanation (what arrived, why, who did it first, what it enforces).

END

▸ AFTER CLASS · a last word on the work

closing note

Molecular Coding doesn't push computer science forward. Hewitt, Plotkin, Damasio, Forrest, Squire, Belady, Ebbinghaus and the rest did the real breakthroughs decades ago, sometimes centuries ago. Their papers are out there to read.

Molecular Coding brings one joined-up discipline a regular engineer can keep in their head. It is pulled from thirty-five different schools of work (§9) and pressed into one set of coding laws that share one picture. It is also the body plan the L8 OS leans on. DIVA's mood badge reads the same §4.2 + §4.8g mood table, and ECHO trails a step behind her.

SELF coming back in spec 3.1 shows the discipline doing its job: the layer got cut while it was only poetry, and only returned once a clear job you could enforce (vault + shred) made it real. Spec 3.2's GENESIS LOOP, PER-USER CHAIN and META LAYER are example number two: each got a name only when a solid function (boot, commit, verify) could be written down. META stayed parked as a work in progress until spec 5.0 could spell out its rules. The manual fixes itself. That's the loop closing.

Treat this manual as your house style. Hold your code to it. Hold the AI helpers (LLMs too) that code beside you to it. When someone new joins the crew, pass them this page and ask: "can you put your function on this stack, say its BE, and name its keep-or-toss policy?"

Once they can, they're writing Drewless. That's what this whole thing gives back. · testnet · unaudited · experimental

MOLECULAR CODING · spec 4.0 · a5 · FIELD MANUALS ⨁ DREWLESS · 7-SLF BLUEPRINT ◇ ⌬ OMNISOFT · AI FEEL ▸ released by MORE OR LESS PRODUCTIONS house style · ± PROD · testnet · unaudited · experimental · 13 body systems · 30 laws · 26 moves · 31 hormone reads · 47 moods · 255 synapse bays · 9 senses · 5 clocks · 5 defense layers · molecular + JS habits · sentience = a goal, not a claim · layered defense · floating windows + pocket scroll · 35 schools of work