---
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); запреты — компактным списком ❌→✅ в `<constraints>` |
| 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). Ключевое предписание исполнителю: рефакторить форму
**без потери ни одной функциональной строки**; при сомнении «перенести или выбросить» — переносить.
