49 файлов, миграция сделана командой tasks.py check --fix — той самой, ради которой в скрипте оставлена читаемость старой формы. Побочно тот же прогон проставил тег decomposed целям, у которых есть задачи: это его штатная работа. check после миграции зелёный, индексы согласованы. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2.1 KiB
Выведенные из данных схемы содержимого
- Секция: ядро
- Зачем: Метрик больше сотни и формы точек разные — клиент вынужден угадывать структуру по выборке
- Теги: goal:self-description
Метрик у Apple больше сотни, формы точек разные, и рукописный каталог описывал бы документацию HAE, а не то, что он реально прислал. Схема содержимого выводится из данных тем же проходом разбора: незнакомая метрика описывает себя сама, без релиза.
Схема отдаётся вместе со статистикой — для потребителя она важнее формального типа: сколько точек, первая и последняя метка, единицы, доля присутствия поля.
Вывод ограничивается по глубине вложенности, иначе схема тренировки с маршрутом разрастётся до размеров самих данных.
Глубину вывода для тренировок выбираем по факту, когда увидим, как приходят маршруты: структура тренировки разнородна, и заранее назначенный предел либо срежет полезное, либо не срежет ничего. Точка маршрута при этом описываться должна — блоб трека не непрозрачен, это массив однотипных объектов.
Готово, когда клиент по /api/v1/metrics/{name}/schema видит поля, их типы и
присутствие, не выкачивая выборку.
Связано: docs/architecture.md → «Самоописание». Форму конверта API описывает
не эта задача, а OpenAPI.