- Зачем:
- спека разрослась до 1058 строк, а журнал решений в разделе 9 читался
только целиком; агентам и людям нужен дешевый адресный заход к
основаниям решений генератора.
- Что:
- заведены ADR 0015 (пояс счетчика), 0016 (паспорт куки) и 0017 (номер
заказа); четыре адресные ссылки на «раздел 9» перешиты на них.
- раздел 9 пересобран в 11 тематических подразделов с датами и тикетами
у каждого решения и закрыт пометкой о заморозке; устаревшие
промежуточные замеры свернуты до указателей на актуальные.
- строка статуса в шапке отмечает закрытие спеки как документа этапа 2.
- Проверка:
- wc -l docs/specs/2026-08-01-generator.md (951, было 1058);
rg -n 'раздел[а-яё]* 9|разделы 8 и 9' docs -g '*.md' — 18 попаданий,
все классифицированы; разделы 1-8 нетронуты (сверка хешем).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
30 lines
2.3 KiB
Markdown
30 lines
2.3 KiB
Markdown
# Паспорт куки
|
||
|
||
Этот документ отвечает на вопрос, почему паспорт куки решает план состава, а
|
||
день только разворачивает его в события.
|
||
|
||
[`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), а выбор
|
||
паспорта объясняет [ADR 0016](../../adr/0016-cookie-passport.md). Зачем стенду
|
||
нужна двухкуковая пара одного человека, фиксирует
|
||
[мастер-спека](../../specs/2026-07-30-stand-v2-realism.md), раздел 5.
|