- Зачем:
- full_refresh на каждый world_next_day пересчитывает весь мир —
с ростом мира это следующее узкое место после счётчиков manifest.
- Что:
- в список issues «не забыть» добавлен инкрементальный ETL со ссылкой
на legacy-план plans/incremental-etl-v2.md.
- Проверка:
- вычитка handoff.
105 lines
7.4 KiB
Markdown
105 lines
7.4 KiB
Markdown
# Handoff: старт редизайна пути менти — спека и пилот GitHub Issues
|
||
|
||
Дата: 2026-07-19 22:29.
|
||
Жанр: handoff по ADR-0003 — точка входа в новую фичу на чистой ветке.
|
||
|
||
## Контекст
|
||
|
||
- `feature/data-generator` (146 коммитов) влита в main (`0e312b3`) и
|
||
запушена. Перед слиянием закрыта задача 21: баг F1 (необязательные поля
|
||
формы `generator_control` требовались как обязательные) починен через
|
||
`Param(None, type=["null", "string"])`, `.gitignore` покрыл артефакты
|
||
`data/*.json`, доки (`ARCHITECTURE.md`, `REPO_MAP.md`) догнали код.
|
||
`make test` (205 + 31) и `make lint` зелёные.
|
||
- `.scratch` очищен целиком (решение пользователя 2026-07-19): задачи
|
||
01–21, PRD, журналы и старые handoff'ы — одноразовые материалы, всё
|
||
долговечное перенесено в `docs/` (ADR 0004–0006, спеки, runbook
|
||
`startup-history`). История доступна в git: см. состояние на `0e312b3`,
|
||
ключевой файл находок —
|
||
`.scratch/generator-model-time-startup-history/hitl-findings.md@0e312b3`.
|
||
|
||
## Направление работ: редизайн пути менти
|
||
|
||
Рамочная модель (из ручного HITL 2026-07-19, подтверждена по
|
||
`launch.py`): основной режим менти — **`import` готового артефакта**
|
||
(база), от одного восстановленного состояния две ветки-лабы:
|
||
**`next-day`** (пакетно добавить сутки) и **`continue`** (живой поток,
|
||
оправдывает скорость ×60). `backfill` в целевой модели — инструмент
|
||
мейнтейнера для сборки артефакта, не первый шаг менти.
|
||
|
||
Ориентировочно 4 задачи:
|
||
|
||
1. **Ядро: эталонный 3-дневный артефакт** на профиле `daily-wave` как
|
||
база менти через `import`. Факты: артефакт 6h = 49 МБ raw; `xz -9e`
|
||
жмёт 48× (1,1 МБ за 13,5 с); 3 дня ≈ 13 МБ сжатого — кладётся в
|
||
обычный git. Паттерн-образец: `airflow-greenplum-solution`
|
||
(`bookings/seed/demo.sql.xz`). Открыто: нужен ли артефакту
|
||
`raw_topics` или хватит компактного `state`.
|
||
2. **Один учебный профиль**: `daily-wave` (волна, ×60) — учебный,
|
||
`ci` (×1, плоский) — служебный для тестов; форма не должна
|
||
подсовывать `ci` первым. Перед слиянием проверить, не зависит ли
|
||
runtime-seam-тест от скорости ×1.
|
||
3. **Расписание + инкремент**: беспараметрный DAG `next-day` (удобство
|
||
менти и пригодность к `schedule`) + инкрементальные счётчики manifest:
|
||
сейчас `next-day` перечитывает всю Kafka-историю с нуля — O(N²) по
|
||
дням и рост RAM (риск OOM); замер: день 2 = 638 с, узкое место —
|
||
генерация+пересчёт, не ETL (30 с). Параллелить нельзя (детерминизм),
|
||
правильный рычаг — накопленное состояние счётчиков в manifest/state.
|
||
4. **Баг-фиксы**: F5 — быстрый разлогин Airflow и Superset (ротация
|
||
секрета исключена; копать время жизни сессии/cookie); F4 — JS-ошибка
|
||
авто-refresh в Airflow Grid (косметика, низкий приоритет).
|
||
|
||
Отдельная линия (после инфраструктуры): три режима → свои лабы в
|
||
`docs/course/` (`import` — общая база; `next-day` — пакетная
|
||
инкрементальная обработка; `continue` — потоковый приём).
|
||
|
||
## Пилот GitHub Issues (решение пользователя 2026-07-19)
|
||
|
||
Новый процесс для этой фичи:
|
||
|
||
- Спека редизайна — файлом в репозитории (материал — hitl-findings из
|
||
истории git, см. выше).
|
||
- Тонкий корневой issue на GitHub со ссылкой на спеку и чекбоксами на
|
||
дочерние issues; дочерние — полноценные самодостаточные постановки.
|
||
- Triage-метки — пять канонических ролей из `docs/agents/triage-labels.md`
|
||
как настоящие метки GitHub.
|
||
- В том же заходе поправить контракт: AGENTS.md и
|
||
`docs/agents/issue-tracker.md` сейчас говорят «GitHub Issues не
|
||
используются» — заменить на правила пилота. Старые задачи не
|
||
мигрировать (архив в истории git).
|
||
|
||
## Что дальше (порядок; обновлено 2026-07-19 23:0x)
|
||
|
||
Сделано в тот же вечер: контракт трекера переведён на GitHub Issues
|
||
(метки созданы), спека написана и проверена свежим взглядом —
|
||
`docs/specs/2026-07-19-mentee-path-redesign.md` (источник истины: путь
|
||
менти, `world_init`, `world_next_day`, эталонный мир, 4 дочерних issue).
|
||
`hitl-findings.md` восстановлен в `.scratch/` как рабочий материал.
|
||
Термины «мир», «эталонный мир», «три режима менти» — в CONTEXT.md.
|
||
|
||
Осталось:
|
||
|
||
1. Корневой issue + 4 дочерних на GitHub по спеке (раздел «Форма работ»),
|
||
плюс четыре issue «не забыть»: F5 (разлогин), F4 (JS Grid), редизайн
|
||
лаб курса (отстали от реальности, не заработают), инкрементальный ETL
|
||
(техдолг: `full_refresh` пересчитывает весь мир на каждый
|
||
`world_next_day`; растёт с миром; исторический контекст —
|
||
`plans/incremental-etl-v2.md`; кандидат в материал лабы про
|
||
инкрементальную обработку).
|
||
2. Работа по задачам конвейером `claude-subagent-playbook`.
|
||
3. Решить судьбу локальной ветки `feature/data-generator-kimi`
|
||
(пользователь ещё не ответил).
|
||
|
||
## Состояние стенда
|
||
|
||
Стенд поднят: мир 1,25 суток на профиле `ci`, `model_t_end` =
|
||
`2026-01-02 06:00`, live-генератор не запущен, дашборд — Superset id 1.
|
||
Для новой работы, скорее всего, понадобится чистый прогон (`make clean`).
|
||
|
||
## Suggested skills
|
||
|
||
- `claude-subagent-playbook` — конвейер задач.
|
||
- `conventional-commits` — коммиты.
|
||
- `research` / Context7 — фактура для спеки (формат артефакта, Airflow
|
||
`schedule`).
|