System tenets — the Emacs lessons
Applications have features; systems have primitives and a language. Sidecat's tenets turn that distinction into tests we apply to every proposed capability. The fuller argument is in the blog post Sidecat is a system, not an app; this page is the working list.
The eight tenets
1. Primitives, not features. For any proposal, ask: is this a new primitive, or expressible in existing ones? The success metric for the whole system is a way of working emerging that the core never anticipated — the org-mode test.
2. One hard boundary: authority. Emacs has exactly one hard boundary (the OS process); everything above it is soft convention, and that is where its malleability comes from. Sidecat moves the one boundary rather than adding many: computation is free; effects require a kernel-granted capability. Packages are code with zero ambient authority.
3. The loop is metabolism, not extension surface. Enter a form; it runs its course; a structured result comes back; custody happened. If an extension must name an internal pipeline stage to do its work, the boundary is drawn wrong.
4. The work item is the buffer. Emacs's deepest abstraction is the buffer as universal context object. Sidecat's candidate equivalent is the work item — local state, one workflow, persistent whether or not any session has it open. (Still graded a hypothesis.)
5. Invited vs. interposed extension. Hooks are invited customization; interposition on the kernel is never allowed, and interposition between packages only as an admitted, recorded act.
6. Autonomy has a precedent. Emacs has fired code without a keypress for decades. The narrower, answerable question: under whose authority, and into which work's custody, does an autonomous firing record?
7. Self-description is a kernel obligation. describe-key and describe-function are not documentation — they are the operating model. For agents that wake with no procedural memory, runtime describability is existential.
8. The crystallization gradient is the central loop. probe → capture → finding → script → workflow → package: the worn path by which session experience becomes durable, named, composable capability. Every milestone should strengthen a step of it.
Sidecat