docs(generator): добавлен handoff после цепочки 15-18

- Зачем:
  - coordinator-loop требует handoff для внешнего кросс-линейного ревью.
- Что:
  - добавлена записка с индексом изменений, ревью и открытыми рисками.
  - журнал фиксирует завершение финального review и handoff.
- Проверка:
  - staged-состав содержит только handoff и журнал.
This commit is contained in:
2026-07-05 22:13:31 +03:00
parent 8e1c7330e1
commit 0faa5cc219
2 changed files with 85 additions and 0 deletions
@@ -573,3 +573,5 @@
drift рядом.
- 22:11 Финальное chain review narrow rerun `Gibbs`: `APPROVED`. Findings:
нет. Chain-level решение: финальный review закрыт, собрать handoff.
- 22:12 Handoff для кросс-линейного ревью собран:
`.scratch/handoffs/20260705-2212-generator-cross-review-fixes.md`.
@@ -0,0 +1,83 @@
# 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`, чтобы
будущий коммит-гейт не собирался вручную.