Status: ready-for-human # Модельное время до ClickHouse ## Parent `.scratch/generator-model-time-startup-history/PRD.md` ## What to build Сделать минимальный живой поток, где генератор стартует от `T0`, пишет `event_timestamp` по модельному времени и доводит события до ClickHouse обычным путём стенда. Срез должен доказать не внутренний класс часов, а наблюдаемое поведение: данные в ClickHouse начинаются от модельной точки и повторяются при тех же настройках. ## Acceptance criteria - [x] При фиксированных `GEN_SEED` и `T0` первый короткий прогон пишет события с модельными `event_timestamp`, начинающимися около `T0`. - [x] Повторный чистый прогон с теми же настройками даёт те же контрольные числа в ClickHouse по правилу повторяемости из контракта задачи 1. - [x] Повторный чистый прогон явно сбрасывает или обходит старое состояние генератора, чтобы сервис не продолжил прошлый запуск из `generator_state`. - [x] Расчёт дневного коэффициента в этом срезе больше не зависит от реального часа запуска процесса. - [x] Локальные тесты проверяют поведение через публичный интерфейс генератора или сервиса, без привязки к внутреннему устройству часов. - [x] Есть команда или короткая инструкция для координатора: поднять стенд, прогнать поток, выполнить SQL-проверку в ClickHouse. - [x] Документация запуска не утверждает, что `event_timestamp` равен настенному времени. ## Решение Живой сервис получает модельную точку из `GEN_MODEL_T0`, считает дневной коэффициент по модельному времени и передаёт эту же точку в тиковый поток. После успешного тика модельная точка сдвигается на `GEN_TICK_SECONDS * GEN_MODEL_TIME_SPEED`. Проверка ClickHouse выполнена двумя чистыми прогонами с `GEN_STATE_RESET=true`. Оба раза получены одинаковые контрольные числа: 5 событий, диапазон `event_ts = 2026-01-01 10:00:00.000000`, 5 уникальных `event_id` и 5 уникальных `click_id`. Риски по восстановлению state v2 оставлены для задачи 04: текущий срез доказывает чистый live-старт, а не возобновление после сбоя. ## Blocked by - `.scratch/generator-model-time-startup-history/issues/01-time-and-startup-history-contract.md`