39 lines
4.8 KiB
Markdown
39 lines
4.8 KiB
Markdown
---
|
||
work_item: ORCH-079
|
||
stage: architecture
|
||
author_agent: architect
|
||
status: proposed
|
||
created_at: 2026-06-09
|
||
model_used: claude-opus-4-8
|
||
---
|
||
|
||
# 10 — Технические риски: ORCH-079 — ORCH-52f: синхронизация README + reviewer-ось обзорных доков
|
||
|
||
Work Item: **ORCH-079** · Repo: **orchestrator** · Стадия: architecture
|
||
|
||
> Информационный (гейтом не парсится). Перечисляет риски реализации и их митигейшн.
|
||
> Задача — **docs + prompt-only**; рантайм-код не изменяется → класс рисков узкий.
|
||
|
||
## Реестр рисков
|
||
|
||
| ID | Риск | Вер. | Влия. | Митигейшн |
|
||
|----|------|------|-------|-----------|
|
||
| TR-1 | **Ложное «решено».** Пункт объявлен закрытым, но открыт частично (особенно issue-ID `plane_sync`, Playwright-timeout) → витрина снова лжёт, обратный знак | Низ. | Сред. | NFR-3: каждый снятый пункт подтверждён ссылкой на код/задачу (D1-таблица ADR-001); спорные (issue-ID/timeout) переформулированы как «не tracked / устаревшая формулировка», не «закрыто тикетом»; reviewer сверяет по AC-3 |
|
||
| TR-2 | **Дрейф канона 52d** при правке `reviewer.md` (сломаны 5 XML-секций / формат «❌→✅» / порядок) | Низ. | Выс. | Точечная врезка в существующую ось 4 (NFR-4), без переписывания; структурные тесты `test_agent_prompts_canon.py` (`test_five_xml_sections_present`, `test_six_schema_field_names_present`) ловят слом |
|
||
| TR-3 | **Касание machine-verdict контракта.** Случайно изменён `verdict:`/значения `APPROVED\|REQUEST_CHANGES` или 6 полей схемы 52c → гейт `check_reviewer_verdict` ложно падает на ВСЕХ задачах | Низ. | Выс. | NFR-2: ключ байт-в-байт; `test_machine_verdict_keys_preserved_exact_case` зелёный; reviewer проверяет diff `reviewer.md` по AC-6 |
|
||
| TR-4 | **Scope-creep.** Майнинг кодовой базы порождает «новые» открытые ограничения → раздувание, недоказуемые пункты | Сред. | Низ. | D4 ADR-001: «открытые» берутся ТОЛЬКО из уже задокументированных known-limitations; триаж ограничен 6 исходными пунктами; честность > длина |
|
||
| TR-5 | **Незамеченное касание `src/**`.** Правка/перенос вышли за docs+prompt+test → функциональная регрессия | Низ. | Выс. | NFR-1: `git diff` не содержит `src/**` (AC-6); полный `pytest tests/ -q` зелёный; reviewer гейтит diff |
|
||
| TR-6 | **Неполная сверка обзорных доков** с кодом: расхождение в таблице стадий/`QG_CHECKS`/моделей осталось непоправленным | Сред. | Низ. | FR-3/FR-4 чек-лист (D3 ADR-001) со ссылками на `STAGE_TRANSITIONS`/`QG_CHECKS`/`resolve_agent_*`; tester сверяет по AC-4 |
|
||
| TR-7 | **Stale-промпт до следующего worktree.** Reviewer текущей задачи исполняется под СТАРЫМ промптом (промпт `cat`-ается на старте worktree) | Низ. | Низ. | Ожидаемо by design (loading-model NFR-5): правило вступает в силу со следующего worktree от `main`; прод-рестарт НЕ требуется и НЕ выполняется (self-hosting) |
|
||
|
||
## Сводный вывод
|
||
|
||
Доминирующий класс — **риск целостности контракта ревью-гейта** (TR-2/TR-3): низкая вероятность, но
|
||
высокое влияние, т.к. `reviewer.md` исполняется на каждой задаче всех проектов. Полностью покрыт
|
||
структурными тестами `test_agent_prompts_canon.py` + `test_agent_frontmatter_no_model.py` (анти-дрейф)
|
||
и точечностью правки (NFR-2/NFR-4). Рантайм-рисков нет — `src/`/`STAGE_TRANSITIONS`/`QG_CHECKS`/схема
|
||
БД не трогаются, kill-switch не требуется, откат = revert PR. **Эскалация `arch:major-change` не
|
||
требуется; возврат в анализ не требуется.** Остаточный риск для прод-конвейера (self-hosting) —
|
||
**низкий**.
|
||
</content>
|