Files
clickstream-ch-kafka-supers…/.scratch/handoffs/2026-06-10-generator-spec-to-codex.md
T
Dmitry DementievandClaude Fable 5 bcca8f5127 docs(generator): уточнена мат-спека по итогам ревью, handoff для передачи
- Зачем:
  - повторное адверсариальное ревью нашло ошибку в формуле межсессионной
    паузы (двойной счёт кулдауна) и незакрытый контракт публикации
    device/geo; дизайн-этап завершён, работа передаётся исполнителю.
- Что:
  - исправлена формула паузы (баланс цикла, минус длительность визита);
    зафиксированы каденция device/geo «на каждое событие, как в сиде»,
    правило выбора возвращающегося, стартовое распределение страниц,
    калибровка по медиане и среднему, инвариант потолков конфигурации,
    компактное хранение профиля ссылкой на сид-сессию.
  - уточнены критерии приёмки (среднее паузы вместо медианы, счёт шага
    «товары», имена полей времени) в обеих спеках.
  - добавлен handoff .scratch/handoffs/2026-06-10-generator-spec-to-codex.md
    (передача на детальный план/реализацию), отработавший handoff от
    2026-06-09 удалён.
- Проверка:
  - цифры спеки сверены замерами по полным data/*.jsonl (стартовые страницы
    58/24/17, шаги воронки 98>=94>=56>=35>=25, device 1000 строк / 99
    уникальных); повторное ревью свежим агентом блокеров не оставило.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 18:02:57 +03:00

5.0 KiB

Handoff: спеки генератора готовы — передача на детальный план и реализацию

Дата: 2026-06-10 Ветка: feature/data-generator Жанр: одноразовые леса́ (ADR-0003) — durable-рассуждение в спеках/ADR/CONTEXT, не здесь.

Место: .scratch/handoffs/ по ADR-0003 (перекрывает 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/<feature>/ по docs/agents/issue-tracker.md (скилл to-issues, если план дробить).

Suggested skills (для следующей сессии)

  • to-issues — если решим дробить реализацию на задачи в локальном трекере.
  • tdd — для этапа реализации (pytest-набор generator/tests/ существует, но писался под старую модель — пересмотр под новую неизбежен).
  • adversarial-review / code-review — ревью реализации против мат-спеки перед вливанием.
  • conventional-commits — коммиты по правилам репозитория.