- Зачем:
- подготовить цепочку 12 -> 14 -> 09 -> 10 -> 08 к передаче в coordinator-loop:
задаче 12 не хватало решений после 07 и 11, задача 14 родилась из обсуждения
учебного UX (суточная волна вживую).
- Что:
- issue 12 (DAG-пульт): решения 2026-07-04 — без Docker-доступа из Airflow,
операции как Python-код генератора в тасках, генератор без автостарта,
границы пульта, предпроверки чистоты (топики + STG), ожидание ETL перед
check; учтены находки адверсарного ревью и ревью Codex.
- issue 14 (новая): профиль daily-wave переводится на speed=60 при тике 1 с —
модельный час за настенную минуту без изменения фактуры мира.
- issue 08: мягкие зависимости от 14 и 09 (артефакт курса рождается после
них), режим ревью; PRD: задача 14 в списке и графе, 12 помечена дооформленной.
- Проверка:
- вычитка: статусы задач ready-for-agent, порядок в PRD и Blocked by
согласованы; mermaid-граф рендерится.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
6.5 KiB
Status: ready-for-agent
Миграция учебных материалов с архивного сида на генерацию
Parent
.scratch/generator-model-time-startup-history/PRD.md
Why
После перевода штатного аналитического контура на стартовую историю генератора
часть учебных материалов всё ещё описывает data/*.jsonl как основной источник
данных стенда. Это нельзя править внутри issue 06: потребуется пройти уроки и
сохранить понятный учебный путь.
Развилка «отдельный урок про генератор vs скрытая инфраструктура» закрыта
(2026-07-04, docs/course/PRD.md §7): отдельного урока не будет, генератор —
скрытая инфраструктура. Устройство генератора — это разработка бэкенда и
математика, не инженерия данных; в цели курса не попадает. Уроки адаптируем,
не вводя марковские цепи и сложный Python в путь менти.
What to build
Обновить курс и связанные материалы (тест-план) так, чтобы основной путь был:
startup-history/backfill -> Kafka -> STG -> ODS -> DDS -> DM -> Superset
Архивный data/*.jsonl оставить только как временную фактуру генератора.
Генератор в уроках подаётся как готовый источник данных стенда («откуда берутся
данные»), без погружения в его устройство.
Acceptance criteria
docs/course/больше не ведёт ученика черезmake dataилиkafka_loadкак основной путь получения аналитических данных.- Уроки явно объясняют, что
data/*.jsonlпока остаётся кладовкой значений для генератора, а не источником аналитического контура. - Уроки не вводят устройство генератора (марковская модель, внутренний Python) в путь менти: генератор упоминается только как готовый источник данных.
- Тест-план согласован с новым штатным путём запуска.
- Если для уроков нужны новые скриншоты или ручная оценка dashboard, это вынесено в HITL-приёмку.
Notes
Реальный объём больше, чем кажется: make data вплетён во все уроки 00–05,
а не только в урок 06 (проверка 2026-07-04, grep -rn "make data" docs/course/):
docs/course/README.md— быстрый старт черезLIMIT=50 make data;lessons/00_kafka_intro.md—make dataиграет роль трекера, на нём построен весь разбор партиций и offset'ов;lessons/01–05—LIMIT=50 make dataв запуске, «полном сбросе» и таблицах проверок;docs/TEST_PLAN.md— сценарии на старом пути.
Тонкое место — урок 00: там ручная заливка используется как учебный приём
(наглядно видно сообщения в топике). Решить при миграции, чем её заменить, не
потеряв наглядность; критерий приёмки запрещает make data как основной путь
аналитики, а не как локальный демонстрационный приём внутри урока.
Схема потока в docs/course/PRD.md §1 уже обновлена (поправка 2026-07-04) — PRD
дополнительно править не нужно.
Демо-материалов в скоупе нет: демо-употребление стенда устарело (демо выросло в
отдельный проект), шпаргалки удалены из репозитория 2026-07-04 (см. поправку в
шапке docs/course/PRD.md).
Рекомендуемый режим ревью по coordinator-loop: обычный (документы и уроки, кода генератора и state задача не трогает); человеческая приёмка — проход по урокам через пульт (HITL).
Blocked by
- Жёстких блокеров нет: штатный путь (
make generated-history-analytics) уже существует, уроки можно вести через него. - Мягкая зависимость от
07-startup-history-portable-artifact-and-usage-docs.md: runbook из issue 07 изменит команды запуска и восстановления стенда, а уроки будут на него ссылаться. Делать эту задачу после него, иначе уроки придётся править дважды. - Мягкая зависимость от
12-generator-control-dag.md(решение 2026-07-04): человеческая приёмка миграции — это проход по урокам 00–05, и вести её удобнее через DAG-пульт, а не через консоль. Поэтому эта задача идёт последней в очереди — после 12. Порядок всей очереди — в PRD, раздел «Задачи». - Мягкая зависимость от
14-fast-teaching-profile.mdи09-seam-browser-fixture-not-preserved.md(дополнено 2026-07-04): обе меняют мир — 14 переводит профильdaily-waveна быстрый темп, 09 меняет схему state. Артефакт стартовой истории для уроков должен родиться после них, иначе он протухнет по антисмешиванию и проход по урокам придётся повторять.