- Зачем:
- спека отвечает «почему», а жанра «как пройти устройство по коду»
не было (#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>
27 lines
2.1 KiB
Markdown
27 lines
2.1 KiB
Markdown
# Ленивость мира
|
||
|
||
Этот документ отвечает на вопрос, как любой день собирается без прожитой
|
||
истории и без глобального списка посетителей.
|
||
|
||
[`plan.cohort`](../../../generator/src/clickstream_generator/plan.py) строит
|
||
одну когорту по зерну и дню ее появления. Отрицательные дни обозначают
|
||
предысторию; ее глубину ограничивает
|
||
[`world.RETURN_TAIL_DAYS`](../../../generator/src/clickstream_generator/world.py).
|
||
Запоминание уже рассчитанных когорт ускоряет соседние вызовы, но не становится
|
||
состоянием мира: очистка кеша не меняет результат.
|
||
|
||
[`plan.audience`](../../../generator/src/clickstream_generator/plan.py) для
|
||
дня D спрашивает `Cohort.visitors_on(D)` у когорт от
|
||
`D - RETURN_TAIL_DAYS` до D и соединяет полученные части. Поэтому вызов для
|
||
D0 поднимает всю предысторию в окне — 91 когорту от D−90 до D0.
|
||
|
||
Когорты предыстории дают D0 вернувшихся посетителей, но собственных событий
|
||
не порождают. Ось событий начинается в D0. Окно активности отсчитывается от
|
||
первого дня человека и остается общим для обеих его кук; за краем окна
|
||
когорта больше не может попасть в аудиторию.
|
||
|
||
Отсюда самостоятельность дня: D500 и D5 заглядывают назад на одинаковое число
|
||
когорт. Ни плану состава, ни день-функции горизонт мира не нужен.
|
||
Зачем приняты предыстория и ограниченное окно, объясняет [спека
|
||
генератора](../../specs/2026-08-01-generator.md), раздел 1.
|