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

3.6 KiB
Raw Blame History

10 — Технические риски: ORCH-081 (ORCH-52h)

ID Риск Вероятн. Влияние Митигация
R-1 Floor маскирует опечатку. Если floor применить ПОСЛЕ/ВМЕСТО валидации, мусорное turbo подменится на floor вместо дропа → регрессия never-break ORCH-41. низк. средн. Floor строго ДО валидации и ТОЛЬКО при пустом резолве (значение turbo непустое → floor не трогается → дроп). Покрыть тестом FR-3 (опечатка → '').
R-2 Floor перебивает явный конфиг. Ошибка порядка → floor встанет выше default/per-agent и ORCH_AGENT_EFFORT_DEFAULT=max перестанет применяться. низк. средн. Floor — строго уровень 4 (ниже default). Тест FR-2: непустой default/per-agent/override побеждает floor.
R-3 Зависимость от pydantic-internal model_fields[...].default. Будущий мажор pydantic может сменить API → floor отвалится. низк. низк. Публичный стабильный атрибут pydantic v2. Тест AC-1/AC-2 поймает регрессию сразу (floor вернёт не то/пусто). Фиксируется версией pydantic в зависимостях.
R-4 Дрейф floor vs config при выборе hardcoded-карты. Снят архитектурно: floor = class-default поля, единый источник правды (см. ADR-001, вариант B отклонён).
R-5 Self-hosting: правка резолва эффорта затрагивает запуск ВСЕХ агентов всех проектов общего инстанса; ошибка ломает конвейер enduro-trails тоже. низк. высок. Обязательный deploy-staging (8501) перед прод-деплоем; прод-контейнер не ронять вне штатного хука; Confirm Deploy-гейт. Post-deploy проверка AC-6 по логам запуска агента.
R-6 Прод-.env снова с пустыми ORCH_AGENT_EFFORT_* после деплоя (урок 08.06: git-managed env не переживает). средн. низк. Именно это и закрывает фикс (FR-1, code-side robust): эффорт резолвится в floor независимо от состояния .env. Приведение .env к каноне — рекомендация, не зависимость.
R-7 xhigh не принимается CLI-слоем. developer-апгрейд бессмыслен, если xhigh ∉ VALID_EFFORTS. очень низк. средн. xhigh уже в VALID_EFFORTS (launcher.py:22); добавления не требуется — только верификация тестом (FR-5).

Сводный вывод

Изменение локализовано в resolve_agent_effort + один дефолт config.py; не трогает API, схему БД, QG-гейты, model-резолв и путь проброса --effort. Главный остаточный риск — операционный (R-5, self-hosting), снимается штатным staging-гейтом. Контракт ORCH-41/ORCH-074 сохранён, обратная совместимость полная.