The split
cwkPippa is a soul-agnostic platform. The body is the codebase: routes, store, adapters, frontend, heartbeat, council. The soul is the vault: identity, voice, memories, principles, character.
Why this works
The body doesn't change when the soul does. Pippa's chat UI, JSONL ground truth, healing layer, all the way down to the SQLite schema — all soul-neutral. The soul lives in the system prompt (via ContextEngine) and in the avatar art (via the soul's avatar directory).
Concrete swap test
Point ContextEngine at instead of , swap the avatar directory, and the chat that appears speaks like Ttori — different voice, different character, same body underneath. The thing that emerges is a different person.
The principle: Identity in software is usually fused into the codebase by accident. Naming, defaults, hardcoded prompts, copy. cwkPippa pulled them apart on purpose. The result is a framework, not a one-off chatbot.