# 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 |
| [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) |

## 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.
