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

42 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
work_item: ORCH-078
stage: architecture
author_agent: architect
status: proposed
created_at: 2026-06-09
model_used: claude-opus-4-8
---
# 10 — Технические риски: ORCH-078 — ORCH-52e: трассировка `ORCH-NNN`
Work Item: **ORCH-078** · Repo: **orchestrator** (self-hosting) · Стадия: architecture
> Информационный документ (гейтом не парсится). Перечисляет риски реализации и митигейшн.
> Класс задачи — **docs + prompts-only**, нулевое касание кода (NFR-1) → доминируют риски
> регресса промптов и дублирования 52d, а не функциональные.
## Реестр рисков
| ID | Риск | Вер. | Влия. | Митигейшн |
|----|------|------|-------|-----------|
| TR-1 | **Дублирование 52d.** Правило чтения частично смежно с 52d-упоминаниями ADR текущей задачи → соблазн скопировать текст в каждый промпт (нарушение BR-6/AC-6). | Сред. | Низ. | D2: единый источник правила в `TRACEABILITY.md`; промпты несут короткую врезку-**ссылку**, не копию. Reviewer проверяет AC-6 (нет дословного повтора, 52d-канон цел). |
| TR-2 | **Регресс промптов.** Точечная врезка случайно сдвигает/ломает 5 XML-секций, 6 полей 52c-схемы или machine-verdict ключ (`verdict:`/`result:`/`staging_status:`/`deploy_status:`/`security_status:`) → ложное падение гейта на следующей задаче. | Низ. | Выс. | NFR-2: расширенный `test_agent_prompts_canon.py` (5 секций, 6 полей, точный регистр verdict-ключей) + `test_agent_frontmatter_no_model.py` остаются зелёными; полный `pytest tests/ -q` зелёный перед merge. |
| TR-3 | **Расползание в ретро-фит.** Соблазн расставить/переразметить маркеры по 51 существующему вхождению → большой диф, риск регресса смысла, выход за scope. | Сред. | Сред. | Жёсткая граница «вне объёма» (NFR-3, ADR D4); стандарт нормативен «на будущее»; reviewer заворачивает любой `src/**`-диф (AC-7). |
| TR-4 | **Устаревший пример в стандарте.** Реальный пример (`src/serial_gate.py` → ORCH-088) ссылается на строку/ADR, которые позже переименуют/удалят → нерабочая трассировка (FAIL AC-1). | Низ. | Низ. | Пример выбран по стабильному инварианту (условие сериализации serial-gate, ORCH-088 — недавний и активный); сверено существование файла+ADR на 2026-06-09; ссылка на ADR-файл (стабилен), не на номер строки в тексте стандарта. |
| TR-5 | **Касание `src/**` по ошибке.** Реализатор тронет код/`STAGE_TRANSITIONS`/`QG_CHECKS`/схему БД вопреки NFR-1. | Низ. | Выс. | AC-7: `git diff --name-only origin/main` показывает только `docs/**`, `.openclaw/agents/*.md`, `tests/test_agent_prompts_canon.py`, `CLAUDE.md`, `CHANGELOG.md`; reviewer заворачивает любой `src/**`. |
| TR-6 | **Self-hosting раскат.** Новые промпты вступают в силу на следующем worktree от `main` без рестарта — на текущей задаче reviewer/tester уже исполнятся под новыми промптами (in-vivo). Дефектная врезка повлияла бы на конвейер всех проектов. | Низ. | Сред. | NFR-4: изменение чисто текстовое и аддитивное; обратимо `git revert` (NFR-5); анти-регресс-тест ловит структурный слом до merge; нет машинного поведения/состояния. |
| TR-7 | **Dangling-ссылка в README/CLAUDE.md.** Если ссылку на `TRACEABILITY.md` добавить раньше создания файла → битая ссылка в `main`. | Низ. | Низ. | Архитектор НЕ создаёт `TRACEABILITY.md` и НЕ правит README на стадии architecture; FR-7 (`CLAUDE.md`/`README.md`/`CHANGELOG.md`) выполняется на development в **одном** PR вместе с созданием файла. |
## Сводный вывод
Доминирующий класс — **риски документации/промптов** (TR-1, TR-2, TR-3), не функциональные:
поведение `src/` идентично (NFR-1), enduro-trails не затронут. Самый высокий по влиянию — **TR-2**
(регресс machine-verdict ключа мог бы ложно валить гейт всех проектов), но вероятность низкая и
полностью покрывается машинным анти-регресс-тестом промптов. Остаточный риск для прод-конвейера
(self-hosting) — **низкий**: изменение аддитивно, обратимо `git revert`, без миграций/состояния/
kill-switch.
**Эскалация не требуется:** `arch:major-change` не нужен (нет новой стадии/компонента/смены БД —
сквозной adr-0022 регистрирует нормативный стандарт, а не архитектурный компонент); возврат в анализ
(`back-to:analysis`) не нужен (ТЗ реализуемо без нарушения принципов архитектуры).