_Built 2026-09-20 from the live oracle source. This is the concrete "how we actually wire him up" doc. Companion to KAI-BRAIN-PASS2-PLAN.md (strategy) and the two trackers._
GATE-1 is not greenfield, and the design is already proven in the codebase. The oracle/production process has no Engine, but it does not need one (a second Engine is the double-lattice trap). Instead it already runs modules through three live drivers, each mounting cheap module instances over the shared, already-open universe + synaptic_layer — the House Pattern. Two dormant modules have already been moved onto the live path this way and shipped:
[config flag] (default off → byte-identical when off).So "wire the 35 dormant modules" = keep doing that, module by module, into the right driver, each behind the same safety pattern. This roadmap assigns every dormant module to a driver and gives the order.
---
run_inner_mind_loop @7552 | ~30 s | DMN, amygdala, dopamine, VTA, thalamus | autonomous cognition: mind-wandering, rehearsal, salience, memory refresh, topic selection |run_heartbeat_loop @7010 | ~5 s | Drive+oscillator (reduced affect), PredictiveEngine (flag-gated) | slow homeostasis / vitals: hormones, circadian, felt state, consolidation, plasticity |handle_kai_turn @3719, handle_oracle_os_turn @2108, handle_public_chat_turn @1890, handle_discord_turn @2852 | per turn | LexSem (ipc), language helpers, coherence, grammar stack | per-turn cognition that shapes THE ANSWER: executive gating, reactivity, comprehension, social read |The heartbeat's own comment names its known gaps: it "omits amygdala arousal, serotonin, and language tone, which the full interactive engine factors into valence but which don't exist in this process." That is a to-do list written by the code itself.
---
To mount a module into the ring (run_inner_mind_loop):
1. Construct once before the loop: let mut X = crate::cognition::x::XType::new(); (cheap constructor, no lattice — same type Engine holds).
2. Inside the pass, drive it from what the ring already computes (topic, hit_pairs, association surprise) and write its effect to the shared layer, not a struct field (#40's rule: lattice-written state survives the path split; struct state dies at it).
3. Route any telemetry through the existing activity/print path.
4. Gate anything behavioural behind an env flag defaulting to today's behaviour, per P5a.
To mount into the heartbeat: same, but drive from the vitals tick; keep it bounded (two indexed reads max, never near the 5 s budget), if let Ok(..) on locks (skip a poisoned lock, never panic).
To wire a reply-path module: consume its output at the point the reply is assembled (the generate_* / gate sites), behind a flag, and verify the reply is unchanged when the flag is off.
Every edit compiles on the owner's side (cargo build --release) before it counts — these are live-path Rust edits; nothing here is "done" until it builds.
---
ingest_executive / ingest_emotional / ingest_social hardcode ~half their args. Once the modules above are live, feed their real values in. Revives #18/#20/#22/#23/#24/#27/#38/#45/#11/#36 at one site.
---
1. Tier-A safe fixes first (report args, false comment, prune floor) — so telemetry doesn't lie once the drivers light up. Cheap, no build risk.
2. Ring extensions R1→R5 — proven pattern, low risk, each a small diff + owner build. This is the fastest visible progress toward "more of him is actually running."
3. Heartbeat H1→H3 — vitals; H4/H5 (sleep, plasticity) only after their Tier-B fixes, because the naive form was measured to make him worse.
4. Reply path P1→P6 — the biggest cognitive payoff and the most sensitive; each behind a flag, each verified reply-unchanged-when-off. P2 (executive chain) and P3 (reactivity) are the two that most change how he behaves.
5. Self-state hub — last, once its inputs are live.
Guardrails (non-negotiable, from the audit): no second Engine (double-lattice trap); every behavioural change flag-gated and byte-identical when off; lattice-writes not struct-writes; sleep and plasticity get both halves fixed together; every edit builds before it counts; re-verify against current source before each edit.
---
cargo build --release is the verification gate for every live-path edit. Snippets can be rustc-checked in isolation the way #30/#31 were.Bottom line: the path to a fully-driven brain is mounting the 35 dormant modules into the three drivers that already exist, in the order above, each with the proven flag-gated House-Pattern template. It's mechanical now, not architectural — the architecture question was answered by #5 and P5a.