Files
clickstream-ch-kafka-supers…/.scratch/handoffs/20260705-2212-generator-cross-review-fixes.md
T
ddadmin 0faa5cc219 docs(generator): добавлен handoff после цепочки 15-18
- Зачем:
  - coordinator-loop требует handoff для внешнего кросс-линейного ревью.
- Что:
  - добавлена записка с индексом изменений, ревью и открытыми рисками.
  - журнал фиксирует завершение финального review и handoff.
- Проверка:
  - staged-состав содержит только handoff и журнал.
2026-07-05 22:13:31 +03:00

4.5 KiB
Raw Blame History

Handoff: fixes after generator cross-line review

Дата: 2026-07-05 22:12. Жанр: handoff по ADR-0003 после coordinator-loop 15 -> 16 -> 17 -> 18.

Что закрыто

  • 15: граница миров после обновления, clean/reset и host-запусков. Коммиты: 080d5ae, 108053b.
  • 16: свежий стенд и generator_control без неявных ручных шагов. Коммиты: 27947ce, 9804d0b.
  • 17: доверенные проверки startup-history и Superset. Коммиты: 00c97eb, 6731349.
  • 18: курс 00/01/05 проходит по startup-history на чистом стенде. Коммиты: 77e4fb6, 6d64f39.
  • Follow-up 19: отдельная задача на единые make test и make lint. Коммит: 2778eae.
  • Финальный review fix: документация больше не советует обычный make generated-history-check после backfill-only пути. Коммит: 8e1c733.

Ключевые стыки реализации

  • generator/src/clickstream_generator/stand_clean.py — общий guard чистого стенда для Airflow и host-путей.
  • scripts/assert_stand_clean.sh — host-проверка перед backfill/import/continue.
  • airflow/dags/generator_control_dag.py — pause-check etl_pipeline до мутирующих веток.
  • scripts/check_generated_analytics.sh — manifest boundary, fail-closed live seam, непустой ODS.
  • scripts/run_generated_history_runtime_check.sh — bounded runtime gate для daily-wave + live seam.
  • superset/create_dashboard.py — sync ограничен чартами целевого dashboard.
  • docs/course/lessons/00_kafka_intro.md, docs/course/lessons/01_kafka_to_clickhouse.md, docs/course/lessons/05_monitoring.md — курс согласован с startup-history, no-live default и consumer lag.

Проверки

  • Issue 15: make generator-test, docker compose config --quiet, py_compile, bash -n.
  • Issue 16: make generator-test, docker compose config --quiet, py_compile, make clean, make up, make ddl.
  • Issue 17: Docker target tests, make generator-test, py_compile, bash -n, make generated-history-runtime-check.
  • Issue 18: doc rg, git diff --check, make generated-history-analytics, make up.
  • Финальный chain review Gibbs: initial CHANGES_REQUESTED, narrow rerun APPROVED.

Происхождение ревью

  • 15: gate; task reviewer Ptolemy high, code reviewer Linnaeus high; оба rerun APPROVED.
  • 16: code reviewer Laplace high; primary review found paused-DAG order bug, later reruns APPROVED.
  • 17: code reviewer Bacon high; found Superset ownership and live-seam defaults; bounded runtime gate rerun APPROVED.
  • 18: docs/code reviewer Hume high; found Prometheus scrape-count drift; rerun APPROVED.
  • Финал: chain reviewer Gibbs xhigh; found docs drift around generated-history-check; rerun APPROVED.

Отклонения процесса

  • Локальный uv run ... pytest у координатора падал до pytest из-за snap-confine / cap_dac_override. Для координаторского gate целевые тесты запускались через Docker-образ generator:test. Это вынесено в issue 19.
  • Первичный runtime gate issue 17 через полный daily-wave был остановлен: прогон был активным, но слишком долгим для коммит-гейта. После этого добавлен bounded make generated-history-runtime-check.
  • Несколько стендовых проверок чистили Docker volumes. Это ожидаемо для issue 16-18 и зафиксировано в журнале.

Открытые риски

  • Кросс-линейное ревью другой родословной не выполнено в этом coordinator-loop. Нужен отдельный проход по коммитам 15-18 и финальному fix.
  • Issue 13 остаётся needs-triage: доливка истории от слепка должна опираться на закрытые инварианты 15 и 17.
  • Issue 19 ready-for-agent: нужны единые make test и make lint, чтобы будущий коммит-гейт не собирался вручную.