docs(adr): решён пульт мира — работники, выключатель, контейнер

Зачем: модельный день прогоняется только руками, и владельцу нечем
проверять процессы стенда вживую. Этап 3 без дага не существует вовсе,
поэтому форму пульта и способ вызова генератора надо решить раньше.

Что: ADR 0009 — работники без расписания (`world_next_day` пачкой,
`world_live_day` в темпе) и выключатель `world_live` без своей работы,
ждущий дочерний прогон триггером; генератор зовётся `DockerOperator` в
каноническом контейнере, потому что в образе Airflow ему не жить
(Python 3.14 против 3.13); позиция ставится как «последний сыгранный + 1»,
и это правило вместо сторожа. Пакетная автоматика отложена, не отвергнута.
Расхождения внесены в спеку генератора: позицию ставит сыгравший, у живого
дня появился выключатель. В словарь добавлен «пульт мира».

Проверка: `make config-test` зелёный; API Airflow 3.3 (пауза и ручной
запуск, ожидание триггера по идентификатору прогона, привязка сенсора к
логической дате, `DockerOperator`) сверено через MCP Context7, версия
Python в образе — замером.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 12:23:43 +03:00
co-authored by Claude Opus 5
parent 9d43ff5489
commit aa4797ae93
3 changed files with 165 additions and 5 deletions
+5
View File
@@ -120,6 +120,11 @@ _Избегать_: манифест, мини-манифест
Проигрывание готового дня пачкой, без темпа: заливка снимка при старте
стенда, пересборки и проверки.
**Пульт мира**:
Даги Airflow, которыми двигают ось модельного времени: работники играют день —
пачкой или в темпе, — а выключатель держит стенд живущим, пока включён.
_Избегать_: управляющие даги
**Граница суток**:
Единственный структурный шов модели: сессии режутся по ней, слепок заказов
снимается на ней, день проживается только целиком.