3.8 KiB
3.8 KiB
Технические риски — ORCH-058
Work Item ID: ORCH-058
| ID | Риск | Вероятность / Влияние | Митигация |
|---|---|---|---|
| R-1 | Полу-конфигурация «B без A» → вечный fail-fast деплоя (B падает, никто не пересобирает) | Низк. / Высок. (deadlock, BR-5) | Единый kill-switch image_freshness_enabled включает/выключает A и B как целое; раздельных флагов A/B нет. Дефолт — оба включены. AC-6. |
| R-2 | Рассинхрон якоря: merge-gate делает rebase ПОСЛЕ того, как агент прогнал staging_check → HEAD изменился | Сред. / Сред. | Якорь берётся ПОСЛЕ merge-gate; шаг A пересобирает из post-rebase HEAD; авторитетный staging_check — против свежего образа. Pre-check агента — soft. |
| R-3 | Гонка: между пересборкой A и Phase B human-approve worktree HEAD сместился | Низк. / Высок. | B сверяет лейбл образа с EXPECTED_REVISION=validated_revision на момент Phase B; рассинхрон → fail-closed exit 1, прод не трогается. AC-2/AC-3. |
| R-4 | Пустой лейбл (ручная/legacy/CI-сборка без --build-arg GIT_SHA) |
Сред. / Высок. | Fail-closed: пустой лейбл → несоответствие → exit 1. By design. Шаг A всегда передаёт GIT_SHA. IR-3 фиксирует требование к любым сборкам. |
| R-5 | Латентность ребра: +docker build staging +recreate +повторный staging_check перед approve | Высок. / Низк. | Bounded timeouts; выполняется в monitor-треде (как merge-gate re-test). staging_check --mode stub без LLM-трат. Приемлемо. |
| R-6 | Сборка/recreate случайно затронет прод (8500) | Низк. / Критич. | Режим хука --build-staging со STAGING-safe дефолтами (8501, --profile staging); код шага A никогда не передаёт прод-параметры. AC-9. Тест-инвариант: цель != прод. |
| R-7 | docker build на хосте падает (нет места, недоступен daemon, битый worktree) | Низк. / Сред. | never-raise: check_staging_image_fresh → (False, reason) + release lease → откат на development (не зависание, не тихий промоут). AC-8. |
| R-8 | Двойной staging_check воспринят как баг/лишняя трата | Сред. / Низк. | Документировано как намеренное (soft pre-check агента vs авторитетный код против промоутимого образа). Будущая оптимизация — облегчить шаг A. |
| R-9 | Самохостинг-bootstrap: фича не действует, пока сама не в проде (старый прод-образ без лейбла) | Высок. (однократно) / Сред. | Bootstrap-чеклист (IR-7): первый реальный staging-прогон + ручной разрыв; B обратносовместим (без EXPECTED_REVISION — старое поведение), раскат поэтапный через флаг. |
| R-10 | Деградация не-self репо | Низк. / Высок. | Условность (image_freshness_repos пусто → только orchestrator); для прочих — (True, "N/A") + хук без EXPECTED_REVISION = прежний путь. AC-5. |