# Журнал решений Одна запись — одно решение. **ADR переносит решение из архивного `design.md`**, а не сочиняет его заново: запись цитирует решение и ссылается на `openspec/changes/archive//design.md`. ## Когда заводить Верно одно из трёх: - **дорогой откат** — переделка стоит дороже переписывания одного файла; - **намеренный отказ** от очевидного подхода; - **пересмотр прежнего решения** — тогда у старой записи обязателен статус «заменено на». Не заводить для рутины и для того, что видно из кода и `git log`. ## Соглашения - Имя файла — `ADR-ГГГГ-ММ-ДД-slug.md`, дата — когда решение реально принято. Слаг **английский по сути, а не транслитом**: `queue-as-table`, не `ochered-tablicej`. Форму имени и слаг проверяет `docs.py check`. - Записи неизменяемы: передумали — новая запись, старой ставится статус. - Активная запись статуса не имеет. Значений два: `заменено на ADR-…` и `устарело`; ставятся полем меты записи — `- **Статус:** …` рядом с датой и источником, а не абзацем в теле. ## Записи Новые сверху. | Дата | Запись | Статус | | --- | --- | --- | Записей нет: канон заведён 2026-08-10, а решения, принятые до него, источника в архиве изменений не имеют — сочинять их задним числом правило запрещает. Ближайшие кандидаты назовёт первое же изменение, которое тронет хранилище или вход: замена SQLite на PocketBase и вход через OIDC оба проходят триггер «дорогой откат».