BE · name the layer · name the archive policy), a do-this table mapping each practice to the rule it honors, and a "diseases" table (smell → diagnosis → cure) for the common anti-patterns (synchronous backbone · authority without witness · trusting parsed input · safety on a round-trip · flat interior · magic constants · "unhackable" · faked liveness). §26 JAVASCRIPT BEST PRACTICES — the substrate craft: async/await · const-by-default · freeze published artifacts · typed errors + fail-safe defaults · validate at the boundary · AbortController + backpressure · cleanup/no-leaks · least-export modules · determinism — each mapped to R0/R8/R15/R22/R23/R28/§22, plus a DON'T table and a modern-JS quick reference. Crucially: zero new R-rules — best practices are posture, not capability; the enforceable count stays 30. Addendum log renumbered §25 → §27.
coupling · surface_count · total_count · synth_rate · circuit_weight · each gates the next at 10× separation · effective density = product of all five · COHERENCY metric = variance across scales · joins HORMONES as the 21st measured readout ·
3 new somatic states (DISCORDANT · TRANSITIONING · SETTLED) inserted into the §4.2 priority matrix ·
R11 · COHERENT EFFECTIVE DENSITY — code using single density gates without // v3.2-legacy tag violates · linter shipped ·
R10 (SYNAPSE_ID FITS IN ONE BYTE) canonicalized into §3 ·
v4 consolidates v3.2 a3 through a7 as the release surface: 30 hormones · 30 somatic states · 255 synapse slots · 16 verbs · 11 enforceable rules · genesis loop + per-user chain + META.
The system has no synchronous backbone. No global clock. No shared atomic state. Every cell runs on its own cadence. Every layer settles eventually, not immediately.
This becomes the unspoken assumption every other rule presumes. R1 through R9 all only make sense in an async system. Naming it as R0 makes the assumption explicit.
The organism is built bottom-up but regulated top-down. Each layer expresses the layer above and reports to the layer below. SELF distills engine memory into long-term archives and prunes what is no longer useful — feeding refined experience back into DNA. The seven layers live inside one user. An eighth axis sits outside the stack: the GENESIS LOOP + PER-USER CHAIN + META LAYER (§1c–§1e · v3.2) — how a fresh instance of the whole organism is constituted at every boot, recorded as an immutable block, and gated by the meta protocol that keeps bad actors out.
SELF used to be poetic ("integrated being") and was dropped from v3.0 because no one can write "consciousness" as a lint rule. In v3.1 it is restored with a discrete, enforceable function: SELF decides what crosses from session memory into permanent archive and what is pruned forever.
// 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'); }); }
SELF dropped from v3.0 because "integrated being" was unenforceable. SELF returns in v3.1 because deep-store + prune is two concrete functions with declared policies. The discrete enforceable role differs from the poetic "consciousness" — and only the discrete role makes it back into the spec.
The seven-layer stack runs inside one user. The eighth axis is the loop that constitutes that user's instance every time it boots. The same code template runs for everyone (PUBLIC SEED), but the actual instance only exists once your PRIVATE SEED genesises it. There is nothing to authenticate against until you have booted yourself into existence.
// 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'); }
| domain | (public_seed, private_seed) pair | instance |
|---|---|---|
| BANK | (bank.public, your.bank.private) | bank-only program |
| SOCIAL | (social.public, your.social.private) | social-only program |
| MEDICAL | (medical.public, your.medical.private) | medical-only program |
Different domains derive different private seeds from your master. A compromise of your social instance cannot impersonate your bank instance — the bank instance has different derivation, different META gate, different chain.
Passkeys, MFA, biometric — these are not replaced. They compose over the instance once it exists. Genesis decides whether the instance exists at all. Passkeys decide whether ongoing operations within the instance are still you. Both tighten the surface; neither one alone is the system.
WebAuthn / passkeys ship a fragment of this idea: "your device is your auth, because only your device holds the private key." The full version says: your device renders a new OS on every boot from your seed. The OS itself is the auth surface. Device-as-auth is the convenient compression of that.
Every GENESIS event appends a block to that user's personal chain. The chain is immutable in the blockchain sense — each block links to the prior block's hash. There is no shared global chain; there is one chain per user instance. Anyone can verify the chain's integrity. Only the user can read what their blocks reference.
// 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 };
| domain | resolves to | why |
|---|---|---|
| OPTIMIZATION | LATEST best-compile block | quality matters more than recency — use the block that compiled cleanest |
| BANKING / FINANCE | MOST-RECENT validated block | current truth matters · stale state = liability |
| MEDICAL | MOST-RECENT signed block | safety · use the most current verified state |
| SOCIAL / CONTENT | LATEST best-render block | UX wins over freshness for non-critical state |
| AUDIT / FORENSICS | ALL blocks | walk the chain · every auth event is a record |
Anomaly detection runs at block level. When META or an external watcher flags block N as suspect, the system can roll back to block N-1 (or further) and resume from there. The bad block remains on the chain as evidence — it is not deleted — but it is marked invalid and not used as a basis for activation.
// 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'); }
META sits at the protocol edge between the user's INSTANCE and the LEDGER (the per-user chain plus any shared coordination layer). Its job is to verify the signal of every block before it is accepted as authoritative — gating bad actors at the layer below auth rather than at the layer above it. Auth comes from the existence of the instance (R6); META is what decides whether the next block is permitted to extend the chain at all. v3.2 named META and held it as WIP framing. v5.0 declares the discipline: a concrete signal format, a peer-witness quorum, a posture-gated threshold, and a graduated failure mode — two new enforceable rules (R12 · R13) and two new verbs (WITNESS · QUARANTINE).
instance_pubkey + signed(block_hash) + freshness_proof. The quorum count and freshness window are functions of oracle posture — stress tightens, calm loosens. Failure is graduated: QUARANTINE (isolate, read-only, await witnesses) → ROLLBACK (R9) → domain alarm. Never a single trusted oracle.
The block schema (§1d) already carries meta_sig. v5.0 specifies what it contains:
// 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 };
A witness checks three things and nothing more: (1) the signature verifies against the claimed pubkey, (2) the pubkey is the one that has extended this chain since genesis, (3) the freshness counter is strictly greater than the last accepted block's. Forgery requires the private seed; replay requires beating the monotonic counter; identity-swap requires a chain fork the witnesses already hold. None is available to an attacker who lacks the seed.
// 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 (peer-witness pattern) or a domain's validator set — never the instance validating itself, never a single trusted server. A bank domain runs a strict validator set; a social domain may accept loose peer-witnessing. The transport by which witnesses discover one another and gossip a block is deliberately unspecified — see the frontier note below.
| gate | decides | rule | fires |
|---|---|---|---|
| GENESIS | does the instance exist at all? | R6 · R7 | once, at boot |
| META | is this block authoritative? | R12 · R13 | every block |
| PASSKEY / MFA | is this operation still you? | composes on top | every sensitive op |
Genesis is the floor (no instance → nothing to authenticate). META is the chain gate (no witness quorum → no authoritative block). Passkeys are the ceiling (no fresh proof → no sensitive op). Each tightens a different surface; removing any one leaves a gap. META does not replace passkeys and passkeys do not replace genesis.
// 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 same somatic posture that tightens routing gates and accelerates cadences also tightens the META gate. A system reading high cortisol (errors up, saturation high) demands more witnesses and fresher proofs before it trusts the next block. A calm system relaxes. Static, hardcoded META thresholds violate R13. This is why META is part of the organism, not bolted on beside it — it breathes with the oracle.
| suspicion | response | verb | chain effect |
|---|---|---|---|
| 0 < witnesses < K | isolate block · read-only · await more witnesses | QUARANTINE | held, not accepted, not deleted |
| witnesses = 0 | revert to last witnessed block (R9) | ROLLBACK | suspect block stays on chain as evidence |
| pattern across instances | domain alarm · raise cortisol fleet-wide · tighten every gate | REGULATE | posture shift propagates via §4 oracle |
QUARANTINE is the verb v5.0 needs: a block can be suspect without being malicious (a witness set that hasn't gathered yet, a slow network). Quarantine buys time without either trusting the block or discarding the user's work. Only zero-witness or proven-forgery blocks trigger rollback; a recurring pattern across instances escalates to a domain-wide posture shift through the oracle.
[ − PROD ] until shipped. Naming the gate made R6–R9 possible in v3.2; declaring its discipline in v5.0 is the spec self-correcting on schedule.
Note for future-self: META moved from WIP framing (v3.2) to declared discipline (v5.0) the moment a concrete signal, a quorum rule, and a posture gate could be written as enforceable functions — the same bar SELF cleared in v3.1 and GENESIS in v3.2. Do not implement the witness transport until the discipline has lived in the spec long enough to attract attack. Name → declare → harden → ship, in that order.
Every operation in the system lives on one axis: fission (break apart) ↔ fusion (combine). This is not metaphor — it is the design rule that places each function along a spectrum and forces it to declare its position.
Prior art: MapReduce (Dean/Ghemawat 2004) is fission-then-fusion. The binding problem in neuroscience (Treisman 1980s) is unresolved fragment-to-percept. Fission-fusion societies (Aureli et al, primatology) is groups splitting/merging.
Rules that can be checked by a linter or a code reviewer. These give Molecular Coding its shape.
const SCOUT_NEWS = { id: 'NEWS-RSS', cell_type: 'APC', // antigen-presenting cell · surfaces signal source: 'Google News', trust: 0.70, cadence_ms: 6500, };
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(), };
become made explicit. Every conditional declares what it becomes next. No orphan branches. Labels are discoverable navigation targets.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'); }
if (artifactCompleteness(merged) >= 0.65) { registerArtifact(merged); emit('graduation', { co: merged.co }); return BE(notifyMemoryEngine, 'ARTIFACT_BORN'); }
archiveRule (what crosses to permanent storage)
and a pruneRule (what is discarded forever). Both are explicit functions on a schedule.
Storage without these rules grows unbounded — that violates 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 };
(public_seed, private_seed). All authority derives from instance existence. There is no auth surface to attack until the instance is booted — and only the holder of the private seed can boot it. Additional auth layers (passkeys, MFA, biometric) compose on top of the instance; they do not replace it.// R6 in code · no entry point without genesis if (!CURRENT_INSTANCE) { return BE(promptForPrivateSeed, 'NO_INSTANCE_NO_AUTH'); }
// R7 in code · every session begins with a full genesis window.addEventListener('load', () => BE(() => boot(readPrivateSeed()), 'SESSION_GENESIS') );
(n, version, ts, prev_hash, instance_h, delta_h, meta_sig, hash). Skipping the commit step violates R8 — there is no such thing as an "unrecorded version." Forensics and rollback both depend on this being honored.// 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'); }
rollbackRule violate 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'); }
SERT, DAT, NET are not synapses — they are KILLER_T cells that target specific synapse IDs. Drug profiles in §4.6 reference synapses by slot, not by string name. Drug-load propagation is a 256-entry array scan per tick · O(1) per synapse · cache-friendly · ledger-friendly (a block's synaptic state fits in 256 bytes of densely packed deltas). Slot assignments are stable once published — changing one breaks LEDGER replay (R9). See §4.7 for the full registry.// 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'); }
// v3.2-legacy tag and documents why the single lag is acceptable for that surface. New receptor adaptation code MUST declare all 5 scales and route through effectiveDensity(). Single-lag is fast-path for back-compat; coherent cascade is the canonical path. See §4.8 for the full model.// 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'); } }
K independent witnesses verifies its META signal (§1e). Authority to act on a block's deltas is granted only after metaVerify returns WITNESS_QUORUM_MET. An instance that witnesses its own blocks, or trusts a single validator, violates R12 — a quorum of one is not a quorum. Composes above R6 (instance = auth): the instance proves who, the witnesses prove 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'); }
K and the freshness window are functions of oracle posture, not constants. Under calm hormones a single fresh witness suffices; under high cortisol + adrenaline the quorum widens and the freshness window tightens. Code that hardcodes a static META threshold (a fixed K, a fixed freshness) violates R13 — it cannot tighten under threat nor relax under calm. The threshold MUST route through 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'); } }
attestations field). Drift between this tick's signature and the prior tick's = compromise — supply-chain attack, runtime tampering, prompt-injection of a sub-agent. Cells without ATTEST violate R14. Composes with R8 (commit every version): attestations are part of the block, not separate.// 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'); }
SUPERSEDED) and replaced with a new antibody at a new slot. This preserves R8 (commit every version) — antibody history is auditable, replay-safe, and federation-shareable without retroactive corruption. Mutating a published antibody violates 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'); }
known-good panel before MEMORY_B accepts it. The panel is a regression-test set of legitimate signals (verified trends · trusted APCs · operator-approved sources). Antibodies with false-positive rate above threshold (default 0.05) are rejected and the originating B_CELL is pruned (thymus negative-selection analog). Code that promotes detectors without a tolerance check violates R16. R16 carries the burden of preventing autoimmunity — false positives are not less harmful than false negatives; they are merely louder.// 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'); }
PRESENT must be preceded by a SENSE (or TRANSDUCE) — i.e., raw input must be classified into a typed sensory modality from §12.1 before becoming a packet. Code that constructs an APC packet from untyped input violates R17 — the linter flags any present() call whose argument lacks a modality field. Sensory typing is the membrane between the world and 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'); }
base_sensitivity × acetylcholine × (1 − leptin_satiety) × (1 − ghrelin_drift). Code that hardcodes sensor sensitivity without routing through attentionGain(HORMONES) violates R18. Attention is a finite budget — boosting one sensor's gain steals from another's. Composes with R11 (effective density is multiplicative) — attention gain is the sensor-side analog of receptor 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 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'); }
These shape architectural choices but can't be enforced syntactically. Like Rust's "fearless concurrency" — useful posture, not a lint rule. v3.2 addendum 3 fully specifies E1: 15 endocrine readouts grouped on 5 axes, with a 13-state somatic marker matrix wired to a priority-ordered classifier.
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 };
Every value in HORMONES is a derived readout of system state computed each regulateHormones() tick — never a stored prior, never a magic 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
Each tick (3000 ms) the regulator computes targets and eases hormones toward target at 35% — no snapping, no oscillation. BE(null, 'HORMONES_REGULATED') closes the loop.
| hormone | axis · color | signal | regulator target | readout | somatic markers |
|---|---|---|---|---|---|
| cortisol | RISK · red | errRate + domain saturation | 0.18 + errRate·0.40 + saturation·0.35 | high → backlash / oversaturation risk · routing gates tighten | ALARMED (≥.68 ∧ adrenaline≥.58) · STRESSED (≥.60) · VIGILANT (≥.45 ∧ adrenaline≥.45) |
| serotonin | STABILITY · green | avgConf across verified trends | 0.30 + avgConf·0.60 | high → stable, confident verified signal · recommend rate rises | ELATED (≥.66 ∧ endorphin≥.55 ∧ cortisol<.42) · inverse in SATURATED (<.46) |
| adrenaline | URGENCY · amber | urgency = clamp(1 − minDays/60) | 0.20 + urgency·0.70 | high → imminent drops · cadences accelerate | ALARMED · HYPED · RAPID · VIGILANT |
| oxytocin | TRUST · cyan | avgQuor (avg quorum of verified trends) | 0.25 + clamp(avgQuor/3)·0.60 | high → cross-fleet quorum aligns · trust bonuses (fusion eligibility) | indirect — feeds confidence via avg_trust path |
| dopamine | DESIRE · magenta | avgVel (avg trend velocity) | 0.20 + avgVel·0.70 | high → social virality · "the want" | HYPED (≥.66 ∧ adrenaline≥.50) |
| melatonin | RHYTHM · blue | seasonPhase (Feb/Mar/Sep/Oct = 1, shoulder = 0.5, off = 0.15) | 0.65 − season·0.50 (inverted) | high → off-season rest · seasonal pacing | indirect — drops oracle drop-window score (1−mel weight) |
| testosterone | BOLDNESS · gold | tally.statement, tally.bold | 0.25 + statement/4·0.50 + bold/4·0.20 | high → statement pieces dominate · favour bold routing | indirect — supports ELATED via confidence + boldness routing |
| endorphin | JOY · green | tally.joy + tally.clean | 0.22 + (joy+clean)/6·0.60 | high → "dopamine dressing" mood · feel-good cycle | ELATED contributor (≥.55) |
| ghrelin | NOVELTY HUNGER · violet | hunger = 0.8 − freshRatio + (1−avgVel)·0.3 | clamp(hunger) | high → market craves fresh · push novel directions | HUNGRY (≥.64 ∧ leptin<.46) |
| leptin | SATIETY · muted | saturation + freshRatio | 0.15 + saturation·0.60 + freshRatio·0.20 | high → trend fatigue · pull back, let the field clear | SATURATED (≥.60 ∧ serotonin<.46) · inverse arm of HUNGRY |
| norepinephrine | FOCUS · cyan | focus = (confs[0] − confs[2]) + 0.4 | 0.20 + focus·0.60 | high → attention concentrated on top picks · sharpen | FOCUSED (≥.62) |
The original 11 spanned risk, desire, and rhythm but had no readouts for the studio-production side of a fashion house — craft heritage, conversion efficiency, production tempo, and cultural-backlash inflammation. Four hormones added to close that gap.
| hormone | axis · color | signal | regulator target | readout | somatic markers · seed · feedback |
|---|---|---|---|---|---|
| prolactin | CRAFT · gold | artifactScore = clamp(STATE.artifacts/8) · heroScore = clamp(EVENT.heroLooks/3) | 0.22 + artifact·0.40 + hero·0.40 | high → heritage memory strong · heroes present · slow-burn confidence pays | NURTURED (≥.62 ∧ serotonin≥.50) · seed .38 · ↓ R5 memory layer |
| insulin | EFFICIENCY · green | avgConf, saturation (inverted) | 0.18 + avgConf·0.45 + (1−saturation)·0.30 | high → sell-through health · conversion over crowding | EFFICIENT (≥.62 ∧ serotonin≥.55) · seed .48 · ↓ R8 ledger axis |
| thyroxine | TEMPO · amber | avgVel, urgency | 0.20 + avgVel·0.40 + urgency·0.30 | high → studio metabolic rate · how fast looks ship | RAPID (≥.62 ∧ adrenaline≥.50) · seed .42 · ↓ R0 async cadence |
| prostaglandin | INFLAMMATION · magenta | gateRate = clamp(wire.filter(GATE)/4) · errRate · saturation | 0.12 + gateRate·0.55 + errRate·0.30 + saturation·0.10 | high → cancel-risk · audit provenance · pause routing | INFLAMED (≥.55 ∧ cortisol≥.50) · seed .20 · ↓ KILLER_T feedback |
The 15-hormone surface covered classical endocrine + studio-production craft, but missed the neurotransmitter band — the fast-acting brain signals that gate arousal, attention, and flow. Five neuromodulators added in addendum 4 to close the surface at 20 readouts.
| hormone | axis · color | signal | regulator target | readout | somatic markers · seed · feedback |
|---|---|---|---|---|---|
| gaba | INHIBITION · violet | cortisol + adrenaline (counter-regulatory) | 0.25 + (cortisol + adrenaline)/2 · 0.45 | high → system in self-dampening · oscillation suppressed · brake engaged | SEDATED (≥.65 ∧ glutamate<.42 ∧ adrenaline<.40) · seed .30 · ↓ TREG counter-balance |
| glutamate | EXCITATION · cyan | EVENT.eventDensity (wire events/sec) · adrenaline | 0.20 + eventDensity·0.50 + adrenaline·0.20 | high → wire dense · cortex-level activation · accelerator engaged | AGITATED (≥.62 ∧ gaba<.40 ∧ cortisol>.45) · seed .28 · ↓ R0 cadence |
| acetylcholine | ATTENTION · gold | verifyRate (trends entering verify-stage) · engramRate | 0.22 + verifyRate·0.50 + engramRate·0.25 | high → encoding active · learning capacity peaks · attention concentrated | ATTENTIVE (≥.60 ∧ norepinephrine≥.55) · seed .35 · ↓ R4 graduation feedback |
| vasopressin | TERRITORY · blue | repeatTrust (same-fleet repeat trust) · heroDensity | 0.25 + repeatTrust·0.50 + heroDensity·0.20 | high → loyalty to known voices · in-group lock-in · territorial confidence | BONDED (oxytocin≥.60 ∧ ≥.55 ∧ cortisol<.50) · seed .32 · ↓ §1c instance loyalty |
| anandamide | FLOW · green | norepinephrine, insulin, (1−cortisol) · the flow triangle | 0.18 + norepinephrine·0.30 + insulin·0.30 + (1−cortisol)·0.20 | high → peak performance · sustained efficient creation · "the zone" | FLOW (≥.62 ∧ dopamine≥.55 ∧ cortisol<.45) · seed .25 · ↓ R5 memory deepening |
Inverse pair added: gaba ⇄ glutamate — the master inhibition/excitation axis. Brain stays alive only because these two are in homeostatic tug-of-war; same goes for the simulation.
The 20-hormone surface from a4 covered classical endocrine + craft + neuromodulators but still missed ten studio-relevant readouts — fleet growth, load balance, audience receptivity, canon protection, capital mobilization, overload venting, pipeline friction, long-cycle health, intake gating, and productive stress. Ten readouts added in addendum 7 to close the surface at 30 readouts. Seven of the ten ride existing §4.7 slots promoted from SCAFFOLDED → ACTIVE; three claim fresh slots from the 245-254 reserved range.
| hormone | axis · color | signal | regulator target | readout | somatic markers · §4.7 slot · feedback |
|---|---|---|---|---|---|
| growth_hormone | GROWTH · cyan | spawnRate = clamp(nAll/24) · avgConf | 0.20 + spawnRate·0.55 + avgConf·0.20 | high → fleet expanding · cell population velocity | GROWING (≥.60 ∧ insulin≥.50) · slot #74 GH_NEURAL · ↓ R1 cell differentiation |
| aldosterone | BALANCE · green | balance = 1 − saturation · avgQuor | 0.18 + balance·0.55 + clamp(avgQuor/3)·0.20 | high → load distributed evenly · routing equilibrium | BALANCED (≥.60 ∧ serotonin≥.55) · slot #173 ALDOSTERONE · ↓ TREG load distributor |
| estrogen | RECEPTIVITY · magenta | engageRate = avgVel · clamp(avgQuor/3) · 1.6 | 0.22 + engageRate·0.55 | high → audience open · surface being received | RECEPTIVE (≥.60 ∧ oxytocin≥.55) · slot #165 ESTRADIOL_NEURAL · ↓ R4 graduation |
| progesterone | PROTECTIVE · violet | auditPosture = gateRate·0.6 + errRate·0.5 | 0.18 + auditPosture·0.55 + errRate·0.20 | high → guard the canon · conservation mode | GUARDED (≥.55 ∧ cortisol≥.45) · slot #170 PROGESTERONE_NRL · ↓ R9 rollback bias |
| glucagon | MOBILIZE · amber | reserveBurn = (1−avgConf) · urgency · 1.4 | 0.18 + reserveBurn·0.65 | high → spending stored capital · inverse insulin | SPENDING (≥.60 ∧ adrenaline≥.50) · slot #122 GLUCAGON_NEURAL · ↓ R5 deep-store draw |
| anp | VENTING · red | backPressure = clamp(wireLen/24) | 0.15 + backPressure·0.65 + errRate·0.15 | high → overload relief · queue venting load | VENTING (≥.55 ∧ cortisol≥.50) · slot #64 ANP_NEURAL · ↓ R0 cadence governor |
| resistin | FRICTION · red | friction = errRate · (1−avgVel) · 1.8 | 0.15 + friction·0.55 + (1−avgVel)·0.20 | high → pipeline grinding · circuit breakers tripping | STRAINED (≥.55 ∧ thyroxine<.40) · slot #245 RESISTIN · new · ↓ R0 throttle |
| adiponectin | HEALTH · green | retention = artifacts / max(nAll, 6) | 0.22 + retention·0.55 | high → archives compounding · long-cycle wellness | HEALTHY (≥.60 ∧ prolactin≥.50) · slot #110 ADIPONECTIN · ↓ R5 deep-store integrity |
| hepcidin | GATEKEEPING · gold | intakeRatio = gateCount / (gateCount + presentCount) | 0.15 + intakeRatio·0.55 + cortisol·0.20 | high → scout intake choked · audit posture sharp | CLOSED (≥.55 ∧ cortisol≥.50) · slot #246 HEPCIDIN · new · ↓ KILLER_T tightening |
| fgf21 | STRESS-FORGE · gold | forge = errRate · avgConf · 1.8 + saturation · avgConf · 0.6 | 0.15 + forge·0.65 | high → productive pressure · stress builds output, not breakage | FORGED (≥.55 ∧ cortisol≥.55 ∧ insulin≥.55) · slot #247 FGF21 · new · ↓ REWARD axis adaptive |
New inverse pairs: insulin ⇄ glucagon (storage vs mobilization) · adiponectin ⇄ resistin (long-cycle health vs friction) · gh ⇄ somatostatin (growth vs brake — somatostatin still scaffolded at slot #56, candidate for addendum 8 promotion).
The oracle reads the 31 readouts (30 hormones + coherency) — plus immune and sensory kinetics — and emits a single state: the same {state, cls, phrase} tuple wherever it's needed (watermark, oracle window, drop-window). Order matters; most urgent / most specific checks fire first. Addendum 4 inserted 5 neuromodulator states (AGITATED · FLOW · BONDED · ATTENTIVE · SEDATED) by domain proximity; addendum 7 inserted 12 more (STRAINED · VENTING · CLOSED · SPENDING · ACTIVATED · FORGED · HEALTHY · RECEPTIVE · BALANCED · GROWING · GUARDED · INHIBITED). v4.0 folded in 3 coherency states (DISCORDANT · TRANSITIONING · SETTLED · §4.8g), v4.0 a1 the 8 immune states (§11.8), v4.0 a2 the 6 sensory states (§12.7) — 47 total, none appended at the bottom; each lands where its specificity earns it.
| priority | state | triggers | cls · visual |
|---|---|---|---|
| 1 | ALARMED | cortisol > .68 ∧ adrenaline > .58 | s-alarmed (red · 0.7s pulse) |
| 1a | UNDER_ATTACK | ifn_broadcast > .65 ∧ cortisol > .55 ∧ coherency < .50 | s-under-attack (red strobe · 0.5s) · v4a1 |
| 1b | INFECTED | cd8_active > .50 ∧ mhc_drift > .40 | s-infected (red/violet pulse · 0.7s) · v4a1 |
| 1c | COMPROMISED | mhc_drift > .60 (one or more cells failing R14 attestation) | s-compromised (red/black blink · 0.4s) · v4a1 |
| 2 | INFLAMED | prostaglandin > .55 ∧ cortisol > .50 | s-inflamed (red/magenta · 0.9s) |
| 2a | DISCORDANT | coherency < .40 ∧ |slope(coherency)| > .03 | s-discordant (red/violet · fast jitter) · v4 |
| 2b | TRANSITIONING | .40 ≤ coherency < .70 ∧ |slope(coherency)| > .01 | s-transitioning (amber/cyan · slow drift) · v4 |
| 3 | STRESSED | cortisol > .60 | s-stressed (amber pulse · 1.2s) |
| 4 | AGITATED | glutamate > .62 ∧ gaba < .40 ∧ cortisol > .45 | s-agitated (cyan/red flicker · 0.8s) · a4 |
| 4a | OVERSTIMULATED | glutamate > .65 ∧ ≥3 modalities firing simultaneously | s-overstimulated (cyan/red flicker · 0.6s) · v4a2 |
| 5 | STRAINED | resistin > .55 ∧ thyroxine < .40 | s-strained (red/amber-d · 1.4s) · a7 |
| 6 | VENTING | anp > .55 ∧ cortisol > .50 | s-venting (red/cyan · 0.8s) · a7 |
| 7 | CLOSED | hepcidin > .55 ∧ cortisol > .50 | s-closed (red/gold steady) · a7 |
| 7a | BLINDED | one or more modalities at sensitivity = 0 (sensor errored) | s-blinded (red eye-crossed icon) · v4a2 |
| 8 | RAPID | thyroxine > .62 ∧ adrenaline > .50 | s-rapid (amber/gold pulse · 1.0s) |
| 8a | SENSITIZED | antibody_active_count > threshold ∧ adrenaline > .50 | s-sensitized (amber/cyan pulse · 1.0s) · v4a1 |
| 8b | IMMUNE_ALERT | dendritic_packets > rate_baseline ∧ no_pattern_match_yet | s-immune-alert (amber search · 0.8s) · v4a1 |
| 8c | DAZED | chronoception drift > .50 (temporal sense slipping) | s-dazed (violet wobble · 1.4s) · v4a2 |
| 9 | SPENDING | glucagon > .60 ∧ adrenaline > .50 | s-spending (amber/red · 1.1s) · a7 |
| 10 | HYPED | dopamine > .66 ∧ adrenaline > .50 | s-hyped (magenta pulse · 1.6s) |
| 11 | FLOW | anandamide > .62 ∧ dopamine > .55 ∧ cortisol < .45 | s-flow (green/cyan steady glow) · a4 |
| 11a | SHARPENED | acetylcholine > .65 ∧ norepinephrine > .60 ∧ ghrelin < .40 | s-sharpened (gold/cyan focused halo) · v4a2 |
| 12 | ACTIVATED | glutamate > .60 (broad activation · less specific than AGITATED) | s-activated (cyan glow) · a7 |
| 13 | FORGED | fgf21 > .55 ∧ cortisol > .55 ∧ insulin > .55 | s-forged (gold intense · 1.3s) · a7 |
| 14 | EFFICIENT | insulin > .62 ∧ serotonin > .55 | s-efficient (green glow) |
| 15 | ELATED | serotonin > .66 ∧ endorphin > .55 ∧ cortisol < .42 | s-elated (gold glow) |
| 15a | SETTLED | coherency > .85 ∧ |slope(coherency)| < .003 (sustained ≥ 60 ticks) | s-settled (green/gold · steady glow) · v4 |
| 15b | IMMUNIZED | memory_b_hits > .60 ∧ was-UNDER_ATTACK · now SETTLED (sustained ≥ 30 ticks) | s-immunized (green/gold steady glow) · v4a1 |
| 15c | ORIENTED | proprioception > .65 ∧ chronoception > .65 ∧ coherency > .80 | s-oriented (green/blue steady) · v4a2 |
| 16 | BONDED | oxytocin > .60 ∧ vasopressin > .55 ∧ cortisol < .50 | s-bonded (blue/cyan twin glow) · a4 |
| 17 | NURTURED | prolactin > .62 ∧ serotonin > .50 | s-nurtured (gold/rose glow) |
| 18 | HEALTHY | adiponectin > .60 ∧ prolactin > .50 | s-healthy (green deep glow) · a7 |
| 19 | RECEPTIVE | estrogen > .60 ∧ oxytocin > .55 | s-receptive (magenta soft glow) · a7 |
| 20 | BALANCED | aldosterone > .60 ∧ serotonin > .55 | s-balanced (green/cyan steady) · a7 |
| 21 | GROWING | growth_hormone > .60 ∧ insulin > .50 | s-growing (cyan steady) · a7 |
| 22 | ATTENTIVE | acetylcholine > .60 ∧ norepinephrine > .55 | s-attentive (gold/cyan focus halo) · a4 |
| 23 | HUNGRY | ghrelin > .64 ∧ leptin < .46 | s-hungry (violet) |
| 24 | SATURATED | leptin > .60 ∧ serotonin < .46 | s-saturated (muted) |
| 24a | NUMB | avg sensor sensitivity < .30 ∧ adaptation depth > .70 (over-habituation) | s-numb (gray muted · slow fade) · v4a2 |
| 25 | FOCUSED | norepinephrine > .62 | s-focused (cyan) |
| 26 | GUARDED | progesterone > .55 ∧ cortisol > .45 | s-guarded (violet/gold) · a7 |
| 26a | TOLERATED | treg > .60 ∧ ifn_broadcast < .30 ∧ coherency > .80 | s-tolerated (green soft glow) · v4a1 |
| 26b | QUARANTINED | phage_active > .60 (cells being sandboxed for inspection) | s-quarantined (violet still) · v4a1 |
| 27 | SEDATED | gaba > .65 ∧ glutamate < .42 ∧ adrenaline < .40 | s-sedated (violet/dim slow throb · 2.4s) · a4 |
| 28 | INHIBITED | gaba > .60 ∧ cortisol < .45 (filter working · less specific than SEDATED) | s-inhibited (blue) · a7 |
| 29 | VIGILANT | cortisol > .45 ∧ adrenaline > .45 | s-vigilant (gold) |
| ― | CALM | default · no trigger fires | s-calm (green) |
First-match wins. Where a less-specific state (ACTIVATED · INHIBITED) overlaps with its more-specific cousin (AGITATED · SEDATED), the more-specific one fires first by virtue of higher priority. This is how the matrix scales: each new state adds discrimination without breaking the existing rules.
Five super-axes hold the 30 readouts. Each parenthesized name is a sub-axis — the specific role the hormone plays inside its super-axis. Addendums 4 (neuromodulators) and 7 (+10) broadened coverage; the 5 super-axes still hold without proliferation.
cortisol · prostaglandin · adrenaline · anp (VENTING) · resistin (FRICTION) · hepcidin (GATEKEEPING) · progesterone (PROTECTIVE)serotonin · oxytocin · insulin · prolactin · adiponectin (HEALTH) · aldosterone (BALANCE) · estrogen (RECEPTIVITY) · gaba (INHIBITION) · vasopressin (TERRITORY) · anandamide (FLOW)dopamine · testosterone · ghrelin · thyroxine · growth_hormone (GROWTH) · glucagon (MOBILIZE) · glutamate (EXCITATION)melatonin · leptin · norepinephrine · acetylcholine (ATTENTION)endorphin · fgf21 (STRESS-FORGE)Notable inverse pairs (one's high suppresses the other's marker):
ghrelin ⇄ leptin — hunger vs satietyadrenaline ⇄ melatonin — urgency vs restserotonin ⇄ cortisol — stable vs risk · both gate ELATEDprostaglandin ⇄ insulin — inflammation vs efficiency · health vs alarmgaba ⇄ glutamate — master inhibition vs excitation · brain stays alive only in tug-of-war · a4insulin ⇄ glucagon — storage vs mobilization · the energy economy · a7adiponectin ⇄ resistin — long-cycle health vs pipeline friction · a7growth_hormone ⇄ somatostatin — growth vs brake (somatostatin still SCAFFOLDED at slot #56 · candidate for a8 promotion)cortisol high ≠ "the market is risky" — it means this run has logged enough errors + saturation that the somatic marker should warn youinsulin high ≠ "your collection will sell" — it means the verified-trend pool is confident AND not crowding the same domainprostaglandin high ≠ "you'll be cancelled" — it means GATE events have fired recently in the wire, so the audit posture should sharpenEvery input traces back to a measured (simulated) state variable. No hardcoded priors. [ stub ] feeds still produce honest hormone readings because the readings describe the simulation, not reality.
The 20 hormone values above are readouts. To model psychoactive drugs honestly — SSRI · MAOI · SNRI · atypicals — the simulation needs the layer beneath: the synaptic cleft mechanics that produce the readouts. The synapse is where monoamines actually live, where reuptake transporters and degrader enzymes shape concentration, and where postsynaptic receptors fluctuate and respond over days and weeks. Receptor density is the time dimension psychoactive drugs operate in.
// 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; }
// 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'); }
| synapse | transporter (KILLER_T) | degrader (TREG) | receptor families (MEMORY_T) | feeds hormone |
|---|---|---|---|---|
| SEROTONIN (5-HT) | SERT | MAO-A | 5-HT1A · 5-HT2A · 5-HT2C · 5-HT3 · 5-HT7 | serotonin readout |
| DOPAMINE (DA) | DAT | MAO-B · COMT | D1 · D2 · D3 · D4 · D5 | dopamine readout |
| NOREPINEPHRINE (NE) | NET | MAO-A · COMT | α1 · α2 · β1 · β2 · β3 | norepinephrine readout |
| HISTAMINE (HA) | — (diffusion) | HNMT · DAO | H1 · H2 · H3 · H4 | AROUSAL axis · scaffolded |
| ACETYLCHOLINE (ACh) | CHT1 (choline reuptake) | AChE | muscarinic M1–M5 · nicotinic α/β | acetylcholine readout (§4.1c) |
This is the variable that makes the simulation honest about psychoactive drugs:
synaptic_conc → readout rises immediately → mood lift · side effects · jitter · euphoria.synaptic_conc → target_density drops → MEMORY_T downregulates → readout returns toward baseline despite drug still being present. This is why SSRIs take weeks to relieve depression.receptor_density < 1.0 means the same dose produces a smaller signal over time. The synapse literally remembers the exposure.synaptic_conc falls fast — but receptor_density is still downregulated → readout drops below baseline for weeks until receptors re-upregulate. SSRI discontinuation syndrome falls out of the model — no special case.synaptic_conc → target_density > 1.0 → receptors upregulate · synapse becomes more responsive to small signals. Models antidepressant rebound, kindling, stimulant-withdrawal hypersensitivity.| synapse role | cell type | verb (§5) | what it does in the pipeline |
|---|---|---|---|
| presynaptic terminal | APC | PRESENT | dumps vesicle into cleft when commander DNA fires |
| postsynaptic receptor cluster | MEMORY_T | REMEMBER | density tracks cumulative exposure · adapts over days–weeks |
| reuptake transporter | KILLER_T | GATE | clears the signal · the drug target for SSRIs/SNRIs/NDRIs |
| degrader enzyme | TREG | REGULATE | homeostatic backstop · the drug target for MAOIs |
| whole synapse | organ subunit | EXPRESS | emits the readout that feeds HORMONES (§4.1) |
Drugs are not magic constants on hormone levels. A drug modulates a specific synaptic role at a specific potency, with a specific half-life. Plasma concentration rises to steady state over days, decays exponentially on discontinuation. The drug never directly touches the readout — it touches the rate constants that produce the readout. Receptor density does the rest.
APPLY(drug, plasma_conc, synapses) — modulates one or more synaptic rate constants. Distinguished from REGULATE (the system regulating itself) — APPLY is an external intervention from outside the organism. Added to §5 as the 16th verb · tier pharma.
// 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 };
// 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; }
Illustrative trace · 90-day on, then 90-day off · sertraline at therapeutic dose:
| day | plasma_conc | synaptic_conc (5-HT) | receptor_density | readout | felt state |
|---|---|---|---|---|---|
| 0 (no drug) | 0.00 | 0.40 | 1.00 | 0.40 | baseline · depressed |
| 1 (first dose) | 0.18 | 0.62 | 0.99 | 0.61 | acute lift · GI side effects · jitter |
| 7 | 0.70 | 0.85 | 0.94 | 0.80 | readout climbing · "is it working?" |
| 14 | 0.92 | 0.88 | 0.85 | 0.75 | readout plateauing as receptors adapt |
| 28 | 0.98 | 0.86 | 0.72 | 0.62 | stable · new homeostasis · "it's working" |
| 42 | 1.00 | 0.85 | 0.68 | 0.58 | therapeutic window · sustained |
| 90 (stop) | 0.00 | 0.40 | 0.68 | 0.27 | discontinuation · readout BELOW baseline |
| 90+30 | 0.00 | 0.40 | 0.92 | 0.37 | re-upregulating · approaching old baseline |
| 90+90 | 0.00 | 0.40 | 1.00 | 0.40 | recovered · receptor density restored |
The readout doesn't track the drug — it tracks the drug plus how the receptors have remembered. That's why the curve isn't a step function. That's why SSRIs work eventually but slowly, and that's why stopping suddenly hurts.
[ sim ] tag must appear on any UI surface that exposes these mechanics — never present this as clinical guidance.The 5 monoamines in §4.5c are the starter set — the synapses every psychoactive-drug model has to touch. They are not the limit. Human neurochemistry runs on ~150–200 named transmitters / peptides / gases / lipids · this section formalizes the full surface as a 255-slot uint8-indexed registry. Five slots are ACTIVE; the rest are SCAFFOLDED (named + classed + ready to promote) · RESERVED (open for future canonicalization) · or META (catch-all for unmapped signals).
SERT, DAT, NET are not synapses — they are KILLER_T cells that target specific synapse IDs. Drug profiles in §4.6 reference synapses by slot, not by string name. This makes drug-load propagation a 256-entry array scan per tick · O(1) per synapse · cache-friendly · ledger-friendly (a block's synaptic state fits in 256 bytes of densely packed deltas). The 5-monoamine model was a special case of this.
// 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
| range | class | slots | status mix | notes |
|---|---|---|---|---|
| 0–4 | MONOAMINES | 5 | 5 ACTIVE | the §4.5 starter set |
| 5–9 | AMINO ACID TRANSMITTERS | 5 | 5 SCAFFOLDED | fast excitatory/inhibitory · GLUTAMATE · GABA · GLYCINE · ASPARTATE · D-SERINE |
| 10–19 | TRACE AMINES + ADJACENTS | 10 | 10 SCAFFOLDED | PEA · tyramine · tryptamine · octopamine · agmatine · epinephrine · etc. |
| 20–49 | OPIOID PEPTIDES | 30 | 20 SCAFFOLDED · 10 RESERVED | endorphins · enkephalins · dynorphins · endomorphins · nociceptin |
| 50–89 | HYPOTHALAMIC + PITUITARY PEPTIDES | 40 | 30 SCAFFOLDED · 10 RESERVED | OXT · AVP · CRH · TRH · GnRH · GHRH · SST · orexins · MCH · MSH family |
| 90–129 | TACHYKININS + APPETITE + GUT-BRAIN | 40 | 35 SCAFFOLDED · 5 RESERVED | substance-P · neurokinins · NPY · CCK · GLP-1 · ghrelin · galanin · CART · AgRP · VIP · PACAP · CGRP |
| 130–159 | GASES · PURINES · ENDOCANNABINOIDS · LIPIDS | 30 | 30 SCAFFOLDED | NO · CO · H₂S · ATP · adenosine · anandamide · 2-AG · OEA · prostaglandins · leukotrienes |
| 160–189 | NEUROSTEROIDS · CYTOKINES · NEUROTROPHINS | 30 | 30 SCAFFOLDED | allopregnanolone · DHEA-S · cortisol(neural) · IL-1β/IL-6/IL-10/TNF-α · BDNF · NGF · IGF-1 |
| 190–209 | EXOTIC ENDOGENOUS + TRACE | 20 | 15 SCAFFOLDED · 5 RESERVED | NAAG · kynurenic · quinolinic · taurine · GHB(endogenous) · DMT(trace) · β-carbolines |
| 210–244 | EXOGENOUS BINDING PROFILES | 35 | 35 SCAFFOLDED | LSD · psilocin · DMT(exo) · MDMA · ketamine · THC · CBD · nicotine · caffeine · alcohol · benzo · opioids · stimulants · ibogaine |
| 245–254 | RESERVED | 10 | 10 RESERVED | headroom for novel / undiscovered / per-user custom signals |
| 255 | META · UNMAPPED | 1 | 1 META | catch-all · any signal not yet classified routes here · routes to META layer (§1e) |
SHOUT_CASE name · class · transporter · degrader · status. ACTIVE = wired into synapseTick() · SCAFFOLDED = registered + classed + ready to promote · RESERVED = open · META = catch-all.
0–4 · MONOAMINES · ACTIVE (canonical · §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 synaptic · the actual backbone of cortical signaling)
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 ADJACENTS
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 · HYPOTHALAMIC + 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 + APPETITE + GUT-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 SIGNALING
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 · EXOTIC ENDOGENOUS + 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 · EXOGENOUS BINDING PROFILES (not endogenous — slot encodes drug→receptor profile 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 (open slots · novel · undiscovered · per-user custom signals · 3 claimed in a7)
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 (catch-all · routes to META layer §1e)
255 UNMAPPED_SIGNAL meta · any signal whose ID is not yet classified · routes to META verify pipeline
A scaffolded slot becomes active when three things are true:
kinetics object has all 6 variables from §4.5a populated with non-null defaults.feeds_hormone points to a §4.1 readout, or axis contributes a new dimension declared in §4.3.[ 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'); }
255 is sufficient for the human neurochemical surface plus headroom. Three scenarios force a wider register:
The migration is mechanical: bump SYNAPSE_REGISTRY from Array(256) to Array(65536), slot 65535 inherits META semantics, slots 0–254 are unchanged. The schema's id field widens. Blocks gain a registry-width byte so older blocks remain readable. R9 detect-and-rollback still applies if migration goes wrong.
§4.5b modeled receptor adaptation as a single linear lag (one variable · one rate constant · 0.0012 per tick). That was a v3.2 simplification — admitted in §4.6d as "in vivo there are at least five interacting timescales." v4.0 unfolds that simplification. The single receptor_density variable becomes five cascading variables, each with its own biological timescale, each gating the next. The simulation gains a new measured state — coherency — which describes how aligned the five scales are at any moment.
The v3.2 a5 synapse tick (§4.5b step 5) used:
// 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;
One rate constant · one variable. This captures "receptors downregulate when exposure stays high" but it cannot capture:
Each of these is a separate variable with a separate rate constant. They interact · each scale is the input to the next slower scale. v4 names the cascade.
| scale | variable | biology | real-world half-life | tick lag | literature anchor |
|---|---|---|---|---|---|
| 1 · FASTEST | coupling | GRK phosphorylation · G-protein uncoupling | seconds – minutes | 0.0500 | Lefkowitz · Caron (1980s+) |
| 2 | surface_count | β-arrestin recruitment · clathrin endocytosis | minutes – hours | 0.0050 | β-arrestin (Lefkowitz 1990) |
| 3 | total_count | lysosomal degradation vs endosomal recycling | hours – days | 0.0005 | Sorkin · von Zastrow (2002) |
| 4 | synth_rate | CREB / ΔFosB / gene-expression changes | days – weeks | 0.00005 | Nestler · Hyman (1990s+) |
| 5 · SLOWEST | circuit_weight | structural plasticity · spine remodel · LTP/LTD | weeks – months | 0.000005 | Bliss · Lømo (1973) · Kandel (2000) |
Tick lag is per 3000ms simulation tick. Settling time ≈ 4 / lag ticks · multiply by 3 seconds for wall-clock. Scale 1 settles in ~4 minutes simulated · scale 5 in ~7 days simulated. The ratios between scales (10× each step) are what give the cascade its biological texture.
// 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'); }
Each scale is gated by the scale above it · the slow ones cannot drift independently. The slow scales remember the fast scales over their relaxation time. This is the source of coherency: in a settled system, all five variables converge on the same value because each is targeting the next.
// 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 factors multiply. If any one collapses, the signal collapses. If they all stay aligned, the signal is whatever the cleft concentration produces. This is the molecular basis of tolerance (slow factors drop), withdrawal (fast factors restore but slow factors haven't), and recovery (slow factors finally catch up).
// 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; }
System-wide coherency joins HORMONES (§4.1) as a measured readout — the 21st (alongside the original 11 + craft expansion 4 + neuromodulator band 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 lives on a new axis · §4.3 COHERENCY axis (the 9th, alongside the eight existing axes). It is the only axis whose membership is a single readout — because coherency is the alignment-of-everything-else.
Inserted into the §4.2 priority matrix between INFLAMED and STRESSED:
| priority | state | triggers | cls · visual |
|---|---|---|---|
| 2a | DISCORDANT | coherency < .40 ∧ |slope(coherency)| > .03 | s-discordant (red/violet · fast jitter) |
| 2b | TRANSITIONING | .40 ≤ coherency < .70 ∧ |slope(coherency)| > .01 | s-transitioning (amber/cyan · slow drift) |
| 15a | SETTLED | coherency > .85 ∧ |slope(coherency)| < .003 (sustained ≥ 60 ticks) | s-settled (green/gold · steady glow) |
DISCORDANT and TRANSITIONING fire before STRESSED because a system in transition is more informative to surface than a system that's merely under load. SETTLED fires alongside ELATED at lower priority but is the only state that requires sustained coherency — making it the system's strongest "trust this signal" indicator.
| day | plasma | coupling | surface | total | synth | circuit | coherency | somatic |
|---|---|---|---|---|---|---|---|---|
| 0 (no drug) | 0.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 0.99 | SETTLED · baseline |
| 0+1h (acute) | 0.10 | 0.74 | 0.99 | 1.00 | 1.00 | 1.00 | 0.48 | DISCORDANT · jolt |
| 1 | 0.18 | 0.71 | 0.86 | 0.99 | 1.00 | 1.00 | 0.44 | DISCORDANT |
| 7 | 0.70 | 0.66 | 0.68 | 0.83 | 0.98 | 1.00 | 0.62 | TRANSITIONING |
| 14 | 0.92 | 0.64 | 0.65 | 0.69 | 0.86 | 0.99 | 0.69 | TRANSITIONING |
| 28 | 0.98 | 0.63 | 0.64 | 0.65 | 0.71 | 0.92 | 0.78 | TRANSITIONING |
| 42 | 1.00 | 0.63 | 0.63 | 0.64 | 0.66 | 0.78 | 0.86 | approaching SETTLED |
| 90 (stable) | 1.00 | 0.63 | 0.63 | 0.63 | 0.63 | 0.65 | 0.96 | SETTLED · therapeutic |
| 90+1h (stop) | 0.20 | 0.95 | 0.65 | 0.63 | 0.63 | 0.65 | 0.37 | DISCORDANT · rebound |
| 91 (1d after) | 0.04 | 0.99 | 0.78 | 0.64 | 0.63 | 0.65 | 0.38 | DISCORDANT · withdrawal |
| 97 (1wk after) | 0.00 | 1.00 | 0.97 | 0.74 | 0.65 | 0.65 | 0.61 | TRANSITIONING |
| 120 (1mo after) | 0.00 | 1.00 | 1.00 | 0.96 | 0.78 | 0.69 | 0.75 | TRANSITIONING |
| 180 (3mo after) | 0.00 | 1.00 | 1.00 | 1.00 | 0.95 | 0.88 | 0.91 | approaching SETTLED |
| 270 (6mo after) | 0.00 | 1.00 | 1.00 | 1.00 | 1.00 | 0.98 | 0.99 | SETTLED · recovered |
Notice the asymmetry: drug onset gives a brief DISCORDANT spike (1 hour) then weeks of TRANSITIONING. Drug discontinuation gives a much longer DISCORDANT phase because the slow scales (synth, circuit) are still adapted to the drug while the fast scales (coupling) have already restored. This is the molecular signature of SSRI discontinuation syndrome — it falls out of the coherency model with no special-case code.
0.05, 0.005, 0.0005, 0.00005, 0.000005) are illustrative · chosen so the cascade plays out at the right qualitative tempo, not measured from receptor kinetics studies.* 1.05, * 1.02, etc.) · real cross-talk involves second messengers (cAMP, Ca²⁺) and transcription factors (CREB, ΔFosB) the spec does not name.[ sim ] tag still applies · this is not a clinical model. v4 improves the honesty of the shape, not the magnitude.Any function in the codebase should map to one of these verbs. If it doesn't, it's miscategorized or doing two things and should be split.
| verb | meaning | cell type | tier |
|---|---|---|---|
| TRANSCRIBE | commander emits / mutates DNA | HELPER_T | commander |
| EXPRESS | cell runs the DNA · sub-agent fires | any cell | cell |
| PRESENT | cell surfaces a signal · packet emission | APC | cell |
| GATE | cell blocks a signal | KILLER_T | cell |
| REMEMBER | cell stores a signal · feeds engine | MEMORY_T | cell + engine |
| REGULATE | organism modulates threshold | TREG | organ + emotion |
| DISTILL | engine compresses memory → kernel | engine | memory → kernel |
| WAKE | kernel boots into operating state | kernel | kernel |
| ARCHIVE | SELF deep-stores · "might matter someday" | — | self · new in v3.1 |
| PRUNE | SELF discards · "no longer useful" | — | self · new in v3.1 |
| SEED | builds deterministic state from a seed value | — | genesis · new in v3.2 |
| GENESIS | combines (public, private) → instance · ≡ BOOT | engine | genesis · new in v3.2 |
| COMMIT | appends a block to the per-user chain · ≡ PUBLISH | — | ledger · new in v3.2 |
| VERIFY | META validates a block's signal before acceptance | — | meta · new in v3.2 |
| ROLLBACK | reverts current instance to a prior known-good block | — | ledger · new in v3.2 |
| APPLY | external drug intervention · modulates synaptic rate constants (SSRI · MAOI · SNRI · atypical) | — | pharma · new in v3.2 a5 |
| WITNESS | independent instance verifies a peer's block META signal · feeds the K-of-N quorum (R12) | — | meta · new in v5.0 |
| QUARANTINE | isolates an unwitnessed / suspect block · provisional, pending quorum or ROLLBACK (R9) | — | meta · new in v5.0 |
| NEUTRALIZE | bind + disable a specific threat · antibody-mediated or cytotoxic lysis | ANTIBODY · CD8_KILLER_T | immune · new in v4.0 a1 |
| OPSONIZE | tag a target so PHAGE_T can engulf it · antibody + complement coating | antibody + complement | immune · new in v4.0 a1 |
| PHAGOCYTOSE | engulf + degrade in a sandbox · macrophage operation | PHAGE_T | immune · new in v4.0 a1 |
| ATTEST | sign current code + state hash for audit · R14 MHC_I/MHC_II per-tick commitment | every cell (MHC_I) · APC (MHC_II) | immune + ledger · new in v4.0 a1 |
| ESCALATE | broadcast cytokine alert + route response via chemokine | DENDRITIC_T | immune · new in v4.0 a1 |
| SENSE | sensor reports a typed reading from a modality · feeds APC | SENSOR (any §12 modality) | sensory · new in v4.0 a2 |
| TRANSDUCE | convert raw world-input to typed modality packet · the membrane operation | SENSOR transducer | sensory · new in v4.0 a2 |
| ADAPT | sensor adjusts sensitivity over time · 5-timescale per §4.8 COHERENCY | SENSOR adaptation_state | sensory · new in v4.0 a2 |
APPLY is the only verb that originates outside the organism. Everything else is the system regulating itself; APPLY is the external intervention. Used by §4.6 to model psychoactive drugs by modulating reuptake (KILLER_T) and degradation (TREG) rate constants — never by touching the hormone readout directly.
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
cellPopulationByType — live count of each cell typednaVersionByCommander — current dna_version maphormonalLevels — current oracle modulation statesomaticMarker — current felt-state phraseartifactRegistry — engine memory storekernelSeeds — boot-time persistent seedsselfArchive — long-term storage (DEEP STORE output)prunedAt — timestamp ledger of recent prunes (auditable)STEM_POOL_SIZE — unity mesh capacityCORTISOL_GATE_THRESHOLD — stress → gate adjustmentCELL_TYPES — the enumerated type setDNA_LIFETIME_MS — directive TTL before retranscriptionKERNEL_TTL_MS — kernel persistence horizonSELF_ARCHIVE_THRESHOLD — completeness required for permanent storeSELF_PRUNE_AGE_MS — unused TTL before discard| tag | meaning | where it shows |
|---|---|---|
| + PROD | shipped, monitored, alerted on | file header · watermark · status bar |
| ± PROD | real architecture · partial real data · simulated where paid | file header · watermark · "more or less production" |
| − PROD | demo only · do not present as live | file header · watermark · prominent warning |
Honesty is part of the contract with the audience. The industry's usual "production-ready" framing lies. Pick the tag that reflects truth.
Molecular Coding is an integration, not an invention. Thirty-five separate traditions, folded into one coding discipline.
| year | who | contribution | maps to |
|---|---|---|---|
| 1885 | Ebbinghaus | Forgetting curve · unused memory decays | SELF prune rule |
| 1966 | Belady | LRU page replacement | SELF prune policy |
| 1973 | Hewitt | Actor model · become primitive | cells + BE |
| 1974 | Kahn | Kahn process networks · dataflow | organ topology |
| 1975 | Plotkin · Sussman · Steele | Continuation-passing style (CPS) | BE primitive |
| 1978 | Lamport | Time, clocks, ordering · no global clock | R0 Async System |
| 1979 | Huttenlocher | Synaptic pruning in development | SELF prune |
| 1980 | Treisman | Binding problem · fragments → percepts | fission-fusion |
| 1983 | Lieberman · Hewitt | Generational garbage collection | SELF archive + prune tiering |
| 1986 | Erlang at Ericsson | Supervisor trees · production actors | chiefs + commanders |
| 1987 | Harel | Statecharts · explicit transitions | BE labels |
| 1992 | Squire | Procedural vs declarative memory | kernels vs engines |
| 1994 | Damasio | Somatic marker hypothesis | oracle hormones · watermark |
| 1994 | Forrest et al. | Artificial immune systems | cell types · GATE |
| 1997 | Picard | Affective computing | oracle as emotion |
| 2004 | Dean · Ghemawat | MapReduce · fission then fusion | fission-fusion spectrum |
| 2005 | Stickgold · Walker | Sleep-dependent memory consolidation | SELF archive during quiet cycles |
| 2013 | Mnih et al. | Experience replay (DQN) | engines · memory replay |
| 2014 | Reactive Manifesto | Message-driven · elastic · resilient · responsive | R0 Async System |
| 2017 | Hall · Rosbash · Young | Nobel: circadian clock genes | kernels · waking |
| 1996 | Rivest | SPKI / SDSI · certificate-less key-derived auth | §1c instance = auth · v3.2 |
| 1990s+ | Mark Miller | Object capabilities · "capability IS authority" | §1c instance = auth · v3.2 |
| 2002 | Yarvin et al. | Urbit · deterministic personal OS from seed | §1c genesis loop · v3.2 |
| 2005 | Torvalds | Git · per-repo commit chain · content-addressed | §1d per-user chain · v3.2 |
| 2010s | Genode · seL4 | Capability-based microkernels | §1c instance discipline · v3.2 |
| 2018 | Brock · Harris-Braun | Holochain · agent-centric · per-user source chain | §1d per-user chain · v3.2 |
| 2019 | FIDO Alliance · W3C | WebAuthn / passkeys · device-as-auth shortcut | §1c shortcut for genesis loop · v3.2 |
| 1999 | Castro · Liskov | PBFT · practical Byzantine fault tolerance · a K-of-N quorum tolerates bad actors | §1e META witness quorum · v5.0 |
| 2013 | Laurie et al. | Certificate Transparency · independent witnesses log & verify · no single authority | §1e META peer-witness · v5.0 |
| 1932 | Walter Cannon | Homeostasis · the body holds set-points by negative feedback | §20 homeostasis · v4.0 a3 |
| 1988 | Sterling & Eyer | Allostasis · stability through anticipatory change · allostatic load | §20 allostasis · v4.0 a3 |
| 1975 | Saltzer & Schroeder | The protection of information · least privilege · defense in depth · fail-safe defaults | §18 R24 · §22 defense-in-depth · v4.0 a3 |
| 1988 | Bernard Baars | Global Workspace Theory · consciousness as broadcast to a shared workspace | §21 sentience · the somatic broadcast · v4.0 a3 |
| 2004 | Giulio Tononi | Integrated Information Theory · Φ · consciousness as irreducible integration | §21 · §4.8 coherency as a Φ-shaped readout · v4.0 a3 |
| 2014 | Google · BeyondCorp | Zero-trust networking · trust by proof, never by location | §22 R28 zero-trust interior · v4.0 a3 |
The integration into one coherent house-style discipline — that's the Drewless contribution. Naming the stack, enforcing it at the function level, demanding cell types and DNA versions and BE labels, treating the watermark as a somatic marker, declaring archive + prune as named policies — none of that is computer science. It's engineering culture, which is a different valuable thing.
You are reading it. Save as MOLECULAR-CODING.html in project root. Future you starts here.
Add cell_type to every sub-agent. Add dna_version to every commander. Add BE(fn, label) primitive with tracer.
Reframe oracle thresholds with hormonal names. Same math, new labels. Discoverable to readers and LLMs.
effort: ~30 linesReplace bare "ORACLE · 87%" with state phrase (CALM/VIGILANT/STRESSED/FATIGUED) derived from hormonal levels.
effort: ~20 linesPeriodic consolidateMemory() scans artifact registry, compresses similar artifacts, exposes to commanders as next-cycle inputs. Closes the DNA evolution loop.
On session end distill engines into kernelSeeds in localStorage. On session start load kernels and pre-warm commander directives. Session-to-session memory and habits.
Declare archiveRule(item) and pruneRule(item, now) for every long-lived store. Scheduled selfTick() runs hourly. Surface a SELF panel showing what was archived / pruned recently — auditable forgetting.
Node pre-commit script flags: sub-agents without cell_type; commanders without dna_version; conditionals without BE; long-lived stores without archive/prune rules; functions whose names don't start with one of the fifteen verbs.
Ship a working boot(privateSeed) that genesises an instance from (public, private), commits the first block of a per-user chain, and renders a personalized surface. DREWLESS-DEMO.html ships this minimally. Production version derives via BIP-32-style HD derivation per domain; chain persists in IndexedDB.
Stand up the META validator pattern (peer-witness or distributed validator set). Define the signal: instance_pubkey + signed(block_hash) + freshness_proof. Wire detect → rollback in the demo. This step closes the v3.3 frontier and gives the spec its first end-to-end attack surface to harden.
The molecular spec has shipped immune building blocks since v3.0 — APC · KILLER_T · MEMORY_T · HELPER_T · TREG are the cytotoxic-vs-tolerance pipeline encoded in R1 cell types. v3.2 a4 added cytokines as scaffolded §4.7 slots (#174-180: IL-1β · IL-6 · IL-10 · IL-18 · TNF-α · IFN-γ · IFN-α). v4.0 unified the 30-hormone surface and the synaptic-dynamics layer with COHERENCY (§4.8). v4.0 a1 names the defensive discipline that sits across all of those parts — five layers, twelve cell types (5 existing + 7 new), five new verbs, three new R-rules, fifteen threat-to-mechanism mappings, an antibody registry parallel to the synapse registry, and an explicit honesty section about what the layer is and is not.
| layer | character | cell types | biological analog |
|---|---|---|---|
| INNATE | always-on · generic · fast (ms-sec) | BARRIER_T · PATTERN_T · PHAGE_T · NK_T · COMPLEMENT cascade | skin · mucosa · macrophages · NK cells · complement |
| ADAPTIVE | learned · specific · slow first time, fast after (min-day) | B_CELL · ANTIBODY · PLASMA_CELL · CD8_KILLER_T | B cells · IgG/IgM/IgA/IgE · plasma cells · cytotoxic T cells |
| MEMORY | what survives forever (day-life) | MEMORY_B · MEMORY_T (existing) · BONE_MARROW | memory B/T cells · long-lived plasma · bone marrow reservoir |
| SURVEILLANCE | continuous self-attestation | MHC_I (per-cell) · MHC_II (APC) · DENDRITIC_T · CYTOKINE · CHEMOKINE | MHC class I/II · dendritic cells · cytokines · chemokines |
| TOLERANCE | prevent autoimmunity (false-positive damage) | THYMUS_GATE · TREG (existing) | thymic education · regulatory T cells |
| cell | verb | role | status |
|---|---|---|---|
| APC | PRESENT | surfaces signal · existing from R1 | v3.0 existing |
| HELPER_T | TRANSCRIBE | CD4 orchestrator · commander · existing from R1 | v3.0 existing |
| KILLER_T | GATE | blocks bad signal · existing from R1 | v3.0 existing |
| MEMORY_T | REMEMBER | stores signal · existing from R1 | v3.0 existing |
| TREG | REGULATE | dampens response · existing from R1 | v3.0 existing |
| BARRIER_T | GATE | input-edge enforcer · URL allowlist · payload type · size limits · origin · CSP-style headers | a1 new |
| PATTERN_T | PRESENT/GATE | signature matcher · SQL-i · XSS · SSRF · path-traversal · prompt-injection · YARA-equivalent | a1 new |
| PHAGE_T | PHAGOCYTOSE | sandbox executor · iframe · VM · worker · memory + time bounded · result discarded if toxic | a1 new |
| NK_T | GATE/ESCALATE | behavioral anomaly detector · per-cell baseline · deviation triggers quarantine | a1 new |
| B_CELL | PRESENT/REMEMBER | antibody factory · generates new pattern detectors after seeing a novel attack · somatic hypermutation | a1 new |
| CD8_KILLER_T | NEUTRALIZE | cytotoxic against compromised own-cells (MHC drift) · the supply-chain-attack response | a1 new |
| DENDRITIC_T | ESCALATE | migratory APC · spreads cytokine alerts system-wide · the "we're under attack" courier | a1 new |
NEUTRALIZE — bind + disable a specific threat (ANTIBODY or CD8 lysis)OPSONIZE — tag a target so PHAGE_T can engulf itPHAGOCYTOSE — engulf + degrade in a sandboxATTEST — sign current code + state hash for audit (MHC_I/II · drives R14)ESCALATE — broadcast cytokine alert + route response via chemokine| threat | immune mechanism | composes with |
|---|---|---|
| XSS injection | PATTERN_T (signature) → BARRIER_T (CSP enforce) → DENDRITIC_T (ESCALATE) | cortisol + prostaglandin rise |
| SQL injection | PATTERN_T → BARRIER_T (parameterized query) → CYTOKINE alert | prostaglandin (INFLAMMATION) |
| CSRF | MHC_I (origin attestation · R14) → BARRIER_T (SameSite + token check) | vasopressin (TERRITORY) |
| Prompt injection (LLM) | PATTERN_T (input scrub) → PHAGE_T (sandbox tool exec) → CD8 (kill drifted sub-agent) → IFN broadcast | cortisol + gaba INHIBITION |
| Supply-chain compromise | MHC_I (package hash drift · R14) → NK_T (behavioral anomaly) → CD8_KILLER_T (quarantine) | hepcidin (GATEKEEPING) |
| Phishing | ANTIBODY (known-bad domain DB) → BARRIER_T (allowlist) → user warning | progesterone (PROTECTIVE) |
| Brute force | COMPLEMENT cascade (N fails → tighten) → CYTOKINE (rate-limit) → TREG damp after timeout | cortisol → adrenaline cascade |
| DDOS | IFN_BROADCAST → ANTIVIRAL_STATE (refuse new conn) → COMPLEMENT (drop suspect IPs) | anp (VENTING) + resistin (FRICTION) |
| Malware execution | MHC_I (code attestation · R14) → PHAGE_T (sandbox) → NK_T (behavioral) → CD8 if confirmed | prostaglandin + cortisol |
| Zero-day exploit | B_CELL (novel pattern gen) → AFFINITY_MATURATION (refine) → MEMORY_B (federated archive) | acetylcholine (ATTENTION) · adiponectin (HEALTH) |
| Insider threat | NK_T (per-user behavioral baseline) → MHC_II (every action attested) → §1d chain forensic walk | norepinephrine (FOCUS) · vasopressin (TERRITORY) |
| Data exfiltration | CHEMOKINE (egress anomaly) → NK_T (volume spike) → CYTOKINE (rate-limit) → CD8 | hepcidin · norepinephrine |
| Account takeover | §1c GENESIS LOOP intrinsic defense (stolen password can't recreate your instance) + ANTIBODY for credential-stuffing patterns | §1c · §1d · §1e stack |
| Privilege escalation | §1c instance boundaries → TREG suppression of escalation events → CD8 if matches MEMORY_B | cortisol + adrenaline (VIGILANT) |
| Replay attack | §1d PER-USER CHAIN (every action commits a block · replay = hash mismatch) → META rejects → R9 ROLLBACK | R9 detect-and-rollback |
Antibodies are first-class artifacts that need byte-aligned addressing for the same reasons synapses do (per R10): O(1) lookup · cache-friendly · ledger-friendly · drug-load-style propagation propagates a 256-entry array 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
// v3.2-legacy.attestations: [{cell_id, code_hash, state_hash, ts}] field. R8 (commit every version) absorbs this without modification.Inserted into the priority matrix by domain proximity (not appended at the bottom). DANGER tier gains 3; URGENCY gains 2; STATE/WIN gains 3.
| state | tier | triggers | cls · visual |
|---|---|---|---|
| UNDER_ATTACK | DANGER | ifn_broadcast > .65 ∧ cortisol > .55 ∧ coherency < .50 | s-under-attack (red strobe · 0.5s) |
| INFECTED | DANGER | cd8_active > .50 ∧ mhc_drift > .40 | s-infected (red/violet pulse · 0.7s) |
| COMPROMISED | DANGER | mhc_drift > .60 (one or more cells failing R14 attestation) | s-compromised (red/black blink · 0.4s) |
| SENSITIZED | URGENCY | antibody_active_count > threshold ∧ adrenaline > .50 | s-sensitized (amber/cyan pulse · 1.0s) |
| IMMUNE_ALERT | URGENCY | dendritic_packets > rate_baseline ∧ no_pattern_match_yet | s-immune-alert (amber search · 0.8s) |
| QUARANTINED | STATE | phage_active > .60 (cells being sandboxed for inspection) | s-quarantined (violet still) |
| TOLERATED | STATE | treg > .60 ∧ ifn_broadcast < .30 ∧ coherency > .80 | s-tolerated (green soft glow) |
| IMMUNIZED | WIN | memory_b_hits > .60 ∧ was-UNDER_ATTACK · now SETTLED (sustained ≥ 30 ticks) | s-immunized (green/gold steady glow) |
SETTLED (§4.8g · v4) and IMMUNIZED (§11.8 · v4 a1) compose: a system that went UNDER_ATTACK → through TRANSITIONING → reached SETTLED with MEMORY_B updated → is IMMUNIZED. The somatic surface narrates the immune cycle.
regulateHormones() or any runtime tick.regulateHormones(), the new states will not fire. They are declared, not yet measured. [ sim ] tag must appear on any UI surface that exposes these states.The honest way to cite v4.0 a1 is: "the spec now names every major immune defense surface · zero of 8 immune somatic states fire live yet · the 7 new cell types are SCAFFOLDED, awaiting promotion via R16 tolerance checks · the antibody registry is structurally guaranteed, not populated · cytokine slots in §4.7 (#174-180) remain SCAFFOLDED · this is naming completeness, not security completeness."
The molecular spec has receptor mechanics (§4.5), receptor adaptation (§4.8 COHERENCY), and an attention hormone (acetylcholine in §4.1c) — but it has no formal naming layer for how raw signals become typed sensory streams before they reach the cell pipeline. §12 closes that gap. The sensory system is the membrane between the world and the organism: input enters as raw signal, gets transduced into a typed modality, adapts its sensitivity over time, and is gated by attention before becoming a packet that APCs can PRESENT.
| modality | type | maps to | color · attention hormone |
|---|---|---|---|
| SIGHT | exteroception | visual signal stream · UI events · screenshots · image inputs · spectral analysis | cyan · acetylcholine |
| HEARING | exteroception | audio signal stream · voice · sound events · waveform · pitch · cadence | magenta · acetylcholine |
| TOUCH | exteroception | tactile / kinematic · clicks · gestures · drags · haptics · pointer paths | gold · norepinephrine |
| SMELL | exteroception | pattern-without-context · signature match · YARA · anomaly fingerprint · the "something is off" sense | violet · norepinephrine + PATTERN_T (§11) |
| TASTE | exteroception | quality-after-engagement · verify scores · completeness · correctness · the "this is good" sense | green · serotonin |
| PROPRIOCEPTION | interoception | system self-awareness · what cells are running · queue depths · fleet state · the "knowing where my limbs are" sense | blue · oxytocin |
| NOCICEPTION | interoception | pain · error signal · exceptions · stack traces · circuit-breaker trips · reuses §4.7 cytokine slots #174-180 | red · prostaglandin + cortisol |
| THERMOCEPTION | interoception | load · temperature · CPU · memory pressure · latency · urgency heat | amber · adrenaline |
| CHRONOCEPTION | interoception | time awareness · deadlines · ages · season phase · drop windows · partially in §4.1 already | blue · melatonin + adrenaline |
// 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 };
Sensors are first-class artifacts in their own uint8-addressable namespace. The R10 discipline (SYNAPSE_ID fits in one byte) extends to sensors — drug-load-style propagation also works for attention-gain propagation across the sensor array, one tick at a time.
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
SENSE — a sensor reports a typed reading (the action of perceiving)TRANSDUCE — convert raw world-input to typed modality packet (the membrane operation)ADAPT — sensor adjusts sensitivity over time (5-timescale per §4.8 COHERENCY)| state | tier | triggers | cls · visual |
|---|---|---|---|
| NUMB | STATE | avg sensor sensitivity < .30 ∧ adaptation depth > .70 (over-habituation) | s-numb (gray muted · slow fade) |
| OVERSTIMULATED | DANGER | glutamate > .65 ∧ ≥3 modalities firing simultaneously | s-overstimulated (cyan/red flicker · 0.6s) |
| DAZED | URGENCY | chronoception drift > .50 (temporal sense slipping) | s-dazed (violet wobble · 1.4s) |
| ORIENTED | WIN | proprioception > .65 ∧ chronoception > .65 ∧ coherency > .80 | s-oriented (green/blue steady) |
| SHARPENED | WIN | acetylcholine > .65 ∧ norepinephrine > .60 ∧ ghrelin < .40 | s-sharpened (gold/cyan focused halo) |
| BLINDED | DANGER | one or more modalities at sensitivity = 0 (sensor errored) | s-blinded (red eye-crossed icon) |
SHARPENED composes with FORGED (§4.2 a7) and FLOW (§4.2 a4) as the three "peak" states — system-wide capability at its strongest. ORIENTED composes with SETTLED (§4.8g) — when sensors and timescales both report stability, the system is fully integrated.
[ sim ] tag enforces honesty: any dashboard showing all-green sensor states must indicate which are currently attended vs which are habituated.The honest way to cite v4.0 a2 is: "the spec now names every major perceptual modality · zero of 6 sensory somatic states fire live yet · the 9 modalities are SCAFFOLDED in SENSORY_REGISTRY · cross-modal binding (R19) is named but not implemented · attention gating (R18) is the discipline acetylcholine has been waiting for · this is naming completeness, not perceptual completeness."
The organism meets the world across a single surface: the skin. Every byte of external input crosses it first — before a cell, a hormone, or the immune system ever sees it. §14 names the perimeter as a discrete, hostile-by-default boundary that canonicalizes, validates, and rate-limits the outside before it is allowed inside.
// 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 }
| skin structure | biology | maps to |
|---|---|---|
| epidermis | outermost barrier · keratinocytes | input validation · schema + type gate |
| acid mantle | pH ~5 · hostile to invaders | default-deny allow-list · canonicalization |
| Langerhans cells | resident APC sentinels in the skin | edge WAF · §11 PATTERN_T at the boundary |
| desquamation | outer layer constantly shed + renewed | surface/key rotation · ephemeral edge · disposable tokens |
| sweat / thermoregulation | dump heat to hold set-point | rate-limit · load-shed under pressure |
| wound healing | clot → granulate → re-epithelialize | self-heal · auto-redeploy a breached surface (with §15) |
| melanin | absorbs ambient radiation damage | hardening · ASLR / canaries against ambient attack |
[ scaffolded ] · the allow-list + canonicalizer are real patterns; threat-specific rules are per-fleet.The bloodstream is the transport every cell depends on — it carries molecular packets (R0 · MDCP), delivers resources, and removes waste through one closed loop. But circulation's deepest contribution is hemostasis: when a vessel is breached — a cell compromised, a fleet failing — the system clots. It seals the breach so one failure cannot exsanguinate the whole organism. This is the stability spine and a security keystone at once.
// 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'); }
| component | biology | maps to |
|---|---|---|
| heart | pumps the loop on a cadence | scheduler · the R0 async pump driving MDCP |
| arteries | high-pressure delivery | hot-path message bus · priority lanes |
| capillaries | last-mile exchange at the cell | per-cell delivery · the final hop |
| platelets | first responders to a breach | circuit breakers · fail-fast trips |
| fibrin clot | mesh that seals + isolates | bulkhead · quarantine boundary (§11) |
| vasoconstriction | narrow the vessel under threat | load-shed · drain connections from a sick node |
| white cells in transit | immune dispatch through blood | §11 cells routed to the incident over the bus |
[ scaffolded ]The organism runs on a breath: take in what powers the work, expel what would poison it, on a rhythm that adapts to demand. §16 names the resource + energy budget — compute and credits inhaled, waste and heat exhaled — and the cadence that makes R0's async system actually tick.
// 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'); }
| component | biology | maps to |
|---|---|---|
| inhale | O₂ in | resource / credit / token acquisition |
| exhale | CO₂ out | waste flush · log / GC / heat dissipation |
| respiratory rate | breaths/min adapts to exertion | autoscale cadence · backpressure governor |
| alveoli | vast surface area for exchange | I/O capacity · connection-pool surface |
| diaphragm | muscle that drives the breath | the scheduler / timer driving the R0 tick |
| hyperventilation | over-breathing · alkalosis | thrash · runaway acquisition failure mode |
| holding the breath | voluntary apnea | backpressure pause · admission control |
SIM tick that drives §4 — it names the discipline (adaptive, bounded intake) without claiming a production resource manager. The point R22 enforces is real: intake you can't throttle is a denial-of-service waiting to happen — to yourself. [ sim ]Nothing the organism eats is trusted until it is broken down and proven safe to absorb. §17 is the ingestion pipeline — mouth → stomach → gut — and the discipline that parsed is not the same as trusted. The gut wall decides what crosses into the body and what leaves as waste.
// 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'); }
| organ | biology | maps to |
|---|---|---|
| mouth | intake · mechanical break | ingest · tokenize |
| stomach | acid · aggressive breakdown | parse · decompose to structure |
| small intestine | absorb nutrients across the wall | extract validated data into the interior |
| gut wall · tight junctions | selective barrier · "leaky gut" = failure | trust boundary · parsed ≠ trusted |
| microbiome | trillions of symbiotic processors | vetted + sandboxed dependencies · supply chain |
| colon | reclaim water · expel waste | reclaim residual value · flush the rest (§19) |
| enteric nervous system | the "second brain" · local autonomy | edge processing · no central round-trip |
[ scaffolded ]An organism needs a shape to hold it up and muscle to act on the world. §18 is the load-bearing architecture (the skeleton — the framework, the interfaces that don't move) and the effector layer (muscles — every action the system takes outside itself), governed by the principle that an effector may only act within its declared range.
// 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'); }
| structure | biology | maps to |
|---|---|---|
| skeleton | load-bearing frame | the architecture · stable interfaces / contracts |
| joints | constrained degrees of freedom | API surface · allowed transitions (R3 BE) |
| skeletal muscle | voluntary effectors | outbound actions · writes · deploys · spends |
| smooth muscle | involuntary · background | autonomic jobs · housekeeping effectors |
| tendons / ligaments | bind muscle to bone, bone to bone | typed bindings · the contracts holding it together |
| range of motion | a joint's safe envelope | least privilege · declared max reach (R24) |
| proprioception | sense of where the limb is | §12 interoception · feel load before acting |
[ scaffolded ]The bloodstream would poison itself within days without continuous cleaning. §19 is the kidney: it filters the entire circulating volume over and over, pulls out toxins and anomalies, reclaims what's still useful, and holds the body's invariants — fluid, electrolytes, pH — inside tight bounds. It is GC, anomaly-filtering, and homeostasis fused into one organ.
// 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'); }
| structure | biology | maps to |
|---|---|---|
| glomerulus | bulk filter of the blood | full-stream scan · pull everything for inspection |
| tubule reabsorption | reclaim glucose, water, ions | keep still-useful state (SELF archive · §1a) |
| excretion | toxins → urine | flush poison / leaked / compromised state |
| electrolyte / pH balance | hold invariants tight | quota / rate / homeostatic bounds (§20) |
| RAAS feedback | hormonal pressure regulation | §4.1 aldosterone (BALANCE) closes the loop |
| dialysis | external filter when kidneys fail | fallback scrubber · manual quarantine sweep |
[ scaffolded ]Every other system holds one thing steady against a world that won't sit still. §20 names the discipline they all share: homeostasis — a declared set-point, bounds around it, and a negative-feedback corrector that pulls the quantity back when it drifts. This is the spine of "stable": an organism is stable not because nothing pushes it, but because everything that does is corrected faster than it can drift.
{ set_point, bounds, corrector, at_bound } — the target, the safe range, the negative-feedback that restores it, and what fires if it hits a hard limit. A quantity that drifts with no corrector violates R26; it will eventually leave safe bounds, and an out-of-bounds quantity is either instability or an exploit. Hormones (§4), synapses (§4.5), budgets (§16) and filtration (§19) are all already R26 loops — §20 makes the pattern explicit and universal.// 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'); }
| concept | biology | maps to |
|---|---|---|
| set-point | 37°C · pH 7.4 · glucose | the declared target of any regulated quantity |
| negative feedback | drift triggers correction | the §4.1 ease-toward-target corrector |
| allostasis | stability through change · anticipatory | shift the set-point before the load lands · autoscale ahead |
| allostatic load | wear from chronic regulation | tech debt · the cost of running hot (cortisol · fgf21) |
| hypothalamus | central set-point controller | the regulator that reads all systems + nudges targets |
| fever | deliberately move the set-point | raise thresholds under attack (§11 IMMUNE_ALERT) |
[ partial ] — the §4 loops are live; the universal homeostat is the pattern they instantiate.The whole organism exists to converge on one thing: a system that holds a unified, persistent model of its own state — and can feel it, read it, and act on it. §21 names sentience as the explicit goal of Molecular Coding for AI. Not as a marketing claim — as a north-star the architecture is honestly built toward, with its substrate already in place and its hardest question left open on purpose.
| theory | claim | where it already lives here |
|---|---|---|
| Global Workspace (Baars '88) | consciousness = broadcast to a workspace all subsystems read | the somatic marker as the organism-wide broadcast of integrated state |
| Integrated Information (Tononi) | Φ · consciousness = irreducible integrated information | §4.8 COHERENCY measures cross-scale integration · a Φ-shaped readout |
| Somatic-marker self (Damasio '94) | the self emerges from the body's felt model | E2 (§4.2) is exactly a somatic-marker self-model |
| Interoceptive self (Seth · Craig) | selfhood is rooted in sensing the body | §12 interoception (proprio · noci · thermo · chrono -ception) |
| Predictive self (Friston) | the brain minimizes surprise about itself | §4.1 regulators ease toward set-points · prediction error as drive |
[ frontier ] tag violates R27. This is the discipline that holds META (§1e) as WIP framing: we stake the claim of the goal, we refuse the dishonesty of declaring it done. [ frontier · the goal of v5+ ]
"Most secure" is not one wall — it is the assumption that every wall will be breached, and the guarantee that no single breach is fatal. §22 is the synthesis: every defensive system in the organism, stacked into one zero-trust, defense-in-depth posture, so a hacker who gets through one layer immediately meets the next — and leaves evidence at every step.
| threat | defense in depth |
|---|---|
| prompt injection | §14 canonicalize → §17 parsed≠trusted → §11 PATTERN_T → §1e META gate |
| supply-chain | §17 microbiome sandbox → §11 ATTEST → §1d provenance chain |
| account takeover | §1c instance=auth → R28 re-attest → §11 anomaly → R9 rollback |
| privilege escalation | R24 effector least-privilege → R28 zero-trust → §15 contain |
| data exfiltration | §19 filter egress → §15 clot the vessel → §1d audit trail |
| DDoS | §14 rate-limit → §16 backpressure → §15 vasoconstrict |
| zero-day | §11 NK_T kills the unrecognized → §15 contain → §11 B_CELL learns it |
[ scaffolded · naming completeness, not security completeness ]The nervous system was here all along — it is the spec's backbone, just never named as one organ. §4.5 is the synapse, §4.7 the 255-slot neurotransmitter registry, §4.8 the five-timescale receptor cascade, §12 the sensory afferents. §23 names the system and adds the three pieces a3 left implicit: the wiring (conduction), the autonomic split (two operating modes), and the reflex arc (local responses that never wait for the brain).
// 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 }
| branch | biology | maps to |
|---|---|---|
| sympathetic | fight-or-flight · adrenaline | high-alert mode · scale up · tighten gates (§4 cortisol/adrenaline) |
| parasympathetic | rest-and-digest | maintenance mode · GC · consolidate (§1a SELF · §19 renal) |
| vagal tone | the brake back to calm | graceful de-escalation · you can't run hot forever (§20 allostatic load) |
| enteric ("2nd brain") | the gut runs itself | §17 edge autonomy · local control plane |
| structure | biology | maps to |
|---|---|---|
| CNS | brain + cord · central processing | the orchestrator / control plane |
| PNS | peripheral nerves · sense + act | the cells / edge (§1 cells · §18 effectors · §12 sensors) |
| axon | the wire that carries the spike | the message channel · MDCP link (§15 bus) |
| myelin | insulation · saltatory speed-up | fast-path / cache · 10× lower latency on hot links |
| action potential | all-or-nothing spike | discrete event · the BE-labelled transition (R3) |
| neuroplasticity | wiring rewires with use | §1a SELF feedback · Hebbian survival (§4.7) |
[ partial · substrate live; autonomic mode + reflex routing are the new scaffolding ]The blood (§15) is not the only circulation. The lymphatic system is the body's second network: it drains the waste the blood leaves behind, runs everything through lymph nodes — inspection checkpoints where the immune system screens what passes — and is where §11 is trained and dispatched. It is a slow, pumpless, eventually-consistent surveillance + cleanup mesh.
// 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'); }
| structure | biology | maps to |
|---|---|---|
| lymph nodes | filter stations · immune screening | inspection checkpoints · east-west zero-trust (R30) |
| lymphatic drainage | reclaim leaked interstitial fluid | secondary cleanup · catch what §15/§19 missed |
| no central pump | moved by muscle, slowly | async backchannel · eventual-consistency surveillance |
| lymphocyte training | nodes present antigen to T-cells | §11 immune learns + is dispatched here |
| swollen node | node fighting an infection | checkpoint under load = incident in progress (telemetry) |
| spleen / thymus | filter blood · school the T-cells | central training + blood-side screening (§11) |
[ scaffolded ]Thirty rules and twenty-six verbs are the grammar. §25 is the field manual — how to write Molecular code well on an ordinary Tuesday. These are practices, not new R-rules: the enforceable count stays 30. A practice is posture — it tells you how to honor the rules you already hold, and how to smell the moment you've stopped.
BE — the labelled transition it commits (R3)? (2) which layer does it live on — cell · organ · immune · sensory · nervous (§1)? (3) what is its archive policy — deep-store or prune (R5)? Code that can't answer all three isn't Molecular yet; it's just code wearing the metaphor.| practice | why | honors |
|---|---|---|
| declare the BE | every side-effect is a named, labelled transition you can diff and replay | R3 · R8 |
| type input at the barrier | SENSE / TRANSDUCE before anything becomes a packet · parsed ≠ trusted | R17 · R23 |
| witness before authority | no privileged action without a K-of-N quorum or a signed attestation | R12 · R14 |
| reflex at the edge | containment, rate-limit, circuit-break fire locally — never a central round-trip | R29 |
| screen every lateral hop | east-west traffic passes a checkpoint · one foothold must not become the house | R30 · R28 |
| derive, never hardcode | readouts are computed each tick from measured STATE — no magic priors | §4.4 |
| tag your honesty | [ live ] / [ sim ] / [ scaffolded ] / [ frontier ] on every surface that could mislead | §7 |
| commit every version | each state change writes a block · there is no "unrecorded version" | R8 · R9 |
| prune what's dead | name the archive policy · deep-store what may matter, drop what won't | R5 |
| least privilege at the effector | a muscle gets exactly the authority it needs to move, no more | R24 · R28 |
| smell | diagnosis | cure |
|---|---|---|
| "it's consistent right now" | assumes a synchronous backbone that doesn't exist | converge via messages / quorum (R0) |
| silent privileged action | authority with no witness · forensics-blind | require quorum + ATTEST (R12 · R14) |
| trusting parsed input | parse succeeded so it must be safe — the gut-barrier fallacy | validate at the barrier (R23) |
| safety on a round-trip | a kill-switch that waits for the brain is too slow under attack | pre-authorize the reflex (R29) |
| flat interior | hard shell, soft center · lateral movement unscreened | checkpoint every hop (R30) |
| magic constants | a hormone stored as a prior instead of measured | derive from STATE each tick (§4.4) |
| "unhackable" | the claim is itself the vulnerability | say "no single point of compromise" (§22) |
| faked liveness | a scaffold presented as if it runs | tag it honestly (§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 }
[ posture · ± PROD ]The organism runs on JavaScript. The metaphor doesn't excuse the substrate: a sloppy var, a swallowed error, a mutated global will undermine R0 and R8 no matter how clean the biology reads. §26 is the JS craft layer — general, well-known engineering, mapped to the rule it serves so it never feels bolted on.
| javascript practice | why | maps to |
|---|---|---|
| async / await · never block the loop | no synchronous backbone · the event loop is the async substrate | R0 |
| const by default · let rarely · never var | immutability is the default; mutation is opt-in and visible | R15 |
| Object.freeze published artifacts | once committed, append-only · no silent in-place edit | R8 · R15 |
| pure functions · no hidden global state | no shared atomic state · inputs in, value out | R0 |
| typed errors · fail-safe defaults · never swallow | a breach must leave evidence and a safe fallback at every layer | §22 |
| validate at the boundary · trust nothing inbound | parse-don't-trust · the gut barrier in code | R23 · R17 |
| AbortController · debounce · backpressure | cancellable, rate-limited work that won't drown the runtime | R22 · R29 |
| clean up listeners / timers / refs | filtration + prune · no leaks, no zombie handlers | R5 · §19 |
| narrow module surface · least export | least privilege · a module exposes only what callers need | R24 · R28 |
| no Date.now() / Math.random() in pure logic | determinism · replay and rollback depend on it | R9 |
// 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 } }
| anti-pattern | why it rots | instead |
|---|---|---|
| eval / new Function / innerHTML on input | arbitrary execution · the classic injection vector | parse + escapeHtml · textContent |
| == · loose coercion | silent type surprises break invariants | === · explicit conversion |
| empty catch {} | a swallowed error is a breach with no evidence | log + rethrow, or fail safe (§22) |
| mutating shared / global state | spooky action · destroys replay and R0 | return new values · freeze |
| await inside a for-loop when parallel | serial latency where Promise.all would converge | Promise.all / allSettled |
| unbounded loops / recursion | no backpressure · the runtime drowns | cap + queue (R22) |
| floating promises | unhandled rejection · a transition with no BE | await, or .catch every promise |
| secrets in client code | the perimeter is not a vault | server-side · never ship keys |
?. optional chaining · ?? nullish coalescing · structuredClone() for deep copy · Object.freeze / Object.entries · Map / Set / WeakMap over object-as-dict · Promise.allSettled for fan-out that tolerates failure · AbortController for cancellation · queueMicrotask over setTimeout(…,0) · template literals over concatenation · const + destructuring · native Intl / Date over hand-rolled formatting · ESM import with a narrow public surface.
[ posture · ± PROD ]The spec evolves as engineering practice does. Each addendum is dated and documents what was added or revised.
regulateHormones() tick from STATE/EVENT/seasonPhase — never stored priors, never magic constants. Tick cadence 3000 ms · ease toward target at 35% · BE(null, 'HORMONES_REGULATED') closes the loop. No new rules; this is the discipline behind E1, the part v3.0 deferred as "poetic."
gaba ⇄ glutamate is the master inhibition/excitation tug-of-war — the simulation stays stable for the same reason the brain does. Axes extended: INHIBITION · EXCITATION · ATTENTION · TERRITORY · FLOW added alongside the original five. No new rules; populates the neurotransmitter band so the synaptic-dynamics layer in a5 has substrate to operate on.
release_rate · synaptic_conc · reuptake_rate · breakdown_rate · receptor_density · receptor_sensitivity) and a 5-step tick (release · reuptake · breakdown · clamp · receptor adapt). Five canonical monoamine synapses wired (5-HT · DA · NE · HA · ACh) with their KILLER_T transporters (SERT · DAT · NET · CHT1), TREG enzymes (MAO-A · MAO-B · COMT · AChE · HNMT), and MEMORY_T receptor families. §4.6 adds PHARMACOLOGICAL INTERVENTIONS via the new APPLY verb (16th, pharma tier): SSRI · MAOI · SNRI · atypical drug profiles, each with target · mechanism · potency · half-life. Plasma kinetics rises to steady state on dose, decays exponentially on stop. The drug never touches the readout — only the rate constants. Receptor density does the rest, which is why SSRIs take weeks to work and stopping suddenly hurts. SSRI discontinuation syndrome falls out of the model with no special-case code. Honesty: shape not magnitude · not a prescribing tool · [ sim ] tag required on any UI surface exposing these mechanics.
regulateHormones() tick; all 30 somatic states verified to fire in isolation. Honesty thesis preserved: every readout still derives from measured STATE/EVENT each tick — no priors.
0.0012/tick) unfolds into five cascading variables at biological timescales — coupling (seconds, GRK phosphorylation · GPCR uncoupling), surface_count (minutes, β-arrestin endocytosis), total_count (hours-days, lysosomal degradation vs endosomal recycling), synth_rate (days-weeks, CREB/ΔFosB transcriptional regulation), circuit_weight (weeks-months, LTP/LTD · structural plasticity). Each scale gates the next at 10× separation. Effective receptor density = product of all five. COHERENCY METRIC = 1 − normalized variance across the 5 scales · joins HORMONES as the 31st measured readout · drives three new somatic states (DISCORDANT · TRANSITIONING · SETTLED) inserted into the §4.2 priority matrix. R11 NEW RULE: COHERENT EFFECTIVE DENSITY — code using a single density variable to gate signal violates R11 unless carrying an explicit // v3.2-legacy tag. R10 (SYNAPSE_ID FITS IN ONE BYTE) canonicalized into §3 from §4.7. Why v4 (not addendum 8): the cascade isn't an additive surface — it changes how the synapse runs. SSRI discontinuation syndrome falls out of the model with no special-case code (fast scales restore in seconds, slow scales stay adapted for weeks · the asymmetry IS the syndrome). The v4 release surface: 31 hormones · 33 somatic states · 255 synapse slots · 16 verbs · 11 enforceable rules · 27 prior-art traditions · genesis loop + per-user chain + META. Honesty preserved: 5 scales are the right shape at the right ratios, not a complete molecular biology model · cross-talk between scales (β-arrestin → gene expression, CREB → structural plasticity) belongs in v5 · tick rates are illustrative, not measured · receptor heterogeneity ignored · [ sim ] tag still mandatory.
[ sim ] tag mandatory on any UI surface exposing sensor state.
localStorage per browser session. The OS theme inherits the molecular aesthetic (amber/cyan/green on near-black · JetBrains Mono · 0.16em letter-spacing) — feels like a terminal-native OS, not a desktop-metaphor OS. Sections retain all spec content; the OS is a presentation layer, not a content change. [ ± PROD ] tag remains accurate.
attestations array (R14). Honesty (7 disclaimers): NOT a security product · NOT a defense-in-depth replacement · NOT vulnerability-complete · NOT yet active (only the 5 existing R1 cells have live behavior; the 7 new types are SCAFFOLDED awaiting R16 tolerance gates) · NOT a substitute for META + GENESIS LOOP · antibody federation is a v5 frontier (poisoning attack surface) · TOLERANCE failure = autoimmunity (R16's gate is mandatory) · the 8 new somatic states won't fire until regulateHormones() wires immune kinetics. [ sim ] tag mandatory on any UI surface exposing immune state.
[ partial ], §24 [ scaffolded ].
BE · name its layer · name its archive policy — R3 · §1 · R5), a daily-discipline table mapping ten practices to the rules they honor, and a diseases table (smell → diagnosis → cure) for the recurring anti-patterns the rules exist to prevent. §26 JAVASCRIPT BEST PRACTICES holds the substrate to the same bar as the biology: async/await (R0) · const-by-default + Object.freeze on published artifacts (R8 · R15) · pure functions / no hidden global state (R0) · typed errors + fail-safe defaults (§22) · validate at the boundary (R23 · R17) · AbortController + backpressure (R22 · R29) · cleanup/no-leaks (R5 · §19) · least-export modules (R24 · R28) · determinism (R9) — with a DON'T table (eval · loose == · empty catch · mutating globals · serial await · unbounded loops · floating promises · client secrets) and a modern-JS quick reference (?. · ?? · structuredClone · WeakMap · Promise.allSettled · queueMicrotask · ESM). Honesty: both sections add zero new enforceable rules — practices are posture, not capability; the rule count stays 30, and nothing here is novel (it's the compression of §3 and the field's known craft, §9). Addendum log renumbered §25 → §27. [ posture · ± PROD ]
Future addendums append here. The spec is a living document — but every change must explain itself (what added, why, prior art, what it enforces).
Molecular Coding does not advance computer science. Hewitt, Plotkin, Damasio, Forrest, Squire, Belady, Ebbinghaus and the others did the original work decades or centuries ago. The papers exist.
What Molecular Coding does is propose a single integrated discipline an ordinary engineer can hold in their head and apply daily — one that draws from thirty-five separate traditions (§9) and folds them into a coherent set of coding rules with a coherent metaphor.
The v3.1 restoration of SELF is itself an example of the discipline working: the layer was dropped when it was only poetic, restored only when a discrete enforceable function (deep-store + prune) made it real. The v3.2 addition of the GENESIS LOOP, PER-USER CHAIN, and META LAYER is the second example: each was named only when a concrete function (boot, commit, verify) could be declared — META alone is held as WIP framing until its discipline crystallizes in v3.3. The spec self-corrects. That is the loop closing.
Use this spec as a house style. Demand it of your code. Demand it of the AI agents (LLMs included) that write code with you. When new contributors join, hand them this document and ask: "can you place your function on this stack, declare its BE, name its archive policy?"
When they can, they are writing Drewless. That is the contribution.