feat(generator): план состава мира — зерно, приток, двухкуковые пары
- Зачем: - тикет #38: состав мира должен быть чистой функцией зерна, а счётчики будущего манифеста — известны до генерации хоть одного события. - Что: - `world.py` — конфигурация мира одним модулем чистых данных: приток, недельная волна, профиль возвратов, доли покупателей и пар, D0. - `seeds.py` — иерархия подпотоков на `SeedSequence`: состав мира (ось и предыстория) отдельно от дней и их компонентов. - `plan.py` — ленивый план состава: когорта дня, аудитория дня из окна возвратов, гарантированные заказы пар, счётчики горизонта. Случайность — только целыми числами. - спека, раздел 1: вторая кука пары рождается по затухающему профилю возвратов; раздел 9: измеренные числа канонического мира, оценка накопленной аудитории поправлена с ≈60 до 68 тыс. - CONTEXT.md: термин «когорта дня»; README генератора — новые модули. - Проверка: - make test (295 тестов), make lint, make typecheck; - тесты проверены мутациями: 12 подмен в плане и конфигурации, каждая роняет ровно свой тест. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-2
@@ -4,17 +4,26 @@
|
||||
образцу облачной выгрузки Яндекс Метрики. Устройство и принятые решения —
|
||||
спека [«Генератор (этап 2)»](../docs/specs/2026-08-01-generator.md).
|
||||
|
||||
Пока здесь каркас проекта и его сердце — контракт схемы события.
|
||||
Пока здесь контракт схемы события и план состава мира — событий генератор ещё
|
||||
не порождает.
|
||||
|
||||
## Что где лежит
|
||||
|
||||
- `src/clickstream_generator/world.py` — конфигурация мира: все его числа
|
||||
одним местом. Правка любого — смена мира; крутить их и предлагается.
|
||||
- `src/clickstream_generator/seeds.py` — иерархия зёрен: кто из какого
|
||||
подпотока берёт случайность. На ней держится весь детерминизм.
|
||||
- `src/clickstream_generator/plan.py` — план состава: кто есть в мире в
|
||||
день D. Когорты, приток, двухкуковые пары и счётчики — до генерации
|
||||
событий.
|
||||
- `src/clickstream_generator/schema.py` — контракт схемы: чистые данные о
|
||||
колонках выгрузки. Собственность генератора; из него выводятся сам
|
||||
генератор, его валидация и описание выгрузки в доках.
|
||||
- `src/clickstream_generator/schema_doc.py` — сборка «описания выгрузки»
|
||||
([`docs/formats/clickstream-event.md`](../docs/formats/clickstream-event.md))
|
||||
из контракта. Документ руками не правят — пересобирают.
|
||||
- `tests/` — инварианты контракта и свежесть описания.
|
||||
- `tests/` — инварианты контракта, свежесть описания и обещания плана:
|
||||
чистота от зерна, приток, гарантия двухкуковых пар.
|
||||
|
||||
## Команды
|
||||
|
||||
|
||||
Reference in New Issue
Block a user