--- work_item: ORCH-077 stage: architecture author_agent: architect status: ready-for-review created_at: 2026-06-09 model_used: claude-opus-4-8 --- # 10 — Технические риски: ORCH-077 — ORCH-52d: оптимизация 6 системных промптов по Anthropic Work Item: **ORCH-077** · Repo: **orchestrator** (self-hosting) · Стадия: architecture > Информационный (гейтом не парсится). Перечисляет риски реализации и митигейшн. > Главный класс риска — **анти-регресс поведения агента прода**: промпт исполняется на КАЖДОЙ > задаче ВСЕХ проектов (orchestrator + enduro-trails) из общего инстанса. ## Реестр рисков | ID | Риск | Вер. | Влия. | Митигейшн | |----|------|------|-------|-----------| | TR-1 | **Регресс поведения агента**: при рефакторе формы потеряна рабочая инструкция → агент ломает выход для всех проектов | Сред. | Выс. | Построчная карта переноса (ADR D5) + структурные тесты `test_agent_prompts_canon.py` + построчный review против инвентаря TRZ §FR-6; in-vivo A/B (D6) | | TR-2 | **Ложный гейт-провал**: случайно изменён регистр/имя/значения machine-verdict ключа (`verdict:`/`result:`/`staging_status:`/`deploy_status:`/`security_status:`) → парсер не находит вердикт | Низ. | Выс. | Эмиссия схемы строго аддитивна (ADR D2); структурный тест проверяет точный регистр ключей и значений; `frontmatter.parse_frontmatter` читает по имени (порядок неважен) | | TR-3 | **Потеря self-hosting-запрета deployer'а**: пропал «не рестартить 8500 изнутри» / canonical `docker exec orchestrator-staging` / merge-guard `pr_already_merged` → агент роняет прод-конвейер всех проектов | Низ. | Крит. | deployer — самый строгий инвентарь §FR-6; отдельные структурные ассерты на 3 маркера; reviewer проверяет deployer построчно в первую очередь | | TR-4 | **Раздувание промпта**: XML-канон + few-shot «утопят» ключевые запреты, агент их проигнорирует | Сред. | Сред. | Эталоны ссылкой, не инлайном (D3); контроль объёма (NFR-4); запреты — компактным списком ❌→✅ в `` | | TR-5 | **Некорректный `model_used`**: захардкожена неверная модель вместо резолва ORCH-41 | Низ. | Низ. | Промпт ссылается на резолв ORCH-41 и таблицу README; текущее значение `claude-opus-4-8` для всех ролей; информационное поле (не гейт) | | TR-6 | **Сломан frontmatter промпта**: правка тела случайно затронула YAML-шапку (`name`/`description`/`tools`) или вернула `model:` | Низ. | Сред. | `test_agent_frontmatter_no_model.py` остаётся зелёным (FR-7); правится только тело ниже frontmatter | | TR-7 | **In-vivo самоприменение** (D6): дефект нового промпта влияет на reviewer/tester самой ORCH-077 | Низ. | Сред. | Вердикт-логика гейтов читается кодом из frontmatter, не зависит от текста промпта; анти-регресс D5; откат `git revert` | | TR-8 | **Расползание scope в код**: соблазн «заодно» включить `frontmatter_validation_strict` или тронуть `src/` | Низ. | Выс. | AC-5 (git diff только `.openclaw/*`, `docs/**`, `CHANGELOG.md`, новые `tests/test_*`); ADR D7 фиксирует границу; reviewer проверяет diff | | TR-9 | **Несогласованность `status` с machine-verdict**: например `status: ready` при `verdict: REQUEST_CHANGES` → путаница наблюдателя | Низ. | Низ. | Карта ADR D2 предписывает `status`, согласованный с вердиктом для вердикт-ролей; информационное поле, гейт не зависит | ## Сводный вывод Доминирующий класс — **анти-регресс поведения агентов прода** (TR-1/TR-3), критичный из-за self-hosting и общего инстанса. Изменение при этом **docs/prompts-only**, чисто текстовое, обратимое `git revert` без миграций; loading-model (cat промпта из worktree, ADR D6) исключает прод-рестарт → выкатка не несёт классического self-hosting-риска рестарта. **Эскалация `arch:major-change` НЕ требуется**: новых стадий/компонентов/QG/смены БД нет; `STAGE_TRANSITIONS`/`QG_CHECKS`/`check_*`/схема БД не трогаются (BR-5). **Возврат в анализ НЕ требуется**: ТЗ выполнимо в рамках принципов архитектуры. Остаточный риск для прод-конвейера — **низкий при соблюдении D5** (построчная карта + структурные тесты + приоритетный review deployer/reviewer). Ключевое предписание исполнителю: рефакторить форму **без потери ни одной функциональной строки**; при сомнении «перенести или выбросить» — переносить.