- Зачем: - перед задачей активных визитов нужно отделить модель генератора от сервисной обвязки. - Что: - добавлена спека уборки сервиса генератора перед задачей 03. - добавлена промежуточная issue 02.5 с критериями приёмки. - уточнены требования к Dockerfile и временному тиковому слою. - задача 03 заблокирована новой задачей уборки. - Проверка: - просмотрен staged diff через `git diff --cached --stat`.
3.0 KiB
3.0 KiB
Status: ready-for-agent
Уборка сервиса генератора перед активными визитами
What to build
Разнести текущий generator/generator.py на понятные модули, не меняя внешнее
поведение генератора. Цель — подготовить код к задаче 03, где появятся активные
визиты между тиками.
Источник решений: docs/specs/2026-06-11-generator-service-cleanup.md,
docs/specs/2026-06-10-generator-math-model.md, задачи 01-03 в этом каталоге.
Acceptance criteria
- Генеративная модель визита отделена от Kafka, состояния, метрик и сервисного цикла.
- Код загрузки и индексации JSONL-сида вынесен из сервисного слоя.
- Расчёт интенсивности отделён от генерации одного визита.
- Kafka publisher, Kafka-state и создание служебных топиков не смешаны с генеративной моделью.
generator/generator.pyостаётся тонкой точкой входа или совместимым фасадом, чтобы не ломать запуск и тесты без причины.generate_tick_batch()не остаётся в чистой генеративной модели визита: он вынесен в переходный тиковый слой и подготовлен к замене активными визитами в задаче 03.- Dockerfile и запуск контейнера обновлены под новую структуру файлов.
- Все существующие тесты генератора проходят.
- README генератора кратко отражает новую структуру файлов.
Non-goals
- Не реализовывать активные визиты между тиками.
- Не добавлять популяцию пользователей и возвраты.
- Не вводить состояние версии 2.
- Не менять Kafka-топики и формат событий.
- Не удалять
generator_batch_history, если отдельно не доказано, что он больше не нужен.
Blocked by
.scratch/feature-data-generator/issues/02-visit-page-path-and-monotonic-time.md
Blocks
.scratch/feature-data-generator/issues/03-tick-stream-with-active-visits.md
Comments
Задача появилась после разбора распухания сервиса: первые два среза уже внесли новую модель визита, а третий срез добавит состояние активных визитов. Перед ним нужно отделить модель, тиковый слой и Kafka-интеграцию.