- беклог и план переехали в docs/tasks (38 задач, 11 целей), слаги переименованы с транслита на английские, 85 ссылок поправлены - conventions.md разобран в docs/conventions/, local-research.md — в docs/research/, review-journal.md — в docs/review.md с разделом настройки конвейера; заведены security.md, adr/ и .pm.json - шаг docs.py check добавлен в task gate; поведение в architecture.md помечено девятью маркерами долга, database.md получил настройки с числовым значением
46 lines
5.1 KiB
Markdown
46 lines
5.1 KiB
Markdown
# План
|
|
|
|
Оглавление целей. Цель — файл `[goal]` в `items/`; её задачи
|
|
здесь **не перечисляются** — перечень даёт `tasks.py list --goal <слаг>`.
|
|
В первой секции («порядок») очередь значима и обосновывается
|
|
прозой; в остальных порядка нет — это тематические цели.
|
|
|
|
## Что уже пройдено
|
|
|
|
Каркас и приём без разбора закрыты. Метрики, тренировки и записи со своими `id`
|
|
разбираются и ложатся в часовые объекты. `reindex` проигрывает журнал в свежую
|
|
витрину, отпечатки сравниваются, повторный прогон ничего не меняет. Род
|
|
агрегации **измерен**: сверка минутного слоя с часовым разложила метрики живого
|
|
корпуса на накопительные и мгновенные, не сойдясь ни на одной, и каталог
|
|
разрезов отдаётся первым маршрутом чтения. Разведка закончена — правило вывода
|
|
слоя, модель идентичности и формы точки проверены на живом потоке
|
|
([research/apple-health.md](../research/apple-health.md)).
|
|
|
|
Эти звенья целями не заведены: закрытая цель записи не оставляет, ей хватает
|
|
коммита и спеки.
|
|
|
|
## Почему в таком порядке
|
|
|
|
- **Каталог и род агрегации — перед Read API.** Без измеренного рода свёртка в
|
|
ответе неотличима от угадывания, а ошибиться здесь дорого: просуммировать
|
|
нижний слой значит завысить втрое. Это звено уже закрыто.
|
|
- **`healthlog import` — перед устареванием нижнего слоя.** Пока импорт
|
|
экспорта не написан, помечать что-либо устаревшим не на основании чего.
|
|
- **Read API — перед MCP.** Адаптер собственной логики не несёт, он переводит
|
|
вызовы в те же обработчики; переводить пока нечего.
|
|
|
|
## порядок
|
|
- [[goal] Разбор и хранилище](items/parsing-and-storage.md) — Секции живого потока разобраны все, кроме словаря категориальных значений и пяти невиденных
|
|
- [[goal] Read API](items/read-api.md) — Данные видны только через sqlite на хосте — ни один из трёх потребителей ничего прочитать не может
|
|
- [[goal] Самоописание](items/self-description.md) — Метрик больше сотни и формы точек разные — клиент вынужден угадывать структуру по выборке
|
|
- [[goal] MCP](items/mcp.md) — Агент-медик — первый заказчик проекта, а подключить его сейчас нечем
|
|
- [[goal] Импорт родного экспорта Apple](items/native-export-import.md) — Слой sample пуст: полная история и точные сэмплы лежат в zip-архиве и никуда не едут
|
|
- [[goal] Устаревание нижнего слоя](items/lower-layer-cleanup.md) — Нижний слой растёт на ~100 тысяч координат в сутки, а после экспорта Apple он избыточен
|
|
- [[goal] Наблюдаемость](items/observability.md) — Тихо сломавшаяся автоматизация — главный эксплуатационный риск, а сейчас факт виден только в логах
|
|
- [[goal] Деплой](items/deploy.md) — Сервис живёт на рабочей машине — телефон достаёт до него только дома, и оба контура открыты
|
|
|
|
## темы
|
|
- [[goal] Прочность слияния и идентичности](items/merge-robustness.md) — Правила слияния держатся на замерах, и каждый новый замер находит зависимость от порядка на проводе
|
|
- [[goal] Журнал и пересборка](items/journal-and-rebuild.md) — Расхождение витрины с журналом сейчас молчит: reindex печатает оба отпечатка, а сравнивать их некому
|
|
- [[goal] Пределы и поведение под объёмом](items/limits-and-load.md) — Предела на одну сущность нет вовсе: 63 МиБ держат блокировку 5.019 с, соседние доставки уходят в failed
|