117 lines
9.7 KiB
Markdown
117 lines
9.7 KiB
Markdown
---
|
||
verdict: APPROVED # APPROVED | REQUEST_CHANGES — строго одно из двух, UPPERCASE
|
||
work_item: ORCH-105
|
||
stage: review
|
||
author_agent: reviewer
|
||
status: approved
|
||
created_at: 2026-06-12
|
||
model_used: claude-opus-4-8
|
||
type: review
|
||
work_item_id: ORCH-105
|
||
version: 1
|
||
---
|
||
|
||
# Review ORCH-105 — Подготовка презентации по орку (слайды Lite-установки и использования через Plane)
|
||
|
||
> Машинный вердикт читается ТОЛЬКО из `verdict:` во frontmatter. `APPROVED` → дальше по конвейеру.
|
||
|
||
## Summary
|
||
|
||
**Docs-only** доработка витрины: слайдо-источник `docs/overview/presentation.md` расширен **тремя**
|
||
слайдами в каноне ORCH-011 (дека 16 → 19, сквозная нумерация цела), добавлена **одна** анти-дрейф
|
||
тест-функция в `tests/test_system_docs.py`, обновлён `CHANGELOG.md`. Реализация **полностью**
|
||
соответствует ТЗ (`02-trz.md`), критериям приёмки (`03-acceptance-criteria.md`) и
|
||
`06-adr/ADR-001`. Рантайм (`src/**`, `STAGE_TRANSITIONS`, `QG_CHECKS`, `check_*`, схема БД) —
|
||
байт-в-байт не тронут. Факты новых слайдов сверены с golden sources. Весь
|
||
`tests/test_system_docs.py` — **зелёный (29 passed)**. P0/P1 findings нет → **APPROVED**.
|
||
|
||
> **Замечание по среде ревью (не finding):** локальный `main` устарел (`9b7bdc0`), поэтому
|
||
> `git diff main...HEAD` ложно тянул уже смерженный контент ORCH-011. Достоверный диф снят против
|
||
> `origin/main` (`4d5e461`) — он чистый: `CHANGELOG.md`, `presentation.md`, `tests/test_system_docs.py`
|
||
> + артефакты `docs/work-items/ORCH-105/`. Никаких чужих правок в PR нет.
|
||
|
||
## Оси проверки
|
||
|
||
### 1. Соответствие ТЗ / Acceptance Criteria — PASS
|
||
- **FR-1 / AC-1 (Lite-слайд):** добавлен «Слайд 17: Lite-установка скриптами». Тезисы точны и
|
||
согласованы с `docs/deployment/LITE_SETUP.md`: два контейнера платформы (`orchestrator` +
|
||
`orchestrator-watchdog`), развёртывание без правки кода (только конфиг), помощники
|
||
`gen_secrets.py`/`onboard_project.py` (`plan`/`apply`/`verify`) + `docker compose up -d`, runbook
|
||
с проверкой каждого шага. **BR-5 соблюдён:** одношаговый bootstrap явно отнесён к **смежному
|
||
Bundled, не Lite** (нет «монолитного инсталлятора», нет выдуманных скриптов).
|
||
- **FR-2 / AC-2 (Plane-usage):** добавлены **два** оператор-слайда («Слайд 8: Запуск и ведение
|
||
задачи через Plane», «Слайд 9: Что решает человек: гейты, авто-режим, отмена»). Покрыты все 8
|
||
обязательных тем: запуск «To Analyse», «индикация ≠ управление», **оба** человеческих гейта
|
||
(`Approved` на анализе и `Confirm Deploy` на деплое), авто-лейблы `autoApprove`/`autoDeploy`/`Bug`,
|
||
отмена `STOP`, наблюдение (статусы доски + Telegram-карточка + комментарии со ссылками на
|
||
ветку/PR). Имена статусов/лейблов **дословно** сверены с `tech-pipeline.md` (стр. 65/68/97) и
|
||
`tech-integrations.md` (стр. 8/13). Инвариант «авто-режим не пропускает техпроверки» зафиксирован
|
||
верно.
|
||
- **FR-3 / AC-3 (нумерация/формат):** заголовки слайдов строго сквозные `1..19`, `## Как собрать
|
||
.pptx` остаётся служебным разделом (не слайд). `test_presentation_source_parses_with_canonical_parser`
|
||
— зелёный (≥12, `[1..N]`, непустые заголовки, ≥1 тезис).
|
||
- **FR-5 / AC-4 (анти-дрейф):** добавлена `test_presentation_covers_lite_and_plane_usage_bits`,
|
||
фиксирующая `lite`+маркер установки и `plane`+`to analyse`/`approved`/`confirm deploy`/`stop`.
|
||
Существующие проверки нарратива и процедуры сборки — без послаблений, зелёные.
|
||
- **FR-6 / AC-8 (сопровождение):** запись `docs:` по ORCH-105 в `CHANGELOG.md` присутствует и
|
||
содержательна; норматив витрины ORCH-011/079 соблюдён (PR сам и есть обновление витрины).
|
||
|
||
### 2. Соответствие ADR / инвариантам — PASS
|
||
- Реализация 1:1 c `06-adr/ADR-001`: ровно 3 слайда (2 Plane + 1 Lite), дека 16→19, **одна** новая
|
||
тест-функция, новый QG **не** регистрируется, скрипт `build_presentation.py` **не** правится
|
||
(подтверждено: вне дифа), `07/08`-доки не создаются (нет смены топологии/схемы БД).
|
||
- Канон витрины `adr-0039` не форкается; локальность решения обоснована (глобальный `adr-NNNN` не
|
||
нужен) — корректно.
|
||
- **Трассировка (TRACEABILITY):** исполняемый код с маркерами `ORCH-NNN` не затронут (docs/tests
|
||
only) → инварианты конвейера не задеты, анти-археология не срабатывает.
|
||
|
||
### 3. Качество кода — PASS
|
||
- Новая тест-функция **содержательна** (не тривиальна): проверяет присутствие конкретных имён
|
||
статусов/лейблов, несёт docstring с привязкой к FR-5/AC-4 и предупреждением об анти-переобучении.
|
||
- Багфикс-трек (ORCH-019/BR-4) **не применим** — задача не `Bug`, регресс-тест-фиксатор не требуется.
|
||
- Маркеры теста проходят `FORBIDDEN`-скан и секрет-эвристику (весь модуль зелёный).
|
||
|
||
### 4. Документация — PASS (см. раздел «Документация»)
|
||
|
||
### 5. Совместимость / регресс / self-hosting — PASS
|
||
- `git diff origin/main...HEAD -- 'src/**'` пуст → рантайм, стадии, гейты, схема БД не тронуты.
|
||
- `python-pptx` в прод-образ не добавлен; `build/` в `.gitignore` (стр. 19); новый `.pptx`-бинарь
|
||
не закоммичен (`docs/PRODUCT_VISION.pptx` — преэкзистент, вне дифа PR).
|
||
- Изменение полностью обратимо.
|
||
|
||
## Findings
|
||
|
||
### P0 — Blocker
|
||
- (нет)
|
||
|
||
### P1 — Must fix
|
||
- (нет)
|
||
|
||
### P2 — Should fix
|
||
- (нет)
|
||
|
||
### P3 — Nice-to-have (не блокирует)
|
||
- Анти-дрейф `assert "stop" in low` ловит подстроку `stop`, которая встречается и в визуале
|
||
слайда 9; для большей устойчивости к точечному удалению блока STOP можно было бы матчить
|
||
`«STOP»`/`stop` в связке с маркером отмены. Решение D4 осознанно выбрало семантические корни
|
||
(анти-переобучение) — приемлемо, правка не требуется.
|
||
|
||
## Документация
|
||
|
||
**Обновлена корректно и в том же PR.** Этот PR сам является обновлением витрины `docs/overview/`
|
||
(презентация — артефакт витрины ORCH-011). Проверено:
|
||
- `CHANGELOG.md` — запись `docs:` по ORCH-105 присутствует. ✅
|
||
- Витрина `docs/overview/presentation.md` — расширена; факты сверены с golden sources
|
||
(`docs/deployment/LITE_SETUP.md`, `docs/overview/tech-pipeline.md`,
|
||
`docs/overview/tech-integrations.md`, `CLAUDE.md`) — расхождений нет. ✅
|
||
- `README.md` «Известные ограничения» (ORCH-079) — данный PR ни одного пункта не закрывает
|
||
(контентная правда о уже существующей функциональности), обновление не требуется. ✅
|
||
- Прочие тех-блоки `docs/overview/tech-*.md`, `docs/architecture/README.md`/`internals.md` — новой
|
||
функциональности нет, обновлять нечего (правка только наполняет витрину контентом). ✅
|
||
- `src/` не изменён → P0-условие «`src/` изменён, документация не обновлена» **не наступает**.
|
||
|
||
**Замечание для tester:** AC-5 (ручная dev-venv сборка `.pptx`, ожидается
|
||
`Собрано слайдов: 19 → build/orchestrator-overview.pptx`, exit 0, тёмная тема/кириллица/новые
|
||
слайды) — ручной шаг стадии `testing` (TC-07), вне автоматического гейта по канону (`python-pptx`
|
||
не в тест-образе). Это сознательная честная граница (ADR D5), не пробел покрытия.
|