Architecture decisions
Every decision that binds the implementation, one record per page. This index is generated
from the files in notes/adr/ at build time - it is never hand-maintained
(AGENTS.md rule 2).
See the process for when an ADR is required and how to write one.
| # |
Decision |
Status |
Resolves |
| 0001 |
One scene tree, two renderer backends |
Accepted |
D8 |
| 0002 |
Themes are VS Code colour themes; profiles bundle them |
Accepted |
— |
| 0003 |
The modification surface is one API for every caller |
Accepted |
— |
| 0004 |
The agent pipeline is harness-agnostic |
Accepted |
— |
| 0005 |
Configuration lives in files, data lives in PGlite |
Accepted |
D2 |
| 0006 |
One context fragment normal form, addressed by URI |
Accepted |
— |
| 0007 |
Every mutating VCS operation is invertible from an operation log |
Accepted |
— |
| 0008 |
Task identity is the hash of its inputs |
Accepted |
— |
| 0009 |
Content-addressed storage: BLAKE3, FastCDC, convergent encryption |
Accepted |
— |
| 0010 |
Secrets never touch disk in plaintext, and never enter agent context |
Accepted |
— |
| 0011 |
Omnis is a kernel: bind existing services rather than reimplement them |
Accepted |
— |
| 0012 |
The system is one declarative configuration, applied as generations |
Accepted |
— |
| 0013 |
Subsystems run beside the core, never inside it |
Accepted |
— |
| 0014 |
Guest environments are host-level siblings of the core |
Accepted |
— |
| 0015 |
Remote access is a web surface over Tailscale |
Accepted |
— |
| 0016 |
Hosts are declared execution targets, and processes are placed on them |
Accepted |
— |
| 0017 |
The TUI is dropped as a surface |
Accepted |
— |
| 0018 |
Services are backends of domain subsystems |
Accepted |
— |
| 0019 |
Native surfaces are delegated regions the compositor does not own |
Accepted |
— |
| 0020 |
Documentation is generated from the option schema and lives in the product |
Accepted |
— |
| 0021 |
One input bar, one navigation model, everything addressable |
Accepted |
— |
| 0022 |
Self-optimisation is the system proposing generations against itself |
Accepted |
— |
22 records — 22 accepted, 0 proposed. Records are append-only: a decision that turns out wrong is superseded by a new one, never edited away.