principles · 06

Code and client data live in different repositories

The engine is one repo. Every install's data is a separate vault the engine reads through an environment variable. They are never mixed.

[DRAFT]The rule is settled. This wording has not had a voice pass.

The engine — agents, commands, rules, scripts, the dashboard — is one codebase. The data — configurations, voice rules, drafts, notes, logs — lives in a separate vault directory, resolved through an environment variable and versioned on its own.

Nothing about a client is ever committed to the engine repository. Not a config, not a draft, not a name in a comment.

This buys three things:

The unglamorous rule underneath: a system that keeps other people’s material has to be able to state, structurally rather than aspirationally, where that material is.