5.3 KiB
5.3 KiB
10 — Технические риски
Work Item: ORCH-044 Основано на: ADR-001
| ID | Риск | Вероятн. | Влияние | Митигация |
|---|---|---|---|---|
| R-1 | Ложноположительный auth-fail. Неверно резолвленный путь к .credentials.json (иной HOME/маунт) ⇒ preflight всегда FAIL ⇒ не клеймится ни одна job всех проектов (общая очередь, self-hosting). |
Средняя | Высокое | Единый источник HOME (AgentLauncher.AGENT_HOME, зеркально _claude_bin()); тумблер ORCH_PREFLIGHT_CHECK_AUTH=false; обязательная проверка на staging (реальный путь == резолвленный) перед прод-деплоем; информативный reason в /queue + warning-лог. |
| R-2 | Fail-safe-провал на легитимном пустом выводе. Агент легитимно завершился exit 0 с непустым логом, но _validate_result ошибочно счёл результат невалидным ⇒ ложный failed/requeue (регрессия AC-13). |
Низкая | Среднее | Контракт извлечения JSON — тот же, что у работающего usage-учёта (_extract_last_json_object); регресс-тест TC-15 (валидный лог ⇒ done); валидатор не трогает успешный путь, кроме булева флага. |
| R-3 | expiresAt без сетевой валидации. Реально отозванный, но ещё не истёкший по времени токен пройдёт проактивную проверку (a). |
Средняя | Среднее | Защитная сетка постфактум (b): маркер Not logged in в логе ⇒ error + preflight.reset_cache() ⇒ следующий тик переоценивает auth; полная сетевая валидация — вне scope (BR-1). |
| R-4 | expiresAt отсутствует/нечисловой в файле (иная версия CLI / иной формат) ⇒ проверка трактует как OK и пропускает. |
Низкая | Низкое | Осознанный компромисс против ложных срабатываний (см. ADR §P1.5); отсутствие токена/accessToken по-прежнему ⇒ FAIL; постфактум-маркер ловит реальный «не залогинен». |
| R-5 | Часовой рассинхрон контейнер vs токен ⇒ валидный токен сочтён истёкшим. | Низкая | Среднее | ORCH_AUTH_EXPIRY_SKEW_SECONDS (default 0) для запаса; контейнеры на одном хосте (mva154) — рассинхрон маловероятен. |
| R-6 | Транзиентный auth (битый JSON в момент записи re-login). Чтение файла во время атомарной перезаписи ⇒ временный FAIL. | Низкая | Низкое | Кеш TTL сглаживает; следующий тик перечитает; fail-safe в сторону «подождать» (job остаётся queued, не теряется). |
| R-7 | Конфликт test-plan с коррекцией scope. 04-test-plan.yaml TC-09/TC-10/TC-11 проверяют --effort (variant B: «--effort не формируется»), но владелец исключил effort из ORCH-044 и оставил дефолты agent_effort_* = high. При дефолтной тест-конфигурации _spawn сформирует --effort high ⇒ TC-09 (ожидающий отсутствие флага) упадёт. |
Высокая | Среднее | Developer/Tester: адаптировать TC-09/10/11 под «effort не трогаем» (assert успешной сборки cmd без требования удаления флага, либо пометить как deferred→ORCH-50). Артефакт 04-test-plan.yaml — чужой этап (правило №3), архитектор его НЕ редактирует, только фиксирует расхождение здесь. AC-7/AC-8/AC-9 не применяются (см. 03-acceptance-criteria.md §P2). |
| R-8 | Постфактум auth-сброс кеша зацикливает. Повторные auth-провалы ⇒ повторные reset_cache(). |
Низкая | Низкое | reset_cache() лишь форсирует один пересчёт; следующий check() снова закеширует на TTL; цикла «горячего» чтения нет; job не клеймится при FAIL. |
Сводно
Доминирующий риск — R-1 (блок очереди ложным auth-fail при неверном пути) и организационный R-7 (test-plan vs scope). Оба закрываются: R-1 — staging-проверкой + тумблером, R-7 — правкой effort-тестов разработчиком/тестером согласно коррекции владельца.