tasks: задачи спринта раздроблены до восьми гранулярных
- конверт и точки разложены на форму провода, точки за период и условный запрос; свёртка — на сетку, порог неполного ведра и предел размера ответа; тренировки и записи разъехались на два независимых маршрута - openapi-swagger разложена на спеку, гейт против расхождения и Swagger UI — все три вне набора, вместе с mcp-server - набор спринта 2026-08-04 — весь HTTP-слой чтения, восемь задач
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Гейт против расхождения спеки с маршрутами
|
||||
|
||||
- **Секция:** ядро
|
||||
- **Зачем:** Рукописная спека — источник истины, а расходится она с кодом молча: без гейта решение о рукописной спеке не держится
|
||||
- **Теги:** goal:read-api, sprint:2026-08-04
|
||||
|
||||
Маршрут, которого нет в спеке, и поле ответа, которого спека не обещала, красят
|
||||
гейт — рукописный контракт перестаёт расходиться с кодом молча.
|
||||
|
||||
Это не украшение к спеке, а то, чем держится решение писать её руками. Без
|
||||
проверки рукописная спека расходится с первого же маршрута, и потребитель,
|
||||
сгенерировавший по ней клиент, узнаёт об этом последним.
|
||||
|
||||
Класс отказа тот же, что у остальных безусловных шагов гейта проекта: не виден
|
||||
глазами и стоит дорого. Место ему там же.
|
||||
|
||||
## Критерии приёмки
|
||||
|
||||
- добавленный маршрут без правки спеки красит гейт — оракул: намеренно
|
||||
рассогласованный маршрут в прогоне гейта
|
||||
- переименованное поле ответа красит гейт — оракул: намеренное переименование в
|
||||
прогоне гейта
|
||||
- проверка не ходит в сеть и укладывается в бюджет гейта — оракул: замер шага по
|
||||
логу `tmp/gate/`
|
||||
|
||||
## Рамки
|
||||
|
||||
Трогает `Taskfile` и шаги гейта, кода маршрутов не касается. Берётся после
|
||||
спеки: проверять нечего, пока нет источника истины.
|
||||
Reference in New Issue
Block a user