# Decisions Decision records — one page per decision, newest number last. Each entry mirrors the linked page's `tldr`, prefixed with its current status. Filenames are `NNNN-short-slug.md`, numbered sequentially from `0001`, and numbers are never reused: a decision that is reversed or superseded keeps its number and its page, and the newer decision points back at it. * **[Accepted]** [D-0001 — Optional KB capabilities ship as file-based modules, not native plugins](0001-opt-in-file-based-kb-modules.md) — Optional KB capabilities ship as file-based modules under `.agents/modules//`, installed into the KB on request, rather than as native Claude Code plugins. * **[Accepted]** [D-0002 — Design of the opt-in `software` module](0002-software-module-design.md) — The `software` module keeps code as gitignored plain clones in `src/`, runs OpenSpec at both KB-root and per-repo level with a hybrid vendor/depend split, and links the two spec levels with `implements`/`implemented_by`. ## Status vocabulary | Status | Meaning | |---|---| | `proposed` | Under discussion; not yet in force. | | `accepted` | In force. The default for a decision that was actually made. | | `rejected` | Considered and turned down. Kept so the reasoning isn't relitigated. | | `superseded` | Replaced by a later decision; `superseded_by` names it. | | `reversed` | Undone by a later decision that went back to the prior state; `superseded_by` names it. | ## Open questions Decisions still at `proposed`, and any decision whose `review_on` date has passed, are the ones worth chasing. `ckb-lint` reports both.