Files
orchestrator/docs/work-items/ORCH-042/10-tech-risks.md
claude-bot 0ac50b8c73
All checks were successful
CI / test (push) Successful in 12s
architect(ET): auto-commit from architect run_id=168
2026-06-06 10:05:26 +00:00

5.2 KiB
Raw Permalink Blame History

10 — Технические риски: ORCH-042

См. 02-trz.md, 06-adr/ADR-001-tracker-bump-mode.md, 03-acceptance-criteria.md.

Шкала: Вероятность × Влияние ∈ {низк., сред., выс.}.

# Риск Вер. Влияние Митигация Контроль (AC/TC)
R-1 Регрессия защиты от дублей — рефактор update_task_tracker ломает edit-ветку, возвращается боль «~15 карточек». низк. выс. edit — дефолт и неизменяемая ветка; bump добавляется отдельной веткой if mode == "bump", edit-код не трогается. Полное покрытие edit-регрессии тестами. AC-3..AC-6, AC-8; TC-03..TC-06, TC-24
R-2 Двойная отправка / накопление карточек в bump — delete и send рассинхронизированы, в чате >1 карточки. низк. сред. Инвариант: ≤1 send_telegram за вызов; set_tracker_message_id только при успешном send; delete best-effort и не блокирует. AC-8, AC-10, AC-11; TC-08, TC-09, TC-11
R-3 Затирание tracker_message_id на None при транзиентном send-fail → потеря указателя, следующий апдейт не найдёт старое. низк. сред. repoint только при new_mid is not None; при None id сохраняется как есть. AC-13; TC-10
R-4 Нарушение контракта «never raises» — исключение из delete_telegram/новой ветки валит конвейер (групповой риск из-за общей очереди). низк. выс. delete_telegram обёрнут try/except → bool; внешний try/except в update_task_tracker сохранён; сеть/httpx мокаются в тестах. AC-12, AC-14; TC-12..TC-17
R-5 Ложная классифик. delete-ответа — неизвестный ok:false принят за «исчезло» (или наоборот), вечные ретраи/тишина. низк. низк. Явные _DELETE_GONE_MARKERS → True; всё прочее (включая 5xx) → False; повтор delete на следующем апдейте безопасен (идемпотентно). AC-12; TC-13, TC-14
R-6 Падение CI на старых ассертах — тесты tests/test_telegram_tracker.py проверяют EN-метки/«Ревью БРД». сред. сред. ТЗ §5 явно требует обновить существующие ассерты под русские метки и «Подтверждение BRD» в том же PR. AC-20; TC-18, TC-21, TC-24
R-7 Сломанная human-gate индикация показан до прохождения approve-gate (ввод в заблуждение). низк. низк. только при заданном brd_review_ended_at; ветка ожидания (review_seconds is None, ) не меняется. AC-16; TC-19, TC-20
R-8 Скрытая зависимость от display-label — русификация _TRACKER_STAGES ломает логику, завязанную на текст метки. низк. сред. Меняется только 2-й элемент кортежа (label); ключи стадий и имена агентов (_STAGE_ACTIVE_AGENT, last_done, БД) не трогаются. AC-17; TC-21
R-9 Self-hosting: прод-сбой при выкатке self — общая БД/очередь, рестарт орка останавливает все проекты. низк. выс. Изменения только в коде нотификаций, миграций БД нет; обязательная страховка deploy-staging (8501) перед prod (CLAUDE.md, INFRA.md, adr-0003). Дефолт edit → даже при выкатке поведение не меняется без явного флага. стадия deploy-staging; check_staging_status
R-10 Документация не обновлена в том же PR (internals.md / .env.example / CHANGELOG) → REQUEST_CHANGES. сред. низк. ТЗ §5 и AC-21 фиксируют список; reviewer проверяет наличие. AC-21

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

Все риски — низкие по вероятности при соблюдении инвариантов из ADR-001 (edit-дефолт, ≤1 send/вызов, repoint-only-on-success, never-raises, правка только display-label). Остаточный групповой self-hosting-риск (R-9) полностью покрывается обязательным deploy-staging-гейтом и тем, что дефолтное поведение не меняется. Блокеров для перехода на стадию development нет.