docs(generator): закрыта задача 16 в трекере

- Зачем:
  - coordinator-loop отделяет рабочие изменения от статусов и журнала.
- Что:
  - задача 16 переведена в done с закрытыми критериями.
  - журнал дополнен ревью, стендовым gate и коммитами.
- Проверка:
  - staged-состав содержит только issue 16 и журнал.
This commit is contained in:
2026-07-05 20:47:41 +03:00
parent 27947cee57
commit 9804d0beae
2 changed files with 66 additions and 7 deletions
@@ -391,3 +391,62 @@
`git diff --check` PASS. Diff в границах issue 15; журнал не staged.
- 20:20 Issue 15 рабочий коммит: `080d5ae`
(`fix(generator): исключено смешение миров при запуске`).
- 20:22 Перед issue 16: дерево clean; dependency issue 15 закрыта. Issue 16
запущен worker-у. Режим ревью: обычный; worker reasoning_effort=`medium`;
code review после реализации `high`. Условие эскалации: широкая переделка
DAG-зависимостей вместо предпроверки паузы переводит issue в гейт.
- 20:28 Issue 16: worker вернул `DONE_WITH_CONCERNS`. Индекс: README/course
называют `uv` и пререквизиты; quick start добавляет `make ddl`;
`make up` пересобирает Airflow; `generator_control` проверяет pause
`etl_pipeline` перед `TriggerDagRunOperator`; решение Airflow 2.10.5
проверено через Context7 и зафиксировано рядом с выбором API; runbook
предупреждает про дыру `daily-wave` x60. Checks: red phase PASS; generator
tests PASS (186); DAG contract PASS (16); compose config PASS. Concern:
полный clean-stand проход не выполнен.
- 20:28 Issue 16 code review запущен координатором: свежий observer-субагент
`Laplace`, reasoning_effort=`high`, без правок репозитория и среды.
- 20:30 Issue 16 code review `Laplace`: `CHANGES_REQUESTED`. Finding:
pause-check `etl_pipeline` стоит после `run_backfill`, поэтому отказ
происходит уже после записи истории и повторный backfill упирается в
clean-stand guard. Индекс возвращён worker-у дословно.
- 20:33 Обновлённый `coordinator-loop` перечитан по просьбе пользователя.
Процессный вывод по тестам уточнён: шумные команды коммит-гейта дальше
идут через файл-лог, в контекст координатора попадает только сводка.
- 20:33 Issue 16: worker вернул `DONE_WITH_CONCERNS` после code review.
Исправлено: paused-check вынесен перед `precheck`/`run` для backfill/import;
контрактный тест закрепляет порядок branch -> paused-check -> precheck ->
run -> trigger ETL. Checks: DAG contract PASS; generator tests PASS (186);
compose config PASS. Concern: полный Airflow UI clean-stand сценарий не
выполнен.
- 20:33 Issue 16 code narrow rerun отправлен `Laplace`: проверить закрытие
high-находки по порядку pause-check и отсутствие нового рядом.
- 20:34 Issue 16 code narrow rerun `Laplace`: `APPROVED`. Findings: нет.
Chain-level решение: открыть коммит-гейт 16.
- 20:38 Issue 16 commit gate: `uv run ... pytest` не дошёл до pytest из-за
`snap-confine`/`cap_dac_override` в окружении координатора; log analyst
подтвердил ошибку запуска, не тестов. `make generator-test` через Docker:
PASS (186 tests) после запуска вне sandbox. `docker compose config --quiet`
PASS; `py_compile` PASS; `git diff --check` PASS. Clean-stand probe:
`make clean` PASS, `make up` FAIL на `superset-init`; log analyst finding:
`superset-init` падает с `NoSuchTableError: dm.v_events_enriched` до шага
`make ddl`. Finding возвращён worker-у как failed commit gate.
- 20:42 Issue 16: worker вернул `DONE_WITH_CONCERNS` после failed commit
gate. Исправлено: `make up` поднимает базовый набор без `superset`/
`superset-init`, quick start доходит до `make ddl`; README/OPERATIONS
фиксируют, что Superset-дэшборд собирается позже, когда DM готов; контрактный
тест ловит порядок. Checks worker-а: DAG contract PASS; compose config PASS;
`py_compile` PASS; `git diff --check` PASS; `make generator-test` PASS
(186); `make up` PASS; `make ddl` PASS. Concern: базовые контейнеры
остались запущены после проверки.
- 20:42 Issue 16 code narrow rerun отправлен `Laplace`: проверить новый
контракт `make up` без раннего `superset-init` и соседний quick start drift.
- 20:44 Issue 16 code narrow rerun `Laplace`: `APPROVED`. Findings: нет.
Chain-level решение: повторить коммит-гейт 16 после commit-gate фикса.
- 20:46 Issue 16 final commit gate: `make generator-test` PASS (186 tests);
`docker compose config --quiet` PASS; `py_compile` PASS; `git diff --check`
PASS; `make clean` PASS; `make up` PASS; `make ddl` PASS. Diff в границах
issue 16; журнал не staged. Стенд после проверки поднят в базовом состоянии
с применённым DDL.
- 20:46 Issue 16 рабочий коммит: `27947ce`
(`fix(airflow): исправлен запуск пульта на свежем стенде`).
@@ -1,4 +1,4 @@
Status: ready-for-agent
Status: done
# Свежий стенд и Airflow-пульт без догадок
@@ -19,18 +19,18 @@ Status: ready-for-agent
## Acceptance criteria
- [ ] Quick start и курс явно называют `uv` и остальные обязательные
- [x] Quick start и курс явно называют `uv` и остальные обязательные
пререквизиты до первой команды, которая их требует.
- [ ] Быстрый старт на чистом стенде подготавливает DDL до проверок генератора;
- [x] Быстрый старт на чистом стенде подготавливает DDL до проверок генератора;
отсутствие таблиц не падает сырым `UNKNOWN_TABLE`.
- [ ] После обновления репозитория Airflow получает новые зависимости и DAG-и
- [x] После обновления репозитория Airflow получает новые зависимости и DAG-и
без ручных догадок: через пересборку, явную команду или ясно описанный шаг.
- [ ] `generator_control` не висит навсегда, если зависимый `etl_pipeline`
- [x] `generator_control` не висит навсегда, если зависимый `etl_pipeline`
стоит на паузе: оператор получает понятный отказ или инструкцию до запуска
долгого ожидания.
- [ ] Решение по Airflow API, проверенное через Context7 для текущей версии,
- [x] Решение по Airflow API, проверенное через Context7 для текущей версии,
зафиксировано в коде или документации кратко и рядом с местом выбора.
- [ ] Runbook предупреждает, что долгий простой `daily-wave` на скорости 60
- [x] Runbook предупреждает, что долгий простой `daily-wave` на скорости 60
создаёт большую дыру в модельном времени, и советует reset или повторный
импорт стартовой истории.