- migrations-step-norm-and-tests, gate-steps-subject-guard и review-config-from-go-upgrade уехали в голову: слой проверок, которым верят все задачи ниже; - rollback-restores-wrong-session-duration встал рядом с соседом про откат, bot-api-only-through-bot-client — рядом с чисткой транспорта, pin-runtime-image-base — перед spa-skeleton, откуда начинаются пересборки; - pipeline-spec-purpose-drift закрыта реализованной, а docs-consistency-2026-08-13 переписана под пять оставшихся находок: шестую свело повышение раскладки.
63 lines
5.3 KiB
Markdown
63 lines
5.3 KiB
Markdown
# 🧹 Свести пять расхождений между документами канона
|
||
|
||
- **Тип:** chore
|
||
- **Категория:** Очередь — Документы правятся до того, как на них обопрутся экраны и контракт: расхождение в таблице зависимостей и в периметре читают, принимая решения ниже по списку.
|
||
- **Зачем:** Сверка 2026-08-13 нашла шесть мест, где два документа отвечают на один вопрос по-разному; одно сведено при повышении раскладки, а три из пяти оставшихся стоят в architecture.md, и по ним читатель строит решения о выкладке и о периметре.
|
||
|
||
Находки сверки документов агентами `doc-consistency` и `doc-code-drift`,
|
||
прогнанной 2026-08-13 вместе с работой о контексте и токене. К той работе
|
||
расхождения отношения не имеют — они старше, и потому не чинились тем же
|
||
коммитом.
|
||
|
||
Мест было шесть. Шестое — вид временной метки, где `conventions/database.md`
|
||
требовал RFC 3339 с `T`, а хранилище пишет `2006-01-02 15:04:05.000Z`, — сведено
|
||
2026-08-13 строкой «*Расхождение:*» в конвенции при повышении раскладки до
|
||
версии 3. Остальные пять живы.
|
||
|
||
Каждое место названо с домом факта, то есть с тем документом, который прав:
|
||
|
||
1. **Панель администратора против Authelia.** `architecture.md`, «Открытые
|
||
вопросы»: «Панель администратора Authelia не закрывает». `security.md`,
|
||
«Периметр»: адрес `/_/` закрывает Authelia на обратном прокси решением от
|
||
2026-08-11. Дом — `security.md`.
|
||
2. **Провайдер OIDC не назван внешней зависимостью.** Работает с 2026-08-12, у
|
||
него два таймаута в `database.md` и нормативная спека `access`, но в таблице
|
||
зависимостей `architecture.md` его нет, а языковая модель числится там
|
||
«пятой зависимостью». Дом — `architecture.md`, править его.
|
||
3. **«Таймаута нет ни у одного обращения наружу»** (`architecture.md`,
|
||
«Эксплуатация») против таймаутов обмена кода у провайдера в `database.md` и
|
||
требования спеки `access`. Верно узкое утверждение: таймаутов нет у Telegram,
|
||
Object Storage и SpeechKit. Дом — `database.md`.
|
||
4. **gin в `README.md`.** Веб-фреймворка нет: HTTP-поверхность — роутер
|
||
встроенной PocketBase, и `logging.md` прямо говорит, что вместе с gin ушёл и
|
||
`sloggin`. Дом стека — `CLAUDE.md`.
|
||
5. **Дубли текста в `CLAUDE.md`** — подавления `hadolint` и настройка
|
||
`errcheck` пересказаны там дословно, хотя обе преамбулы договорились, что
|
||
дом перечня подавлений — `go-linters.md`.
|
||
|
||
## Затрагивает
|
||
|
||
- `docs/architecture.md` — «Открытые вопросы», таблица внешних зависимостей,
|
||
раздел «Эксплуатация»;
|
||
- `docs/security.md` и `docs/database.md` — как дома фактов, если правка
|
||
потребует уточнить формулировку;
|
||
- `README.md` — перечень технологий;
|
||
- `CLAUDE.md` — раздел «Гейт», два места с пересказом.
|
||
|
||
## Критерии приёмки
|
||
|
||
- Ни одно из пяти мест не отвечает на свой вопрос двумя способами. Оракул —
|
||
повторный прогон `av-dev:doc-healthcheck`: перечисленные пять находок не
|
||
возвращаются.
|
||
- Провайдер OIDC стоит в таблице внешних зависимостей со своими четырьмя
|
||
столбцами отказа, и счёт зависимостей в «Открытых вопросах» сходится с
|
||
таблицей. Оракул — чтение таблицы: число строк против числа в тексте.
|
||
- Дрейф раскладки и битые ссылки не заведены. Оракул — `task gate` зелёный
|
||
(шаг `docs`).
|
||
|
||
## Рамки
|
||
|
||
Правится текст документов, а не поведение сервиса: если расхождение окажется
|
||
дефектом кода, оно уезжает своей задачей, а не чинится здесь. Спеки
|
||
`openspec/specs/` не трогаем — у них свой порядок изменения.
|