- Зачем:
- повторное адверсариальное ревью нашло ошибку в формуле межсессионной
паузы (двойной счёт кулдауна) и незакрытый контракт публикации
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>
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— коммиты по правилам репозитория.