Status: needs-triage # Airflow-DAG — пульт управления генератором ## Parent `.scratch/generator-model-time-startup-history/PRD.md` ## Why Даже с runbook и глаголами управление генератором остаётся консольным. Идея (пользователь, 2026-06-14; приоритет поднят 2026-07-04): параметризованный DAG в Airflow как основной человеческий интерфейс стенда — форма в веб-UI, где выбираются режим, длительность/профиль, seed, скорость. Плюсы: валидация настроек против манифеста ещё до запуска, повторные попытки, наглядный статус. Учебный бонус: такой DAG сам по себе учебный материал — живой пример параметризованной оркестрации (тема урока 4), что ближе к цели курса, чем устройство генератора. ## What to build Черновой контур (уточнить после задач 07 и 11): - Параметризованный DAG с операциями: создать стартовую историю (backfill), экспортировать артефакт, импортировать артефакт, сбросить мир. - Валидация параметров против манифеста **до** запуска операции; при несовместимости — понятная ошибка в UI, а не тихий новый мир. - Конечные операции (backfill, экспорт, импорт, сброс) — таски DAG. Непрерывный live — долгоживущий сервис compose: DAG его стартует и останавливает, но не держит внутри таска. - Под капотом DAG вызывает глаголы из задачи 11, а не собирает env-матрицу. ## Acceptance criteria (черновые, дооформить после 07 и 11) - [ ] Стартовую историю выбранной длительности можно создать из веб-UI Airflow, не выставляя переменных окружения вручную. - [ ] Несовместимые параметры отклоняются до запуска с указанием разошедшихся полей. - [ ] Импорт/экспорт артефакта доступны как операции DAG. - [ ] Runbook дополнен разделом «пульт в Airflow» как основным путём. ## Notes - Проверить API параметров DAG (params/Datasets) через MCP Context7 по правилу репозитория: спорные API Airflow сверять с актуальной документацией. - DAG должен остаться понятным менти: это витрина оркестрации, не место для хитрой логики. Сложность — в глаголах генератора (задача 11), не здесь. ## Blocked by - `07-startup-history-portable-artifact-and-usage-docs.md` — операции экспорта/импорта появляются там. - `11-generator-launch-verbs-and-profiles.md` — DAG оборачивает глаголы и профили; без них он превращается в переводчик формы в env-матрицу.