Files
clickstream-ch-kafka-supers…/.scratch/handoffs/2026-06-14-adr0006-source-flip-and-model-time-spec.md
T
ddadminandClaude Opus 4.8 18ac8279cd docs(handoff): зафиксирован handoff по ADR-0006 и спеке модельного времени
- Зачем:
  - сохранить контекст сессии для продолжения работы в новой сессии.
- Что:
  - добавлен handoff: что сделано и закоммичено, контекст вне артефактов, очередь шагов, ограничения.
- Проверка:
  - чтение .scratch/handoffs/2026-06-14-adr0006-source-flip-and-model-time-spec.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 15:07:27 +03:00

77 lines
6.7 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: ADR-0006 (источник аналитики) + спека модельного времени
Дата: 2026-06-14
Ветка: `feature/data-generator`
Режим работы: дизайн (brainstorm-with-docs), не реализация кода.
## Что сделано в этой сессии (закоммичено)
Содержание не дублирую — смотри сами файлы:
- **ADR-0006** `docs/adr/0006-generation-as-sole-analytics-source.md` — генерация
становится единственным источником аналитики; статический сид → архивный;
перевод процесса на новый (сгенерированный) сид — цель работы. Коммит `49512b1`.
- **Спека** `docs/specs/2026-06-14-generator-model-time-and-startup-history.md`
модельное время на практике: точка отсчёта `T0`, повторяемость, заливка
прошлого, стартовая история, сохранение состояния, скорость ×K, проверка в два
шага. Коммит `49512b1`.
- **Указатели вперёд** в ADR-0004 и ADR-0005 на ADR-0006 и спеку. Коммит `49512b1`.
- **AGENTS.md** — ужесточено правило про русский язык + добавлено правило про
понятность и краткость документов. Коммит `c4cc01e`.
## Контекст и решения, которых нет в артефактах (важны для продолжения)
- **Роль сида = «кладовка значений» (палитра атрибутов).** Генератор сам придумывает
структуру (иерархию, время, воронку), но фактуру (браузер/гео/устройство/utm)
копирует из строк сида: `generator/src/clickstream_generator/generation.py`
(строки ~202228, `{**base_browser, …}`), индексы в `dictionary.py`. Профиль
популяции хранится ссылкой на сид-сессию (мат-спека, §«Профиль пользователя»).
Поэтому сид нельзя удалить, пока генератор не научится фактуре сам.
- **Сид полностью чист** — проверено: 1000 записей × 4 файла, 0 падений в DQ
(`ods.*_errors`). Значит вывод сида не ломает учебный путь про грязные данные.
- **Двухшаговая проверка** (раздел «Проверка» спеки): шаг 1 — агент на чистом
стенде сверяет числа в ClickHouse (пирамида/воронка/возвраты), детерминированно;
шаг 2 — человек смотрит дашборды (распределение похоже на задуманное + стенд
«дышит» на ×K). Вскрытый пробел: дашборда с распределением сгенерированных
данных нет (Superset на сиде, Grafana показывает пропускную способность).
- **Известные расхождения калибровки** (из прошлого ревью, не в этих артефактах):
медиана длины визита ~8 против сидовых 10, всплеск на длине 2, нет
bounce-визитов длины 1, доля `/confirmation` ~27%. Когда генерация станет
источником, это станет «правдой» стенда — учесть при заполнении коридоров шага 1
и в будущей задаче калибровки/фактуры.
## Очередь (следующие шаги)
1. Выровнять `CONTEXT.md` (раздел «три значения слова сид») под ADR-0006:
статический сид → архивная кладовка значений, цель — полный вывод.
2. Пометить в мат-спеке `docs/specs/2026-06-10-generator-math-model.md` разделы
«Персистентность через рестарты» и «Воспроизводимость» как переописанные в
модельном времени новой спекой (ссылкой, без дублирования).
3. (Опционально) Этап 1 вживую: поднять стенд на текущем генераторе, снять
реальные числа в ClickHouse, заполнить коридоры в разделе «Проверка». Поднимает
docker-стек (меняет состояние) — только с согласия владельца.
4. Черновик спеки **синтеза фактуры** — то, что позволит удалить `data/*.jsonl`.
5. Черновик спеки **перестройки процесса** (загрузка `kafka_load_dag` → новый сид,
Superset/витрины, уроки) — на этапе реализации, по ADR-0006.
6. Реализация механизма (модельные часы/×K/стартовая история) — это код, зона Codex.
## Ограничения (продолжать соблюдать)
- Роль: Claude — ADR/спеки/ревью; Codex — код. Намерение, против которого
сверяем, живёт в ADR/спеках Claude.
- Язык: ясный русский без транслитераций (теперь зафиксировано в `AGENTS.md`).
- Коммиты: только по просьбе; формат conventional-commits; трейлер
`Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>`.
- Git строго аддитивно: на ветке может параллельно писать Codex — не делать
amend/rebase/reset чужих коммитов. В `main` — merge `--no-ff`, не тащить
`.scratch/`.
- Context7 для спорных/меняющихся API (особенно Airflow).
- Публичный репозиторий — без персональных данных менти.
## Suggested skills
- **brainstorm-with-docs** — для продолжения дизайна (пункты 1, 4, 5 очереди:
`CONTEXT.md`, спека фактуры, спека перестройки процесса).
- **conventional-commits** — для коммитов.
- **Context7 (MCP)** — при касании API.