tasks: закрыт разбор и хранилище, начат спринт по чтению данных клиентами

- цель parsing-and-storage закрыта по своему критерию; незакрываемый остаток
  (новые формы от источника, ручные секции задним числом) переехал в тему
  parsing-completeness
- цель mcp поглощена целью read-api, переименованной в «Чтение данных
  клиентами»: адаптер — последний шаг того же направления, а не своё
- read-api-points разложена на конверт с точками, свёртку по сетке и
  тренировки с записями; спринт 2026-08-04 набран пятью задачами
This commit is contained in:
av
2026-08-04 14:01:38 +03:00
parent 637eb38bce
commit 79331ac670
17 changed files with 276 additions and 144 deletions
+24 -2
View File
@@ -18,8 +18,30 @@
он должен работать в локальной сети без интернета);
- проверка актуальности спеки в гейте: контракт разъезжается молча.
**Решено владельцем 2026-08-04: спека пишется руками и она источник истины.**
Для API из шести ручек это честнее вывода из кода: контракт проектируется, а не
фотографируется с того, что вышло, — опечатка в имени поля иначе становится
частью спеки. Совпадает с тем, как в проекте уже устроен OpenSpec: спека
первична к коду. Плата названа: спека расходится с кодом молча, и именно поэтому
проверка её актуальности идёт в гейт третьим шагом, а не остаётся регламентом.
Готово, когда по спеке можно сгенерировать клиент, а Swagger UI открывается
локально и выполняет запрос к живому сервису.
Развилка на решение: спека пишется руками как источник истины или выводится из
кода. Для маленького API рукописная спека честнее — но это стоит обсудить.
## Критерии приёмки
- по спеке генерируется клиент, и сгенерированный клиент выполняет запрос к
живому сервису — оракул: прогон генератора плюс запрос сгенерированным
клиентом
- Swagger UI открывается и выполняет запрос **без внешней сети** — оракул:
запуск с отключённым интернетом
- маршрут, разошедшийся со спекой, красит гейт — оракул: намеренно
рассогласованный маршрут в прогоне гейта
- спека покрывает приём, каталог, точки, тренировки, записи и `/stats`
оракул: сверка перечня путей спеки с таблицей маршрутов в `architecture.md`
## Рамки
Схема не трогается, данные только читаются, сервис перезапускается. Берётся
после того, как маршруты чтения существуют: спека рукописная, но описывать
нечего, пока конверт не задан.