Files
clickstream-ch-kafka-supers…/.scratch/generator-model-time-startup-history/issues/11-generator-launch-verbs-and-profiles.md
T
ddadmin 4f8f992363 feat(generator): добавлены профили запуска
- Зачем:
  - запуск генератора должен быть понятным перед будущим DAG-пультом.
- Что:
  - добавлены глаголы запуска backfill, continue и reset.
  - добавлены профили ci и daily-wave с расчётом длительности истории.
  - обновлены runbook и документы запуска под профильный интерфейс.
- Проверка:
  - uv run --with-requirements generator/requirements.txt pytest generator/tests -q.
  - bash -n scripts/run_generator.sh scripts/export_startup_history_artifact.sh scripts/import_startup_history_artifact.sh scripts/run_generated_history_analytics.sh.
  - PROFILE=daily-wave COMPOSE_BIN=true bash scripts/run_generator.sh backfill.
2026-07-04 18:51:10 +03:00

3.9 KiB

Status: done

Глаголы, длительность и профили запуска генератора

Parent

.scratch/generator-model-time-startup-history/PRD.md

Why

Запуск генератора недружелюбный: поведение собирается из ~10 связанных env-переменных, а смысл запуска — из их комбинации (GEN_RUN_MODE + GEN_STATE_RESET). Конец истории задаётся абсолютной меткой GEN_MODEL_T_END, которую оператор считает в уме от T0.

Задача — дать чистый интерфейс «под капотом» перед DAG-пультом (12-generator-control-dag.md): если команды простые и говорящие, DAG становится тонкой обёрткой с понятными параметрами, а не переводчиком формы в матрицу переменных (решение пользователя, 2026-07-04).

What to build

  • Глаголы вместо матрицы флагов: явные команды backfill / continue / reset (make-цели или аргументы запуска), а не комбинация GEN_RUN_MODE + GEN_STATE_RESET. Старые переменные могут остаться как низкоуровневый механизм, но документированный путь — глаголы.
  • Длительность вместо абсолютной метки: задавать конец истории как длительность от T0 (например, 2d), расчёт T_end — внутри.
  • Именованные профили вместо повторения блока переменных: минимум два — быстрый проверочный (6 часов, текущий дефолт CI) и «с суточной волной» (2+ суток).

Acceptance criteria

  • Стартовую историю на 2 суток можно получить одной командой с глаголом и длительностью/профилем, без ручного расчёта T_end и без выставления GEN_RUN_MODE/GEN_STATE_RESET вручную.
  • Глаголы не меняют семантику режимов: за backfill/continue/reset стоит тот же контракт модельного времени и state, что в спеке docs/specs/2026-06-14-generator-model-time-and-startup-history.md.
  • Профили покрывают быстрый проверочный прогон и прогон с суточной волной; выбранный профиль виден в логах/манифесте.
  • Runbook (из задачи 07) и документы запуска переведены на глаголы и профили; старый способ через переменные упомянут как низкоуровневый.
  • Существующие тесты генератора проходят; поведение по умолчанию (CI-профиль) не изменилось.

Notes

  • Это интерфейсный слой над существующей механикой: генерацию, state и антисмешивание не менять.
  • Вместе с глаголами не забыть команды экспорта/импорта из задачи 07 — они уже в стиле глаголов, привести всё к одному стилю.

Blocked by

  • 07-startup-history-portable-artifact-and-usage-docs.md — runbook и команды экспорта/импорта появляются там; эта задача переводит их на единый стиль.