- проверки больше не зовут ffprobe и не меняют рабочий каталог процесса; добавлены случаи на отказ чтения метаданных и на отсутствие поля audio - заведена спека intake на приём по HTTP, ADR о подставных адаптерах, запись в журнал ревью о проверке, которая не могла упасть - go test снят из объявленных долгов CLAUDE.md, послабление errcheck для _test.go в .golangci.yml убрано
40 lines
2.4 KiB
Markdown
40 lines
2.4 KiB
Markdown
# Журнал решений
|
||
|
||
Одна запись — одно решение. **ADR переносит решение из архивного `design.md`**, а
|
||
не сочиняет его заново: запись цитирует решение и ссылается на
|
||
`openspec/changes/archive/<id>/design.md`.
|
||
|
||
## Когда заводить
|
||
|
||
Верно одно из трёх:
|
||
|
||
- **дорогой откат** — переделка стоит дороже переписывания одного файла;
|
||
- **намеренный отказ** от очевидного подхода;
|
||
- **пересмотр прежнего решения** — тогда у старой записи обязателен статус
|
||
«заменено на».
|
||
|
||
Не заводить для рутины и для того, что видно из кода и `git log`.
|
||
|
||
## Соглашения
|
||
|
||
- Имя файла — `ADR-ГГГГ-ММ-ДД-slug.md`, дата — когда решение реально принято.
|
||
Слаг **английский по сути, а не транслитом**: `queue-as-table`, не
|
||
`ochered-tablicej`. Форму имени и слаг проверяет `docs.py check`.
|
||
- Записи неизменяемы: передумали — новая запись, старой ставится статус.
|
||
- Активная запись статуса не имеет. Значений два: `заменено на ADR-…` и
|
||
`устарело`; ставятся полем меты записи — `- **Статус:** …` рядом с датой и
|
||
источником, а не абзацем в теле.
|
||
|
||
## Записи
|
||
|
||
Новые сверху.
|
||
|
||
| Дата | Запись | Статус |
|
||
| --- | --- | --- |
|
||
| 2026-08-11 | [Проверки не зовут внешних программ](ADR-2026-08-11-stub-adapters-in-tests.md) | |
|
||
|
||
Решения, принятые до заведения канона 2026-08-10, источника в архиве изменений
|
||
не имеют — сочинять их задним числом правило запрещает. Ближайшие кандидаты
|
||
назовёт первое же изменение, которое тронет хранилище или вход: замена SQLite на
|
||
PocketBase и вход через OIDC оба подпадают под критерий «дорогой откат».
|