From 18ac8279cd45b210a570b2c441ff939944ba6f72 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sun, 14 Jun 2026 15:07:27 +0300 Subject: [PATCH] =?UTF-8?q?docs(handoff):=20=D0=B7=D0=B0=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D1=81=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20handoff=20=D0=BF?= =?UTF-8?q?=D0=BE=20ADR-0006=20=D0=B8=20=D1=81=D0=BF=D0=B5=D0=BA=D0=B5=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - сохранить контекст сессии для продолжения работы в новой сессии. - Что: - добавлен handoff: что сделано и закоммичено, контекст вне артефактов, очередь шагов, ограничения. - Проверка: - чтение .scratch/handoffs/2026-06-14-adr0006-source-flip-and-model-time-spec.md. Co-Authored-By: Claude Opus 4.8 (1M context) --- ...adr0006-source-flip-and-model-time-spec.md | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .scratch/handoffs/2026-06-14-adr0006-source-flip-and-model-time-spec.md diff --git a/.scratch/handoffs/2026-06-14-adr0006-source-flip-and-model-time-spec.md b/.scratch/handoffs/2026-06-14-adr0006-source-flip-and-model-time-spec.md new file mode 100644 index 0000000..4e1f133 --- /dev/null +++ b/.scratch/handoffs/2026-06-14-adr0006-source-flip-and-model-time-spec.md @@ -0,0 +1,76 @@ +# 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` + (строки ~202–228, `{**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) `. +- 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.