# Handoff: спеки генератора готовы — передача на детальный план и реализацию Дата: 2026-06-10 Ветка: `feature/data-generator` Жанр: одноразовые леса́ (ADR-0003) — durable-рассуждение в спеках/ADR/CONTEXT, не здесь. > Место: `.scratch/handoffs/` по [ADR-0003](../../docs/adr/0003-handoffs-in-scratch.md) > (перекрывает generic-дефолт скилла «temp dir»: мультимашинность + worktrees). > Предыдущий handoff (2026-06-09-generator-rework.md) отработал и удалён. ## Где остановились Дизайн-этап переработки генератора **завершён**. Спека математической модели написана, прошла **два** адверсариальных ревью свежими агентами (второе ревью ловило ошибки правок первого — практика себя оправдала), все находки закрыты, ключевые цифры перепроверены замерами по полному сиду. Кода по-прежнему не трогали. Разделение ролей (см. память проекта): дизайн/спеки — Fable, **детальный план и реализация — Codex 5.5**. Следующая сессия — скорее всего, подготовка задачи для Кодекса или сама реализация. ## Документы (источники истины, не пересказываю) - **Мат-модель (главный документ для исполнителя):** `docs/specs/2026-06-10-generator-math-model.md` — марковская цепочка по страницам, формула «популяция ↔ интенсивность ↔ пауза», кулдаун, правило 30 минут на рестарт, критерии приёмки. - **Форма доработки:** `docs/specs/2026-06-09-generator-rework-hierarchical.md` (Open questions закрыты ссылкой на мат-спеку). - **Почему генератор, а не реплей:** `docs/adr/0004-steady-stream-synthetic-generator.md`. - **Профиль сид-датасета (опора калибровки):** `CONTEXT.md`, раздел «Профиль сид-датасета» — измерено по полным файлам 2026-06-10. - **Диагноз дефекта старого кода:** `generator/KNOWN_ISSUES.md`. ## Ловушки (одной строкой; детали — в спеках) - Ранний «факт» **«1..7 событий на визит» был неверен** (срез файла); реально 1..27, медиана 10. Если встретишь «1..7» где-то ещё в доках/коде — это остатки ошибки, чинить по профилю сида. - **Формула паузы в мат-спеке обязательна** при смене λ/популяции; кулдаун в неё не прибавляется (уже учтён балансом). Вторая ревизия исправляла именно двойной счёт — не откатить случайно. - **device/geo публикуются на каждое событие** (как в сиде) — это контракт с ETL, не деталь. - `event_timestamp` событий — **запланированное** время, не момент отправки тика (иначе метки прилипают к сетке тиков). - Модель интенсивности (`_calculate_events_count`) сохраняем; дефолт `GEN_LAMBDA_BASE_PER_MIN` меняется 200 → 30. ## Следующий шаг Передать пару спек Кодексу: детальный план реализации → код. Уровень спек сознательно «решения и инварианты, без алгоритмов» — конкретику исполнитель достраивает сам. Возможная подготовка: оформить задачу в `.scratch//` по `docs/agents/issue-tracker.md` (скилл `to-issues`, если план дробить). ## Suggested skills (для следующей сессии) - **`to-issues`** — если решим дробить реализацию на задачи в локальном трекере. - **`tdd`** — для этапа реализации (pytest-набор `generator/tests/` существует, но писался под старую модель — пересмотр под новую неизбежен). - **`adversarial-review`** / **`code-review`** — ревью реализации против мат-спеки перед вливанием. - **`conventional-commits`** — коммиты по правилам репозитория.