397777089e
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
75 lines
3.2 KiB
Markdown
75 lines
3.2 KiB
Markdown
# ADR-000 Adopt the ADR process and decision-store boundaries
|
|
|
|
## Status
|
|
|
|
Accepted, 2026-05-17.
|
|
|
|
## Context
|
|
|
|
Лидерра already records open product, business, and legal questions in the
|
|
`docs/Открытые_вопросы_v8_3.md` registry (identifiers `Б-`, `CTO-`, `Ю-`,
|
|
`Диз-`, `DO-`, `OPEN-`), each closed only by an explicit owner decision.
|
|
|
|
Integrating the `adr-kit` plugin adds a second store, `docs/adr/`, and the
|
|
`mermaid` skill adds a third, `docs/architecture/`. Without explicit
|
|
boundaries the three overlap, and a reader cannot tell where a given decision
|
|
belongs. This ADR is the first written under the new process; it fixes the
|
|
boundaries so ADR-001 onward have a clear home.
|
|
|
|
## Decision
|
|
|
|
- **`docs/adr/`** holds Architecture Decision Records — a *technical or
|
|
architectural decision that has already been made*: stack choice, structural
|
|
boundary, data-layer strategy, cross-cutting pattern. One file per decision,
|
|
named `ADR-NNN-kebab-title.md`, following the seven-section adr-kit template.
|
|
- **`docs/architecture/`** holds diagrams and models (C4, system context),
|
|
generated with the `mermaid` skill. Visual, not normative; an ADR may
|
|
reference a diagram there.
|
|
- **The `docs/Открытые_вопросы` registry** continues to track *unresolved*
|
|
product, business, and legal questions. It is not machine-enforced.
|
|
- A registry question that resolves into a technical choice may graduate into
|
|
an ADR; the registry entry is then closed by the normal owner process.
|
|
- An ADR may carry a machine-readable `## Enforcement` block; `adr-judge`
|
|
applies it to staged diffs at commit time (wired as a `lefthook` job).
|
|
Enforcement rules target architecture-level constraints only — they do not
|
|
duplicate `larastan`, `eslint`, or `squawk` rules.
|
|
|
|
## Alternatives Considered
|
|
|
|
- **Keep every decision in the Открытые_вопросы registry.** Rejected: the
|
|
registry is designed for *open* questions awaiting a decision, not for
|
|
recording *closed* technical choices, and it has no enforcement mechanism.
|
|
- **Record architecture decisions inside `CLAUDE.md`.** Rejected: `CLAUDE.md`
|
|
is the operational map, edited only through the `claude-md-management`
|
|
plugin (`CLAUDE.md` §5 п.10), and would grow without bound if it absorbed
|
|
every decision rationale.
|
|
|
|
## Consequences
|
|
|
|
**Positive:**
|
|
|
|
- A reader can locate any decision by class: open question, closed decision,
|
|
or diagram.
|
|
- Architecture decisions become version-controlled, reviewable, and — where an
|
|
Enforcement block exists — machine-checked at commit time.
|
|
|
|
**Negative:**
|
|
|
|
- Three stores must be kept disjoint; a contributor has to know the boundary
|
|
rule above before adding to any of them.
|
|
- An ADR superseded by a later decision must be marked
|
|
`Superseded by ADR-MMM` rather than edited in place — process discipline the
|
|
team has to follow.
|
|
|
|
## Related Decisions
|
|
|
|
- ADR-001 — first technical ADR written under this process.
|
|
- ADR-002 — first data-layer ADR written under this process.
|
|
|
|
## References
|
|
|
|
- `docs/superpowers/plans/2026-05-17-a6-architecture-tooling-integration.md` —
|
|
the integration plan that introduced `docs/adr/`.
|
|
- `docs/Открытые_вопросы_v8_3.md` — the open-questions registry.
|
|
- `.claude/adr-kit-guide.md` — the adr-kit authoring guide.
|