Anatomy of a Digital Organism

Every RAPP install is a living thing. It has DNA, a soul, organs, senses, memory, and โ€” when it grows up โ€” skin. This page maps the biology onto the code. Click any layer in the diagram to inspect its definition.

Companion to the vault note Rapplications Are Organisms โ€” collapsing a false distinction.

Digital organism cross-section Concentric layers of a RAPP digital organism โ€” egg cartridge, skin (UI), membrane (process boundary), soul (system prompt), organs, senses, memory, sub-cells, and DNA (kernel). .egg cartridge portable form โ€” travels via AirDrop, catalog, USB SKIN โ€” the UI bundle (rapp_ui/) the visible face. what makes a "rapplication" earn its name. membrane โ€” port + venv (process boundary) SOUL ยท soul.md personality / system prompt ORGANS utils/organs/*_organ.py /api/<name>/<path> internal HTTP handlers โ€” dispatchable musculature SENSES utils/senses/*_sense.py |||VOICE||| |||TWIN||| per-channel output overlays โ€” perception channels CELLS โ€” sub-organisms agents/*_agent.py + rapplications hosted inside each carries its own rappid โ€” recursion lives here MEMORY ยท .brainstem_data/ accumulated state โ€” what the organism has lived through DNA โ€” the kernel brainstem.py ยท drop-in replaceable the runtime any organism's egg can hatch into

Kernel โ†” DNA

brainstem.py
The runtime that any organism's egg can hatch into. Drop-in replaceable per Constitution Article XXXIII. Never edited by AI assistants. The kernel evolves under the organism, not the other way around.

Soul โ†” Mind / personality

soul.md
The system prompt loaded on every chat turn. What makes BookFactory-the-organism different from a generic agent runtime. An organism at any scale can have its own soul.

Organs โ†” Internal musculature

utils/organs/*_organ.py
Single-file HTTP route handlers โ€” name + handle(method, path, body) โ†’ (dict, status). Dispatched at /api/<name>/<path>. Organs serve UIs; agents serve LLMs. They never overlap.

Senses โ†” Perception channels

utils/senses/*_sense.py
Per-channel output overlays (delimiter + response_key + wrapper_tag + system_prompt). How LLM output gets routed to chat / TTS / twin / future surfaces. |||VOICE||| and |||TWIN||| are kernel-shipped; more come from the sense store.

Cells โ†” Sub-organisms

agents/*_agent.py + hosted rapplications
Smaller organisms living inside the body. Each carries its own rappid, can be eggified, can be transplanted. The recursion lives here โ€” an organism contains organisms, all the way down to bare single-celled agents.

Memory โ†” Lived experience

.brainstem_data/
Everything the organism has accumulated โ€” chat tabs, frames, binder state, per-rapp cartridges, twin observations. Travels in the egg; survives every kernel bond.

Skin โ†” Visible outer layer EARNS THE TIER

.brainstem_data/rapp_ui/<id>/
The UI bundle โ€” the organism's face, what the user sees and recognizes. The line that separates a bare agent from a graduated rapplication. A skinless organism is single-celled โ€” useful, but only invokable through the host's mouth (chat). Skin lets the world point at it directly.

Egg โ†” Portable cartridge

brainstem-egg/2.2-organism (zip + manifest)
The form an organism takes when it travels. Schemas at three scales: rapplication, twin, organism. Recovery checkpoints, AirDrop transports, catalog distribution units โ€” same format, different scope.

Membrane โ†” Cell wall / process boundary

port + venv + filesystem scope
What separates one organism's territory from another's on the same device. Instance-scope organisms each get their own port; cell-scope sub-organisms share their host's membrane and live inside its process.

The recursion

The category is recursive: an organism contains organisms. A bare agent is single-celled. A rapplication is a cell that has grown skin. An entire brainstem instance is a body hosting many cells โ€” its own DNA, its own soul, and a colony of sub-organisms inside. Same protocol at every scale.

A host organism containing three sub-organisms host organism (instance) ~/.brainstem ยท rappid:v2:hatched:@local/... RAPP bookfactory_agent.py + ui/ (skin) graduated ยท cataloged RAPP workiq_agent.py + ui/ AGENT hacker_news single-celled (no skin) RAPP_Store (has skin) RAPP_Store (has skin) RAR (skinless)
"Skin is the criterion that makes 'rapplication' earn its name. A bare agent is a single-celled organism โ€” internal, functional, but skinless. A rapplication has its own face โ€” what the world sees and recognizes. That's why a rapplication needs more than a .py: a graduated organism requires skin."