- Зачем:
- узкое место — время человека на ручную приёмку: без DAG-пульта проверять
миграцию курса пришлось бы через консоль.
- Что:
- PRD, раздел «Задачи»: номер файла объявлен идентификатором (не порядком),
порядок задан ветками и mermaid-графом; основная цепочка 07 -> 11 -> 12,
миграция курса 08 — последней.
- issue 08: добавлена мягкая зависимость от 12 (приёмка уроков через пульт).
- handoff триажа: раздел «Следующий шаг» обновлён под новый порядок.
- Проверка:
- mermaid-диаграмма проверена валидатором Mermaid; статусы задач не менялись.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
92 lines
7.6 KiB
Markdown
92 lines
7.6 KiB
Markdown
# Handoff: триаж бэклога генератора и целеполагание стенда
|
||
|
||
Дата: 2026-07-04
|
||
Жанр: одноразовый handoff по ADR-0003.
|
||
|
||
## Рабочая форма (зафиксирована сегодня)
|
||
|
||
С Claude — обсуждение проекта, планы, проектные документы и независимые ревью.
|
||
Исполнение кода — Codex, предпочтительно через `/goal` или `/coordinator-loop`.
|
||
Сохранено в памяти Claude (memory), новая сессия подхватит автоматически.
|
||
|
||
## Что решено и зафиксировано
|
||
|
||
- **Целеполагание сверено** и записано в `docs/course/PRD.md` §1 (поправка
|
||
2026-07-04): три части трека ClickHouse (теория — внешние курсы, лабы —
|
||
clickhouse-learning-cluster, этот стенд — интеграции «как в жизни»); иерархия
|
||
целей: курс -> стенд-носитель -> генератор как скрытая инфраструктура.
|
||
- **Развилка «урок про генератор» закрыта**: урока не будет, генератор — скрытая
|
||
инфраструктура (PRD §7).
|
||
- **Демо-употребление устарело**: `docs/DEMO_CHEATSHEET_5MIN.md` и
|
||
`docs/DEMO_SCRIPT_10_15MIN.md` удалены, демо выросло в отдельный проект.
|
||
- **Новая открытая развилка** в PRD §7: кластерная конфигурация ClickHouse
|
||
(пользователь склоняется к «всё в одном», решение не принято).
|
||
- **Конвенция трекера**: завершённая задача — `Status: done`
|
||
(`docs/agents/issue-tracker.md`); задачи 01–06 фичи переведены в `done`
|
||
(стояли ошибочные `ready-for-human` от глючившего координатора).
|
||
|
||
## Бэклог фичи `generator-model-time-startup-history`
|
||
|
||
Список задач и порядок — в PRD фичи (раздел «Задачи», дополнен сегодня):
|
||
|
||
- **07** (артефакт + runbook, `ready-for-agent`) — импорт строго через Kafka
|
||
(напрямую в ClickHouse не пишет — решение пользователя), громкий отказ при
|
||
несовместимом state (пересмотр правила спеки), граница runbook «использование,
|
||
не устройство». Режим ревью — гейт.
|
||
- **08** (миграция курса, `ready-for-agent`) — после 07; `make data` вплетён во
|
||
все уроки 00–05, объём больше, чем кажется; тонкое место — урок 00.
|
||
- **11** (глаголы/длительность/профили, `ready-for-agent`) — после 07, до 12.
|
||
- **12** (DAG-пульт, `needs-triage`) — дооформить после 07 и 11; приоритет
|
||
поднят пользователем: будущий основной человеческий интерфейс стенда.
|
||
- **13** (доливка, `needs-triage`) — без приоритета, после фикса 09.
|
||
- Перестановка: бывший 07 (миграция) и 08 (артефакт) поменяны местами.
|
||
|
||
## Следующий шаг
|
||
|
||
Весь бэклог готов к передаче Codex. Порядок пересмотрен (решение 2026-07-04,
|
||
«пульт вперёд»): узкое место — время человека на ручную приёмку, поэтому
|
||
основная цепочка теперь 07 -> 11 -> 12 (пульт появляется раньше), а миграция
|
||
курса 08 идёт последней — её приёмку (проход по урокам) человек ведёт уже через
|
||
пульт. 09 и 10 независимы, можно параллельно; 13 — после фикса 09. Граф и
|
||
подробности — в PRD фичи, раздел «Задачи»; там же зафиксировано, что номер
|
||
файла — идентификатор, а не порядок.
|
||
|
||
## Дооформление 09 и 10 — что изменилось против прежнего понимания
|
||
|
||
Сделано в этот же день, вторым заходом. 09 и 10 переведены в `ready-for-agent`;
|
||
детали — в самих issue, здесь только сдвиги в понимании:
|
||
|
||
- **Гипотеза по 09 не подтвердилась.** Дело не в рассинхроне `event_index`, а в
|
||
источнике фактуры: при рождении визита браузерные строки берутся у случайного
|
||
«донора» из словаря, при восстановлении — у `seed_click_id` пользователя.
|
||
Прежняя развилка «выбор по абсолютному индексу, не трогая схему state»
|
||
оказалась нерабочей — restore не знает донора. Решение пользователя: хранить
|
||
`base_click_id` донора в state (альтернативы и причины отказа — в issue).
|
||
- **Дефект 09 шире браузера** (нашло ревью): per-event поля location (referer,
|
||
utm) расходятся на стыке так же — критерии приёмки расширены, иначе частичный
|
||
фикс «только браузер» прошёл бы приёмку. Расхождение event_id (uuid4 при
|
||
рождении, uuid5 при restore) зафиксировано как известное и вне скоупа.
|
||
- **По 10 сняты две мины:** пересборка по умолчанию даёт 6 часов истории, а не
|
||
2 суток (профиль «2 суток одной командой» — это ещё не сделанная задача 11);
|
||
legacy-виз `world_map`, похоже, вообще не умеет легенду и tooltip — основной
|
||
путь, вероятно, смена типа визуализации, а не настройка (проверить через
|
||
Context7 при реализации).
|
||
- **Процессная заметка:** дооформленные issue прогнаны через тройное ревью
|
||
(самопроверка + два свежих агента, адверсарно, с проверкой каждого утверждения
|
||
по коду). Улов оправдал затраты — см. пункты выше; для issue с режимом «гейт»
|
||
так стоит делать и дальше.
|
||
|
||
## Не забыть (вне бэклога)
|
||
|
||
Открытые пробелы независимого ревью от 2026-06-14 (см. handoff
|
||
`2026-06-14-generator-model-time-verification-review.md`): ×K не гоняли,
|
||
live-crash recovery не воспроизводили, распределения не сверяли с коридорами
|
||
мат-спеки, воспроизводимость checksum не перепроверяли.
|
||
|
||
## Suggested skills
|
||
|
||
- `conventional-commits` — перед коммитами.
|
||
- `tdd` — для фикса issue 09 (тест на однородность браузера через стык, затем
|
||
минимальная правка).
|
||
- `coordinator-loop` — на цепочки 07 -> 08 и 07 -> 11 -> 12.
|