docs(generator): зафиксирована модель времени генератора (ADR-0005)

- Зачем:
  - инвариант «время генератора ≡ реальное ×1» неудобен для учебного плана:
    медленные явления (возвраты, воронка) не успеть показать на уроке, а
    историческую глубину живой генератор не создаёт.
- Что:
  - добавлен ADR-0005: модельные часы отвязаны от настенного времени, режимы
    (живой ×1 / ускоренный ×K / заливка) — драйверы одного шва, правило 30 минут
    переопределено в модельном времени; сид-продолжение помечено как будущее.
  - в CONTEXT.md разведены три значения «сида» и добавлен термин модельного
    времени и масштаба ×K.
  - добавлен handoff с отложенным ревью петли и реконсиляцией мат-спеки.
- Проверка:
  - прочитать docs/adr/0005-generator-model-clock.md и раздел «Три значения
    слова сид» в CONTEXT.md; git log -1.
This commit is contained in:
Dmitry Dementiev
2026-06-11 18:37:27 +03:00
parent 2eaeda3308
commit 341637c810
3 changed files with 218 additions and 0 deletions
+26
View File
@@ -66,6 +66,32 @@ user_domain_id (пользователь, постоянный)
межсессионными паузами. Именно возвраты дают расхождение `users < sessions`
то, чего нет на сиде (`users == sessions`) и что отличает поток от статики.
### Три значения слова «сид»
Слово перегружено — в разговоре про генератор это **три разные сущности**, их
нельзя путать (см. [ADR-0005](./docs/adr/0005-generator-model-clock.md)):
- **`GEN_SEED`** — зерно ГПСЧ генератора (детерминизм случайных решений). Не
данные, а число.
- **статический сид** (`data/*.jsonl`) — учебный демо-датасет режима `bootstrap`
(уроки 06) и **калибровочный эталон** генератора (профиль ниже — опорные
цифры). По мере появления «стартовой истории стенда» его учебная роль смещается
на **dev-фикстуру и эталон** (быстрый повторяемый вход для пайплайна STG→DM, не
зависящий от генератора); смещение зафиксировано как будущее направление в
ADR-0005, на время разработки сид и поток сосуществуют.
- **стартовая история стенда** — сгенерированное прошлое (заливка `K → ∞` +
заморозка состояния), с которого живой стенд стартует непрерывно. Ещё не
строим; см. ADR-0005.
### Модельное время и масштаб (×K)
**Модельное время стенда** отвязано от настенных часов: генератор крутит
внутренние часы, а драйвер задаёт скорость — ×1 (как реальное время), ×K
(ускоренно, учебная «ручка» урока 7) или `K → ∞` (мгновенная заливка прошлого).
При ускорении «сейчас» стенда уходит вперёд настенного времени — это свойство, не
баг (ключ аналитики — `event_timestamp`). Решение и режимы —
[ADR-0005](./docs/adr/0005-generator-model-clock.md).
## Почему на демо `Unique Users == Unique Sessions`
В демо-датасете (`data/*.jsonl`) каждый пользователь имеет **ровно один**