Files
healthlog/docs/tasks/items/openapi-gate-check.md
T
av 3d24248075 docs: документация приведена к канону av-dev-pm 4
- каждая запись каталога задач получила тип вместо тега kind: и префикса
  заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок
  секций канонический
- поправлены протухшие факты: нереализованные маршруты Read API, MCP и
  `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию
  диффа, периметр перестал дублировать security.md
- замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек
  storage и parsing
2026-08-05 19:09:35 +03:00

2.3 KiB

🧹 Ловить гейтом расхождение спеки с маршрутами

  • Тип: chore
  • Категория: Ядро
  • Зачем: Рукописная спека — источник истины, а расходится она с кодом молча: без гейта решение о рукописной спеке не держится
  • Теги: goal:read-api, sprint:2026-08-04

Маршрут, которого нет в спеке, и поле ответа, которого спека не обещала, красят гейт — рукописный контракт перестаёт расходиться с кодом молча.

Это не украшение к спеке, а то, чем держится решение писать её руками. Без проверки рукописная спека расходится с первого же маршрута, и потребитель, сгенерировавший по ней клиент, узнаёт об этом последним.

Класс отказа тот же, что у остальных безусловных шагов гейта проекта: не виден глазами и стоит дорого. Место ему там же.

Двигает строку «Завершения» цели: «Контракт чтения читается машиной».

Критерии приёмки

  • добавленный маршрут без правки спеки красит гейт — оракул: намеренно рассогласованный маршрут в прогоне гейта
  • переименованное поле ответа красит гейт — оракул: намеренное переименование в прогоне гейта
  • проверка укладывается в бюджет гейта — оракул: замер шага по логу tmp/gate/
  • проверка работает без внешней сети — оракул: прогон гейта в контейнере без доступа наружу

Рамки

Трогает Taskfile и шаги гейта, кода маршрутов не касается. Берётся после спеки: проверять нечего, пока нет источника истины.