Files
clickstream-ch-kafka-supers…/.scratch/handoffs/2026-07-04-generator-backlog-triage.md
T
ddadminandClaude Fable 5 ee4c9f5857 docs(generator): порядок бэклога «пульт вперёд» и граф задач в PRD
- Зачем:
  - узкое место — время человека на ручную приёмку: без DAG-пульта проверять
    миграцию курса пришлось бы через консоль.
- Что:
  - PRD, раздел «Задачи»: номер файла объявлен идентификатором (не порядком),
    порядок задан ветками и mermaid-графом; основная цепочка 07 -> 11 -> 12,
    миграция курса 08 — последней.
  - issue 08: добавлена мягкая зависимость от 12 (приёмка уроков через пульт).
  - handoff триажа: раздел «Следующий шаг» обновлён под новый порядок.
- Проверка:
  - mermaid-диаграмма проверена валидатором Mermaid; статусы задач не менялись.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 17:12:13 +03:00

92 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.