docs(generator): путеводитель по генератору и живой проход make demo
- Зачем:
- спека отвечает «почему», а жанра «как пройти устройство по коду»
не было (#48); черновик в generator/README.md ждал выверки.
- Что:
- новый набор docs/architecture/generator/: индекс с целевой картиной
и mermaid-схемой плюс шесть поддокументов по темам тикета.
- демо-модуль и цель make demo: канонический D0, все стадии цепочки
на одном экране; тест-сторож проверяет стадии без прибитых чисел.
- раздел «Как это работает» в generator/README.md сжат до ссылки
на путеводитель, черновая врезка снята.
- Проверка:
- из generator/: make lint, make typecheck, make test (430 passed),
make demo; два слепых ревью и узкая перепроверка — находки закрыты.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
33aef73d0e
commit
0c466c082e
11 files changed
+392
-26
No files matched your search
@@ -0,0 +1,29 @@
|
||||
# Паспорт куки
|
||||
|
||||
Этот документ отвечает на вопрос, почему паспорт куки решает план состава, а
|
||||
день только разворачивает его в события.
|
||||
|
||||
[`plan.cohort`](../../../generator/src/clickstream_generator/plan.py) получает
|
||||
случайность через
|
||||
[`seeds.cohort_stream`](../../../generator/src/clickstream_generator/seeds.py)
|
||||
и вызывает [`plan._passports`](../../../generator/src/clickstream_generator/plan.py)
|
||||
в ветви «состав мира». Это не подпоток отдельного дня.
|
||||
|
||||
`plan._passports` выбирает строки устройства и города из справочников. У
|
||||
двухкуковой пары город первой куки переносится во вторую, а устройство
|
||||
выбирается из другой половины профилей. Сведения о парах есть только у плана.
|
||||
Если независимо вывести паспорт каждой куки из `ClientID`, один человек может
|
||||
оказаться в двух городах — это будет ложью в данных.
|
||||
|
||||
[`plan.Cohort`](../../../generator/src/clickstream_generator/plan.py) хранит
|
||||
номера устройства и города. `Cohort.visitors_on` переносит их в
|
||||
[`plan.DayAudience`](../../../generator/src/clickstream_generator/plan.py), а
|
||||
[`day.stream`](../../../generator/src/clickstream_generator/day.py) разворачивает
|
||||
профили в колонки событий. День не бросает паспорт заново, поэтому кука
|
||||
сохраняет его на всю жизнь.
|
||||
|
||||
Броски паспорта стоят после прежнего состава когорты. Правило такого
|
||||
продолжения подпотока описано в [дереве зерен](seeds.md), а основания выбора
|
||||
самого паспорта — в [спеке генератора](../../specs/2026-08-01-generator.md),
|
||||
раздел 9. Зачем стенду нужна двухкуковая пара одного человека, фиксирует
|
||||
[мастер-спека](../../specs/2026-07-30-stand-v2-realism.md), раздел 5.
|
||||
Reference in new issue
Block a user