Формальный реестр принятых архитектурных и дизайн-решений. Пишется один раз для каждого значимого выбора, далее не обновляется (immutable — снимок контекста на момент принятия решения). Если решение меняется — не правим старый ADR, а пишем новый со ссылкой "supersedes ADR-NNNN".
use Spring Boot в Spring-проекте).journal/ или CLAUDE.md.journal/ADR ссылается на journal-записи как source-of-context. Journal ссылается на ADR как source-of-decision.
NNNN-short-kebab-case-title.md — четырёхзначный номер + название.
Шапка:
# ADR-NNNN: Title
**Status:** Proposed | Accepted | Superseded by ADR-XXXX | Deprecated
**Date:** YYYY-MM-DD
Обязательные разделы:
[Код](...), [Journal](...).| # | Title | Status | Date |
|---|---|---|---|
| 0001 | Hexagonal architecture + DIP для sibling-модулей | Accepted | 2026-04-18 |
| 0002 | Sealed ADT для доменных исключений | Accepted | 2026-04-18 |
| 0003 | RFC 9457 ProblemDetail для HTTP-ошибок | Accepted | 2026-04-18 |
| 0004 | Разделить порты AgendaProvider и QuestionFileProvider | Accepted | 2026-04-18 |
| 0005 | Никаких прямых Kafka/CRED из protocol, всё через common/agenda | Accepted | 2026-04-18 |
| 0006 | Доменные enums несут поле description | Accepted | 2026-04-18 |
| 0007 | VoteDecision — два поля: label + value | Accepted | 2026-04-18 |
| 0008 | PRKK-выписки сохраняют оригинальное форматирование | Accepted | 2026-04-18 |
| 0009 | Генерация протокола — "всё или ничего" | Accepted | 2026-04-18 |
| 0010 | Task-based как основной паттерн, sync v1 как transition bridge | Accepted | 2026-04-18 |
| 0011 | Row-level access check при генерации протокола | Accepted | 2026-04-18 |
| 0012 | Context propagation через Micrometer Context Propagation | Accepted | 2026-04-18 |
| 0013 | Task-based generation — submission, status, cleanup | Accepted | 2026-04-18 |