Files
healthlog/docs/tasks/items/openapi-gate-check.md
T
av bd832337df tasks: задачи спринта раздроблены до восьми гранулярных
- конверт и точки разложены на форму провода, точки за период и условный
  запрос; свёртка — на сетку, порог неполного ведра и предел размера ответа;
  тренировки и записи разъехались на два независимых маршрута
- openapi-swagger разложена на спеку, гейт против расхождения и Swagger UI —
  все три вне набора, вместе с mcp-server
- набор спринта 2026-08-04 — весь HTTP-слой чтения, восемь задач
2026-08-04 14:21:57 +03:00

2.0 KiB

Гейт против расхождения спеки с маршрутами

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

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

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

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

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

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

Рамки

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