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

5.5 KiB
Raw Blame History

10 — Технические риски: ORCH-075 (ORCH-52b — стандарт документов)

Work Item: ORCH-075 · Repo: orchestrator · Стадия: architecture

Изменение docs-only (NFR-1): только docs/** + CLAUDE.md + CHANGELOG.md. Рантайм-рисков деградации прода нет по построению. Основные риски — достоверность манифеста и дрейф стандарта относительно кода.

Реестр рисков

ID Риск Вер. Влия. Митигейшн
TR-1 Рассинхрон манифеста с кодом — манифест приписывает доку неверную стадию/гейт/агента или неверный frontmatter-ключ (напр. 12-review → не verdict:). Сред. Сред. (вводит агентов в заблуждение, ложные ожидания) NFR-2: ground-truth сверен с src/stages.py / src/qg/checks.py / src/stage_engine.py на стадии architecture (ADR-001 §D5, таблица сверки). AC-4 проверяет привязку буквально по файлам. Источник истины остаётся код (D2).
TR-2 Дрейф во времени — будущая правка гейта (ORCH-52c+) не отражается в манифесте, т.к. форсинга нет. Сред. Низ. (до 52c — описательный документ) D2 (источник истины — код, манифест производный); reviewer-правило «обновлена ли документация»; явная привязка строк манифеста к именам check_*; ORCH-52c добавит машинную проверку.
TR-3 Шаблон вводит выдуманную секцию или, наоборот, упускает секцию общего канона эталонов. Сред. Низ. NFR-3: скелеты выведены строго из эталонов ORCH-088/073/089/071 + ORCH-075; TRZ §FR-2.1 фиксирует минимальный обязательный набор секций; AC-2/AC-4 проверяют.
TR-4 Неверный machine-key в шаблоне машинного дока — скопированный скелет уронит гейт ложно (напр. deploy_status написан Deploy-Status/иной регистр). Низ. Выс. (если бы дошло до прода — ложный откат БАГ-8) Ключи в шаблонах берутся ДОСЛОВНО из _parse_* (deploy_status/staging_status/security_status/verdict/result); парсеры делают .upper() на значении, но имя ключа чувствительно — шаблон фиксирует точное имя. AC-2 проверяет наличие ключа. Гейты при этом не трогаются (docs-only).
TR-5 Коллизия имени файла-шаблона ADR с реальной нумерацией (06-adr/ADR-NNN-…). Низ. Низ. TRZ §2: имя шаблона ADR без <plane-id>-контекста и вне docs/work-items/ (напр. docs/_templates/06-adr-ADR-NNN-slug.md); внутри фиксируется реальный целевой путь/формат.
TR-6 Шаблоны парсятся гейтами наличия файлов (check_architecture_done / check_analysis_complete ловят docs/_templates/*). Оч.низ. Сред. D1: служебные каталоги docs/_standards/ / docs/_templates/ лежат ВНЕ docs/work-items/<plane-id>/; гейты сканируют только путь work item → шаблоны структурно невидимы гейтам.
TR-7 Регресс существующих тестов от docs-изменения. Оч.низ. Сред. Изменения не трогают src/; новый тест tests/test_orch_52b_docs_standard.py — только структурные проверки наличия/секций; TC-21 требует зелёного полного pytest tests/.
TR-8 CHANGELOG-конфликт при merge (## [Unreleased] правят параллельные задачи). Низ. Низ. Корневой .gitattributes CHANGELOG.md merge=union (ORCH-073 FR-4) авто-сливает append-правки без конфликта.

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

Риск для прод-конвейера (self-hosting) — отсутствует по построению: изменение docs-only, полностью обратимо (NFR-5), STAGE_TRANSITIONS / QG_CHECKS / check_* / схема БД не затрагиваются (AC-6). Доминирующий класс рисков — достоверность и дрейф манифеста (TR-1/TR-2); закрыт сверкой с src/ на стадии architecture (ADR-001 §D5) и принципом «источник истины — код, манифест — производная». Эскалация arch:major-change не требуется (нет новой стадии/QG/компонента/смены БД). Возврат в анализ не требуется — ТЗ удовлетворяется без нарушения принципов архитектуры.