<!-- Generated by os-adr. Do not hand-edit the table: it is regenerated in full on every ADR write. -->
# Architecture Decision Records
One file per decision, `NNNN-kebab-title.md`, created via `/os-adr:create`.
<!-- adr-index:begin -->
| ID | Title | Status | Date |
| --- | --- | --- | --- |
| 0001 | [Two memory types, kept as separate systems](0001-two-memory-types-kept-as-separate-systems.md) | Accepted | 2026-06-03 |
| 0002 | [memsearch for the episodic layer](0002-memsearch-for-the-episodic-layer.md) | Accepted | 2026-06-03 |
| 0003 | [Flat vault with namespaced tags, not folders](0003-flat-vault-with-namespaced-tags-not-folders.md) | Accepted | 2026-06-03 |
| 0004 | [SQLite + Sequel (Ruby) tag index as the knowledge-layer cache](0004-sqlite-sequel-ruby-tag-index-as-the-knowledge-layer-cache.md) | Superseded | 2026-06-03 |
| 0005 | [Structured-first; semantic search over the vault deferred](0005-structured-first-semantic-search-over-the-vault-deferred.md) | Superseded | 2026-06-03 |
| 0006 | [QMD as the (deferred) semantic-over-knowledge layer](0006-qmd-as-the-deferred-semantic-over-knowledge-layer.md) | Superseded | 2026-06-03 |
| 0014 | [Graph connectivity comes from authored structure; migration scaffolding is a first-class prerequisite](0014-graph-connectivity-comes-from-authored-structure-migration-scaffolding-is-a-first-class-prerequisite.md) | Accepted | 2026-06-05 |
| 0015 | [memsearch episodic memory version-controlled in a dedicated private repo, auto-synced via cc-os SessionEnd hook](0015-memsearch-episodic-memory-version-controlled-in-a-dedicated-private-repo-auto-synced-via-cc-os-sessionend-hook.md) | Accepted | 2026-06-09 |
| 0017 | [Project graph onboarding assesses the repo and writes `.graphifyignore` before extracting](0017-project-graph-onboarding-assesses-the-repo-and-writes-graphifyignore-before-extracting.md) | Accepted | 2026-06-17 |
| 0018 | [Plugin renames must update the marketplace manifest, not just the directory and settings.json](0018-plugin-renames-must-update-the-marketplace-manifest-not-just-the-directory-and-settings-json.md) | Accepted | 2026-07-03 |
| 0023 | [Backlog process management ships as a new `os-backlog` plugin (not an os-vault extension)](0023-backlog-process-management-ships-as-a-new-os-backlog-plugin-not-an-os-vault-extension.md) | Accepted | 2026-07-10 |
| 0024 | [Apprise replaces Pushover as the notification transport (supersedes the Pushover-direct plan)](0024-apprise-replaces-pushover-as-the-notification-transport-supersedes-the-pushover-direct-plan.md) | Accepted | 2026-07-10 |
| 0030 | [Read-only work uses Claude Code plan mode; no /readonly shortcut command](0030-read-only-work-uses-claude-code-plan-mode-no-readonly-shortcut-command.md) | Accepted | 2026-07-13 |
| 0037 | [os-sdlc lives inside cc-os as a new plugin, not a separate cc-sdlc marketplace](0037-os-sdlc-lives-inside-cc-os-as-a-new-plugin-not-a-separate-cc-sdlc-marketplace.md) | Accepted | 2026-07-14 |
| 0038 | [Per-project doc-hygiene rulebook override lives at repo-root .dochygiene-rules.json, not in .cc-os/](0038-per-project-doc-hygiene-rulebook-override-lives-at-repo-root-dochygiene-rules-json-not-in-cc-os.md) | Accepted | 2026-07-14 |
| 0039 | [Doc-hygiene deletion autonomy is tiered on evidence quality and recoverability, not file type](0039-doc-hygiene-deletion-autonomy-is-tiered-on-evidence-quality-and-recoverability-not-file-type.md) | Accepted | 2026-07-14 |
| 0040 | [Doc-hygiene rules never write other tools' ignore surfaces (no propagate_ignore)](0040-doc-hygiene-rules-never-write-other-tools-ignore-surfaces-no-propagate-ignore.md) | Accepted | 2026-07-14 |
| 0042 | [Retire Planka: git issues are the single tracker for state and specs](0042-retire-planka-git-issues-are-the-single-tracker-for-state-and-specs.md) | Accepted | 2026-07-16 |