Files
orchestrator/docs/work-items/ORCH-074/10-tech-risks.md

4.1 KiB
Raw Permalink Blame History

Технические риски — ORCH-074

Work Item ID: ORCH-074 Связан с: ADR-001 (06-adr/ADR-001-model-name-validation.md).

ID Риск Вероятность Влияние Митигация
R-1 Валидация роняет запуск агента (исключение вместо graceful-деградации) — нарушение never-break, встал бы конвейер всех проектов. Низкая Высокое Helper is_valid_model — чистый предикат без исключений; невалидное → logger.warning + откат на default/"". Покрыто TC-03..TC-05, TC-10.
R-2 Fallback обходит валидацию (код-факт: launcher.py:374 читает agent_fallback_model напрямую, мимо resolve_agent_model). Средняя (если позже зададут fallback) Среднее ADR-001 решение 3: один helper применяется ТАКЖЕ на месте чтения fallback. Мусорный fallback дропается с warning. Покрыто TC-11.
R-3 Регрессия enduro per-project override — валидация ломает корректный не-self override (общий инстанс/БД/очередь). Низкая Высокое Валидные claude-имена проходят формат-чек без изменения поведения; механизм приоритетов ORCH-041 не меняется. Покрыто TC-08.
R-4 Формат-чек пропускает структурную опечатку вида claude-opus-typo (валидный префикс, несуществующая модель). Средняя Низкое Принятый компромисс (ADR-001): финальный авторитет — CLI; never-break + обработка exit-code в _monitor_agent покрывают отказ запуска. Allowlist отвергнут как воссоздающий мину устаревания (G1).
R-5 frontmatter-генератор возвращает model: обратно → мина P1 оживает. Низкая Среднее Проверить отсутствие автогенератора, возвращающего model:; frontmatter остаётся описательным. Покрыто TC-01/TC-02 (CI-гард на отсутствие ^model:).
R-6 Хардкод версии модели в launcher при добавлении валидации. Низкая Среднее Префикс claude- зашит осознанно (CLI-специфика); каноничная ВЕРСИЯ остаётся только в config.py::agent_model_default. Регэксп версию не фиксирует.
R-7 Self-hosting деплой — рестарт прод-контейнера встанет конвейер всех проектов (enduro). Высокое Изменение применяется к будущим запускам; прод-деплой только через staging-гейт (8501) и Plane-статус «Confirm Deploy». Без немедленного рестарта прода.

Инварианты (должны держаться после изменения)

  1. never-break: невалидная модель/эффорт/fallback НЕ роняет запуск агента — деградация на default/CLI-дефолт + лог.
  2. Один источник правды о модели: config (agent_model_*); frontmatter — описательный.
  3. Обратная совместимость ORCH-041: все валидные имена (claude-opus-4-8, enduro override) резолвятся без изменения поведения; порядок приоритетов и сигнатуры не меняются.
  4. Детерминизм: все 6 агентов = claude-opus-4-8 (G3/routing выключен, G4/fallback выключен).