- содержимое шагов не перечисляется: список работ жил в плане и в беклоге и расходился с каждой закрытой задачей - десять пунктов «Отложено» заведены задачами [idea]; два из них (ретеншен, алерт) уже были в беклоге — в плане лежал дубль - обоснование порядка расписано по шагам: это единственное, чего беклог структурно не вмещает
61 lines
4.4 KiB
Markdown
61 lines
4.4 KiB
Markdown
# План
|
||
|
||
Это **порядок и его обоснование**, а не список работ. Единицы работы живут в
|
||
[беклоге](backlog/README.md) — одна задача, один файл, свой приоритет. План
|
||
отвечает «почему в таком порядке», беклог — «что брать следующим».
|
||
|
||
Отсюда правило: **содержимое шага здесь не перечисляется.** Шаг — это название
|
||
и статус; что именно в нём делается, знает задача. Иначе список работ живёт в
|
||
двух местах и расходится с каждой закрытой задачей. Меняется этот файл, когда
|
||
меняется порядок, а не когда закрывается задача.
|
||
|
||
## Ближайшая цель
|
||
|
||
Метрики разбираются и ложатся в часовые объекты: тела перестали быть
|
||
недифференцированной кучей. Блокеры, накопившиеся из ревью, разобраны — их в
|
||
беклоге ноль.
|
||
|
||
Дальше — **`reindex`**, и он сейчас срочнее остального остатка разбора. После
|
||
миграции 00005 доставки числятся `pending`, а подобрать их некому: код
|
||
пересборки не написан. Данные целы (тела в архиве, объекты в витрине), но
|
||
учёт честно говорит «этим разбором не смотрели», и так будет, пока пересборки
|
||
нет. Тем же кодом закрывается половина задачи «разнести ответ и свёртку».
|
||
|
||
Потом — остаток разбора: тренировки и записи со своими `id` (это половина
|
||
потока: `workouts` и `stateOfMind` принимаются и хранятся, но не разбираются),
|
||
словарь категориальных значений.
|
||
|
||
Разведка закончена: правило вывода слоя, модель идентичности и формы точки
|
||
проверены на живом потоке, выводы — в [local-research.md](local-research.md).
|
||
|
||
## Шаги
|
||
|
||
- [x] **1. Каркас.**
|
||
- [x] **2. Приём без разбора.** ← **подключаем телефон по локальной сети**
|
||
- [~] **3. Разбор и хранилище.** Метрики — сделано; тренировки и записи со
|
||
своими `id`, `reindex` и словарь категориальных значений — нет.
|
||
- [ ] **4. Каталог и род агрегации.**
|
||
- [ ] **5. Read API.**
|
||
- [ ] **6. Самоописание.**
|
||
- [ ] **7. MCP.**
|
||
- [ ] **8. `healthlog import`.**
|
||
- [ ] **9. Устаревание нижнего слоя.**
|
||
- [ ] **10. Наблюдаемость.**
|
||
- [ ] **11. Деплой.**
|
||
|
||
Порядок неслучаен, и это единственное, чего нет в беклоге:
|
||
|
||
- **Каталог и род агрегации — перед Read API.** Без измеренного рода свёртка в
|
||
ответе неотличима от угадывания, а ошибиться здесь дорого: просуммировать
|
||
нижний слой значит завысить втрое.
|
||
- **`healthlog import` — перед устареванием нижнего слоя.** Пока импорт
|
||
экспорта не написан, помечать что-либо устаревшим не на основании чего.
|
||
- **Read API — перед MCP.** Адаптер собственной логики не несёт, он переводит
|
||
вызовы в те же обработчики; переводить пока нечего.
|
||
|
||
## Отложенное
|
||
|
||
Отложенных идей в плане нет: их место — [беклог](backlog/README.md) с пометкой
|
||
`[idea]`. Два дома для одной идеи расходятся, и тогда полного списка не даёт ни
|
||
один; вопрос «что мы решили отложить» задаётся беклогу.
|