docs(generator): добавлена задача уборки сервиса

- Зачем:
  - перед задачей активных визитов нужно отделить модель генератора от сервисной обвязки.
- Что:
  - добавлена спека уборки сервиса генератора перед задачей 03.
  - добавлена промежуточная issue 02.5 с критериями приёмки.
  - уточнены требования к Dockerfile и временному тиковому слою.
  - задача 03 заблокирована новой задачей уборки.
- Проверка:
  - просмотрен staged diff через `git diff --cached --stat`.
This commit is contained in:
Dmitry Dementiev
2026-06-11 13:48:24 +03:00
parent eaf4888ed9
commit 48e3bf2900
3 changed files with 183 additions and 1 deletions
@@ -0,0 +1,52 @@
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-интеграцию.