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 <obsidian-vault>/ttori/ instead of <obsidian-vault>/pippa/, 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.