- каждая запись каталога задач получила тип вместо тега kind: и префикса заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок секций канонический - поправлены протухшие факты: нереализованные маршруты Read API, MCP и `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию диффа, периметр перестал дублировать security.md - замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек storage и parsing
31 lines
2.3 KiB
Markdown
31 lines
2.3 KiB
Markdown
# ✨ Выводить схемы содержимого из данных
|
|
|
|
- **Тип:** feature
|
|
- **Категория:** Ядро
|
|
- **Зачем:** Метрик больше сотни и формы точек разные — клиент вынужден угадывать структуру по выборке
|
|
- **Теги:** goal:self-description
|
|
|
|
Метрик у Apple больше сотни, формы точек разные, и рукописный каталог описывал
|
|
бы документацию HAE, а не то, что он реально прислал. Схема содержимого
|
|
**выводится из данных** тем же проходом разбора: незнакомая метрика описывает
|
|
себя сама, без релиза.
|
|
|
|
Схема отдаётся вместе со статистикой — для потребителя она важнее формального
|
|
типа: сколько точек, первая и последняя метка, единицы, доля присутствия поля.
|
|
|
|
Вывод ограничивается по глубине вложенности, иначе схема тренировки с маршрутом
|
|
разрастётся до размеров самих данных.
|
|
|
|
**Глубину вывода для тренировок выбираем по факту**, когда увидим, как приходят
|
|
маршруты: структура тренировки разнородна, и заранее назначенный предел либо
|
|
срежет полезное, либо не срежет ничего. Точка маршрута при этом описываться
|
|
должна — блоб трека не непрозрачен, это массив однотипных объектов.
|
|
|
|
Готово, когда клиент по `/api/v1/metrics/{name}/schema` видит поля, их типы и
|
|
присутствие, не выкачивая выборку.
|
|
|
|
Связано: `docs/architecture.md` → «Самоописание». Форму конверта API описывает
|
|
не эта задача, а OpenAPI.
|
|
|
|
Двигает строку «Завершения» цели: «Формы содержимого метрик выведены из данных, а не описаны руками».
|