Files
clickstream-ch-kafka-supers…/.scratch/generator-model-time-startup-history/issues/12-generator-control-dag.md
T
ddadminandClaude Fable 5 85f076e205 docs(generator): проведён триаж бэклога фичи, задачи 01-06 закрыты
- Зачем:
  - follow-up задачи после ревью 2026-06-14 лежали без триажа; решения по
    артефакту, громкому отказу и интерфейсу приняты 2026-07-04 и должны
    попасть в задачи до передачи исполнителю.
- Что:
  - задачи 07 (миграция курса) и 08 (артефакт) поменяны местами — номера
    отражают порядок; ссылки обновлены.
  - 07 (артефакт + runbook) дооформлен: импорт строго через Kafka (напрямую
    в ClickHouse не пишет), громкий отказ при несовместимом state с правкой
    спеки, граница runbook «использование, не устройство»; ready-for-agent.
  - 08 дооформлен: устройство генератора вне пути менти, реальный объём
    (make data во всех уроках 00-05), демо вне скоупа; ready-for-agent.
  - новые задачи: 11 глаголы/длительность/профили (после 07, до 12),
    12 Airflow-DAG как пульт (приоритет поднят), 13 доливка (после 09).
  - задачи 01-06 переведены в done (стояли ошибочные ready-for-human);
    PRD фичи дополнен списком задач 7-13 с порядком и зависимостями.
- Проверка:
  - head -1 .scratch/generator-model-time-startup-history/issues/*.md;
    grep по старым именам файлов ничего не находит вне handoff.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 16:39:40 +03:00

3.6 KiB

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-матрицу.