# 🐞 Починить путь миграций в настройке сверки документов - **Тип:** fix - **Категория:** Очередь — Шаг гейта зелен при изменённой миграции и нетронутом database.md: на этом шаге стоит приёмка всякой следующей задачи, трогающей схему. - **Зачем:** Ключ migrations указывает на каталог migrations/, которого в репозитории нет: шаг гейта зелен при изменённой миграции и нетронутом database.md, а конвенции числят этот род механизированным. Найдено ревью задачи `oidc-login` 2026-08-12, отчёт триажа — [review/report.md](../../openspec/changes/archive/2026-08-12-oidc-login/review/report.md), раздел «Promote candidates». Проверка сверяет изменённые файлы с префиксом `migrations/`, а шаги схемы лежат в `internal/adapter/repo/pocketbase/`. Совпадений не бывает никогда, значит шаг проходит зелёным всегда. Оракул сегодняшнего состояния: `git ls-files | grep -c "^migrations/"` отдаёт `0`. Цена уже заплачена дважды: задача `oidc-login` изменила шаг схемы и не тронула `docs/database.md`, и гейт этого не заметил — расхождение нашёл человек на ревью. Так же провалится всякая следующая миграция. Развилка внутри задачи: либо поправить путь, либо снять пометку «механизировано» в `docs/conventions/README.md` и отдать род человеку. Второе дешевле, но тогда проверять его будет некому. ## Воспроизведение 1. Изменить любой файл шагов схемы в `internal/adapter/repo/pocketbase/`. 2. `docs/database.md` не трогать. 3. Прогнать `task docs BASE=origin/master`. 4. Шаг проходит зелёным, хотя должен назвать расхождение. Сегодняшнее состояние настройки видно командой `git ls-files | grep -c "^migrations/"` — она отдаёт `0`, то есть каталога с таким именем в репозитории нет. ## Затрагивает - `docs/.docs.json`, ключ `migrations`; - `docs/conventions/README.md`, таблица «Механизировано», строка про миграцию; - шаг `docs` в `Taskfile.yml` — его исход меняется. ## Критерии приёмки - Изменённый шаг схемы при нетронутом `docs/database.md` роняет шаг гейта. Оракул — правка любого файла шагов схемы без правки схемы в документах, затем `task docs BASE=origin/master`: ненулевой код возврата. - Изменённый шаг схемы вместе с правкой `docs/database.md` шаг гейта проходит. Оракул — то же с обеими правками: код возврата 0. - Строка «Механизировано» в `docs/conventions/README.md` соответствует тому, что проверка делает на самом деле. Оракул — чтение таблицы против исхода первых двух проверок.