Generated
Architecture decisions
The significant design decisions behind Oaken Core, in the order made.
1
Decisions
An architecture decision record (ADR) captures one significant decision, why it was made, and what follows from it. Records are never rewritten; a later record supersedes an earlier one.
| # | Decision | Status | Date |
|---|---|---|---|
| 0001 | Record architecture decisions | accepted | 2026-10-20 |
| 0002 | One core daemon with thin clients | accepted (the MCP part is superseded by ADR 0004) | 2026-10-20 |
| 0003 | SQLite access: aiosqlite with a write broker and a read pool | accepted | 2026-10-20 |
| 0004 | The MCP server is part of core | accepted | 2026-10-20 |
| 0005 | The HTTP stack and how the local API defends itself | accepted | 2026-10-20 |
| 0007 | Core stays headless; a UI is a separate client | accepted | 2026-10-20 |
| 0010 | The stable surface, its versioning and how it is protected | accepted | 2026-10-22 |
| 0011 | Service units: a dependency-ordered build/start/stop for the composition root | accepted | 2026-10-22 |
| 0012 | Plugin extension hooks: job kinds, pipeline stages and scheduled tasks | accepted | 2026-10-22 |
| 0016 | A plugin owns its operations, its small store and its wizard commands | accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0) | 2026-11-03 |
| 0017 | Triagers and enrichers are separate kinds | accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0) | 2026-11-03 |
| 0018 | A web UI contract for plugins: settings, pages and wizards from data | accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0) | 2026-11-03 |
| 0019 | The kinds of analyzer: enrich, triage and action, and the attachment lane | accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0; decision 5 is superseded by ADR 0020) | 2026-11-03 |