4.6 KiB
type, work_item_id, verdict, version
| type | work_item_id | verdict | version |
|---|---|---|---|
| review | ORCH-021 | APPROVED | 1 |
Review ORCH-021 — Post-deploy мониторинг прода + реакция на деградацию
Summary
Реализация продлевает ответственность конвейера ЗА deploy → done через
reserved-agent job post-deploy-monitor (вариант B из ADR-001, калька
deploy-finalizer). Новый leaf-модуль src/post_deploy.py (never-raise), арм в
terminal-блоке advance_stage, перехват тика в launcher.launch_job ДО _spawn,
исполнение в stage_engine.run_post_deploy_monitor, блок post_deploy в GET /queue.
Соответствует ТЗ, ADR и критериям приёмки. Все 700 тестов зелёные
(pytest tests/ -q), включая 30 новых (test_post_deploy.py,
test_post_deploy_integration.py). Документация обновлена в том же PR. P0/P1 нет.
Соответствие ТЗ / ADR
- §2.1
src/post_deploy.py— leaf-модуль, never-raise,post_deploy_applies,probe_signals,classify,decide_action, sentinel-state, артефакт, rollback-команда. ✔ - §2.2 механизм — reserved-agent job, restart-safe (sentinel
armed/series/done- jobs-очередь), идемпотентный арм. ✔ (соответствует выбору архитектора в ADR §1)
- §2.3 реакция — self-hosting ВСЕГДА
ALERT_ONLY(структурно:decide_action→run_rollbackнедостижим для self), не-self+auto →--rollback, exit 1/2 → эскалация. ✔ - §2.4 конфигурация — все
post_deploy_*параметры с безопасными дефолтами; откат переиспользуетdeploy_prod_*. ✔ - §2.5 артефакт
16-post-deploy-log.md— валидный YAML-frontmatter, best-effort. ✔ - §2.6
GET /queueблокpost_deploy. ✔ - §3 инварианты —
STAGE_TRANSITIONS,QG_CHECKS,check_deploy_status, terminal-sync, merge-gate, exit-коды хука, схема БД — НЕ изменены (AC-12; подтверждено зелёным полным прогоном). ✔
Критерии приёмки
AC-1…AC-18 покрыты тестами TC01–TC20 (classify HEALTHY/DEGRADED по обоим порогам,
устойчивость к одиночному глюку, kill-switch, условность репо, idempotent арм,
self-hosting ALERT_ONLY, non-self rollback + эскалация, never-raise, артефакт,
/queue). AC-18 (документация) — выполнен (см. ниже).
Findings
P0 — Blocker
- нет
P1 — Must fix
- нет
P2 — Should fix
- нет
P3 — Nice-to-have (не блокируют)
build_rollback_command(repo)принимаетrepo, но не использует его (симметрия сbuild_deploy_command); можно убрать или задокументировать.status()в/queueформируетactiveпоos.path.basename(d)(только work_item_id, без repo) — для разных репо с одинаковым wi возможна косметическая коллизия в выводе.- Теоретическое раздвоение цепочки тиков при дубле job (как у
deploy-finalizer); на практике гаситсяmax_concurrency=1+done-маркером. Принятый паттерн, не регресс.
Документация
Обновлена в том же PR (golden-source, AC-18 PASS):
CLAUDE.md—16-post-deploy-log.mdдобавлен в перечень артефактов.docs/architecture/README.md— раздел «Post-deploy наблюдение…», блок/queue, заметка об обновлении.CHANGELOG.md— запись в[Unreleased] / Added..env.example— переменныеORCH_POST_DEPLOY_*.- ADR work-item
docs/work-items/ORCH-021/06-adr/ADR-001-post-deploy-monitor.md- сквозной
docs/architecture/adr/adr-0010-post-deploy-monitor.md.
- сквозной
Заметка о diff
git diff main...HEAD содержит файлы ORCH-060/ORCH-061/staging_verdict.py/reconciler.py
из-за устаревшей merge-base ветки (эти изменения уже прошли свои PR в main).
Предмет ревью — единственный коммит ORCH-021 c5b516b (12 файлов).