# 🧹 Свести норму схемы со служебной таблицей goose - **Тип:** chore - **Категория:** Очередь — Та же окрестность, что и сведение документов: норма схемы объявлена в database.md, а держит её сторож - **Зачем:** Таблица учёта goose_db_version несёт второй вид времени и своё умолчание, а норма схемы объявлена абсолютной; сторож перечисляет наши таблицы поимённо и служебной не видит вовсе. - **Теги:** review-2026-08-23, question Норма схемы объявлена абсолютной: [database.md](../../docs/database.md) описывает таблицы сервиса, а сторож `internal/archrules` перечисляет их поимённо и сверяет с применённой схемой. Таблицы учёта `goose_db_version` в этом перечне нет, и она под норму не подпадает: время в ней своего вида, у колонки своё умолчание — то и другое ставит goose, а не мы. Сегодня расхождение молчит: сторож смотрит только на названные таблицы. Стоит ему начать смотреть на применённую схему целиком, и он покраснеет на таблице, которую мы не заводили и править не можем. Исход — выбор нормы, а не правка кода: либо требование сужается и называет таблицу учёта прямо, либо сторож расширяется на всю применённую схему с поимённым исключением. Нашёл проход `review-specs` (S2) ревью change `2026-08-23-storage-without-pocketbase`. ## Затрагивает - [docs/database.md](../../docs/database.md) — формулировка нормы схемы; - спека `storage` — требование о составе схемы; - сторож `internal/archrules` — перечень таблиц и то, что он сверяет; - каталог шагов `internal/adapter/repo/sqlite/migrations` — только чтением. ## Критерии приёмки - Норма схемы называет таблицу учёта явно: либо как исключение, либо как предмет. **Оракул:** чтение `docs/database.md` и спеки рядом — про `goose_db_version` сказано, чья она и почему её колонки другие. - Сторож судит то, что объявлено нормой, и краснеет на расхождении. **Оракул:** мутация — завести колонку мимо шага схемы либо снять таблицу из перечня, и `go test ./internal/archrules/` краснеет. - Служебная таблица сторожа не роняет. **Оракул:** `task gate` зелёный на применённой схеме целиком. ## Вопросы - Что становится нормой: сузить требование и назвать таблицу учёта goose исключением — или расширить сторож на всю применённую схему с поимённым исключением? Первое дешевле и оставляет сторожа слепым к таблице, заведённой мимо шага схемы; второе ловит такую таблицу, но требует держать перечень исключений. ## Рамки Применённые шаги схемы не переписываются. Сама goose не заменяется и её таблица учёта не переименовывается.