Files
clickstream-ch-kafka-supers…/.scratch/handoffs/2026-07-04-generator-backlog-triage.md
T
ddadminandClaude Fable 5 f59b6d128f docs(generator): issue 09 и 10 дооформлены до ready-for-agent
- Зачем:
  - закрыть последний шаг триажа: без Acceptance criteria и способа приёмки
    задачи нельзя передавать Codex на исполнение.
- Что:
  - issue 09: причина уточнена по коду (расходится источник фактуры — донор
    против seed_click_id, а не индекс), зафиксировано решение хранить донора
    в state, критерии расширены полями location (referer, utm) по итогам ревью.
  - issue 10: приёмка по скриншотам playwright-cli с определением «читаемо»,
    поправлена длительность пересборки (6 часов по умолчанию, не 2 суток),
    отмечено, что legacy world_map, похоже, не умеет легенду и tooltip.
  - handoff триажа дополнен сдвигами в понимании и итогом тройного ревью.
- Проверка:
  - утверждения по коду сверены с generation.py, runtime.py, state.py и
    sql/ddl/dds/30_dds.sql двумя независимыми ревью-агентами.

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

88 lines
7.1 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: `/goal` на отдельные задачи (09 и 10
независимы, можно параллельно) или `/coordinator-loop` на цепочки 07 -> 08 и
07 -> 11 -> 12. Задача 13 — после фикса 09.
## Дооформление 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.