# Architecture Decision Records

ADRs capture the reasoning behind architectural choices so future changes
don't re-litigate the same debates or accidentally reverse a load-bearing
decision.

Format: lightly adapted from [Michael Nygard's ADR template](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions).

## Index

| #                                                                  | Title                                                               | Status                                                                   |
| ------------------------------------------------------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| [0001](./0001-three-model-triage.md)                               | CLI-aware parallel review with top-tier triage                      | Accepted (amended v5.2.2, v10.6.0 Fable)                                 |
| [0002](./0002-instruction-driven-flag.md)                          | instructionDriven flag as explicit pipeline fork                    | Accepted                                                                 |
| [0003](./0003-unified-shared-skills.md)                            | Unified `skills/shared/` for Claude Code + Copilot                  | Accepted (amended v5.3.3)                                                |
| [0004](./0004-zero-dependency-philosophy.md)                       | Keep the package zero-runtime-deps                                  | Accepted                                                                 |
| [0005](./0005-lazy-phase-docs.md)                                  | Lazy-loaded phase docs with per-phase token budget                  | Accepted (amended by 0014: eight phase docs became six)                  |
| [0006](./0006-skills-core-external-split.md)                       | `shared/core/` vs `shared/external/` source org                     | Accepted                                                                 |
| [0007](./0007-multi-tool-adapter-framework.md)                     | Multi-tool adapter framework + token-preserving uninstall           | Superseded by v10.7.0 (adapters removed; Claude Code + Copilot CLI only) |
| [0008](./0008-installer-modularization-and-secret-leak-defense.md) | Installer modularization + secret-leak defense                      | Accepted (amended v10.7.0: adapter module removed)                       |
| [0009](./0009-claude-stack-skills-plugin-only.md)                  | Claude Code stack skills are plugin-only; local copy retired        | Accepted (supersedes ADR-0006 install-destination clause)                |
| [0010](./0010-own-code-graph.md)                                   | Own code graph, referenced from graphify, not forked                | Accepted                                                                 |
| [0011](./0011-dormant-ci.md)                                       | CI dormant in-repo; pre-push gate is primary                        | Accepted                                                                 |
| [0012](./0012-macos-only.md)                                       | macOS only; Linux and Windows support removed                       | Accepted                                                                 |
| [0013](./0013-lsp-code-intelligence.md)                            | A language server for the answers regex cannot give                 | Accepted                                                                 |
| [0014](./0014-six-phase-consolidation.md)                          | Six phases, because two of the eight were doing the same work twice | Accepted (amended by 0015: the depth answer is removed)                  |
| [0015](./0015-one-pipeline-no-depth-answer.md)                     | One pipeline: the depth question is removed                         | Accepted (extended by 0016: the workspace and resume names go too)       |
| [0016](./0016-the-run-shape-is-asked-not-typed.md)                  | The shape of a run is asked, not typed into its name                | Accepted                                                                 |

## Writing a New ADR

1. Copy `0001-three-model-triage.md` as the template shape.
2. Increment the number.
3. Fill in: Context, Decision, Consequences, Alternatives.
4. Set status to `Proposed` in a PR; the merging reviewer flips it to
   `Accepted` once discussion closes.
5. Add the row to the index table above.

## Changing a Past Decision

Don't rewrite ADRs - write a new one that supersedes the old. Set the old
ADR's status to `Superseded by 00NN` and link both ways.
