reviewer(ET): auto-commit from reviewer run_id=508
This commit is contained in:
85
docs/work-items/ORCH-091/12-review.md
Normal file
85
docs/work-items/ORCH-091/12-review.md
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
verdict: APPROVED
|
||||
work_item: ORCH-091
|
||||
stage: review
|
||||
author_agent: reviewer
|
||||
status: approved
|
||||
created_at: 2026-06-09
|
||||
model_used: claude-opus-4-8
|
||||
type: review
|
||||
work_item_id: ORCH-091
|
||||
version: 1
|
||||
---
|
||||
|
||||
# Review ORCH-091
|
||||
|
||||
## Summary
|
||||
|
||||
PR закрывает три верифицированных дефекта рендера live-карточки трекера
|
||||
(`src/notifications.py`, ORCH-067/087): (Д1) застрявший заголовок «To Analyse» из-за неполноты
|
||||
`_STAGE_STATUS_LABEL`; (Д2) ложные `✅`-строки стадий после отката конвейера; (Д3) занижение
|
||||
метрик строки стадии (последний прогон вместо суммы попыток). Изменение **аддитивное,
|
||||
indication-only, never-raise**: затронут ровно один src-модуль (`src/notifications.py`),
|
||||
`STAGE_TRANSITIONS` / `QG_CHECKS` / `check_*` / транспорт нотификаций / схема БД — не тронуты.
|
||||
|
||||
Проверка по четырём осям пройдена:
|
||||
- **Соответствие ТЗ** — все FR-1…FR-5 реализованы; AC-1…AC-7 выполнены буквально.
|
||||
- **Соответствие ADR** — реализация 1:1 с `06-adr/ADR-001` (D1/D2/D3); read-only-связь
|
||||
`notifications.py → stages.STAGE_TRANSITIONS` оформлена как указано; `is_active_stage` не тронут.
|
||||
- **Качество кода** — `_pipeline_pos` / `_neutral_stage_label` never-raise; докстринги и
|
||||
трассировочные ORCH-091-комментарии присутствуют; полный регресс зелёный (1370).
|
||||
- **Документация** — обновлена в том же PR (см. ниже).
|
||||
|
||||
### Проверенные инварианты
|
||||
- **Трассировка ORCH-067/087** (правка маркированного кода): инварианты single-card, never-raise,
|
||||
разделение offline-ядра/live-overlay сохранены — подтверждено ADR (прочитаны перед правкой) и
|
||||
зелёным регрессом `test_tracker_status_line.py`.
|
||||
- **Терминал `cancelled` (ORCH-090, adr-0026)**: добавлен offline-лейбл `cancelled → "Cancelled"`,
|
||||
совпадает с overlay `_LIVE_BRANCH_LABELS['cancelled']` → нет конфликта precedence.
|
||||
- **Полнота карты от источника истины** — тест `test_orch091_tc01_*` параметризован по
|
||||
`STAGE_TRANSITIONS.keys()` (не статичный список) → NFR-3 выполнен.
|
||||
- **Сходимость метрик** — `_stage_line` использует те же per-run-формулы, что блок тоталов;
|
||||
тест `test_tc07_*` проверяет сходимость с `SUM(agent_runs)` и Σ(строк стадий) ≡ тоталы на done.
|
||||
- **Нормализация `deploy-staging → deploy`** ограничена гейтом подавления (не затрагивает
|
||||
активный рендер строки «Внедрение») — подтверждено `test_tc05_deploy_staging_keeps_deployer_row`.
|
||||
- **Отсутствие циркулярного импорта** — `import src.notifications; import src.stages` → OK.
|
||||
- **ORCH-079 (обзорные доки)** — `README.md` «Известные ограничения» НЕ содержит пункта о
|
||||
дефектах карточки трекера → закрывать/обновлять нечего; gate не нарушен.
|
||||
|
||||
## Findings
|
||||
|
||||
### P0 — Blocker
|
||||
- Нет.
|
||||
|
||||
### P1 — Must fix
|
||||
- Нет.
|
||||
|
||||
### P2 — Should fix
|
||||
- Нет.
|
||||
|
||||
### P3 — Nice-to-have (не блокирует)
|
||||
- [ ] `from .stages import STAGE_TRANSITIONS` размещён в середине модуля (`src/notifications.py`
|
||||
после `_STAGE_ACTIVE_AGENT`, с `# noqa: E402`). Размещение намеренно и документировано
|
||||
комментарием, циркулярного импорта нет; вынос в шапку модуля — косметическая необязательная
|
||||
уборка на будущее.
|
||||
|
||||
## Документация
|
||||
|
||||
Обновлена в том же PR (golden source синхронен с кодом):
|
||||
- **`CHANGELOG.md`** — запись ORCH-091 (`fix`) с описанием трёх дефектов, тестов и отката. ✅
|
||||
- **`docs/architecture/internals.md`** §7 — описаны откат-подавление `✅`, суммирование метрик
|
||||
и полнота `_STAGE_STATUS_LABEL`. ✅
|
||||
- **`docs/architecture/README.md`** (Notifications / Live-tracker) — добавлен блок «ORCH-091
|
||||
(индикация-only)» с тремя правками и ссылкой на ADR. ✅ (внесено архитектором, присутствует в PR)
|
||||
- **ADR** — `docs/work-items/ORCH-091/06-adr/ADR-001-tracker-status-rollback-metrics.md`
|
||||
(status: accepted), решения D1/D2/D3, альтернативы, последствия. ✅
|
||||
- **`README.md` (root)** — обновление не требуется: ни один пункт «Известные ограничения» не
|
||||
закрывается данным PR (ORCH-079 gate соблюдён). ✅
|
||||
|
||||
Изменения `src/` сопровождены соответствующим обновлением документации → ось «документация»
|
||||
пройдена; основание для `REQUEST_CHANGES` по этой оси отсутствует.
|
||||
|
||||
## Вердикт
|
||||
|
||||
`APPROVED` — нет findings уровня P0/P1; код, тесты и документация согласованы; инварианты
|
||||
ORCH-067/087/090 и NFR-2/NFR-3 сохранены; полный регресс `pytest tests/ -q` зелёный (1370 passed).
|
||||
Reference in New Issue
Block a user