Files
orchestrator/docs/work-items/ORCH-059/12-review.md

3.8 KiB
Raw Blame History

type, work_item_id, verdict, version
type work_item_id verdict version
review ORCH-059 APPROVED 1

Review ORCH-059

Summary

Выделенный Plane-статус «Confirm Deploy» как единственный триггер Фазы B прод-деплоя self-hosting; Approved на стадии deploy становится детерминированным no-op. Реализация точно соответствует ТЗ (TRZ-1..6), ADR-001 и критериям приёмки (AC-1..10). Четыре точечные правки в трёх модулях (plane_sync.py, webhooks/plane.py, stage_engine.py), без изменения контрактов (STAGE_TRANSITIONS, QG_CHECKS, check_deploy_status, Фазы A/C, merge-gate, схема БД). Документация обновлена в том же PR. pytest tests/ -q — 763 passed.

Соответствие ТЗ и ADR

  • TRZ-1 / AC-1"Confirm Deploy" → "confirm_deploy" добавлен в _PLANE_NAME_TO_KEY; намеренно отсутствует в _DEFAULT_STATES → fail-closed. Покрыто test_tc01/tc02.
  • TRZ-2 / AC-2handle_confirm_deploy (гард stage=="deploy") → _try_advance_stage(..., confirm_deploy=True) → Фаза B. Покрыто test_tc04/tc07/tc10.
  • TRZ-3 / AC-3Approved на deploy: ранний возврат ДО Quality Gate с note="approved-on-deploy-noop", без initiate_deploy, без ложного отката БАГ-8. Покрыто test_tc05/tc07_approved_without_confirm_is_noop/tc11.
  • TRZ-4 / AC-4handle_verdict(approved=True) не тронут; approve на analysis продвигает конвейер. Покрыто test_tc06_approved_on_analysis_still_advances.
  • AC-5 — идемпотентность повторного «Confirm Deploy» (self-deploy-already-initiated). Покрыто test_tc08, test_tc06_approved_calls_prod_hook_exactly_once.
  • TRZ-5 / AC-6 — CTA Фазы A (Plane-коммент + Telegram) просит «Confirm Deploy» и явно отмечает, что «Approved» прод-деплой не запускает. Покрыто test_tc09.
  • TRZ-1 / AC-7 — доступ через .get("confirm_deploy"), отсутствие статуса → ветка не активируется, без KeyError. Покрыто test_tc03 (API недоступен / статуса нет на доске).
  • TRZ-6 / AC-8 — условность через self_deploy.self_deploy_applies; не-self репо без изменений. Покрыто test_tc12.
  • AC-9 — контракты и схема БД не изменены; 763 теста зелёные.

Findings

P0 — Blocker

  • нет

P1 — Must fix

  • нет

P2 — Should fix

  • нет

Документация

Обновлено в том же PR (AC-10 выполнен):

  • CLAUDE.md — раздел self-hosting: прод-деплой только через «Confirm Deploy», Approved = no-op.
  • docs/architecture/README.md — секция ORCH-036 уточнена + добавлена подсекция ORCH-059 (статус-триггер «Confirm Deploy»), запись в перечне статусов доработок.
  • CHANGELOG.md — запись ORCH-059 в [Unreleased] / Added.
  • ADR docs/work-items/ORCH-059/06-adr/ADR-001-confirm-deploy-status.md — заведён, отражает реализацию (4 правки, fail-closed, рассмотренные альтернативы).
  • 07-infra-requirements.md — эксплуатационное предусловие (создать статус доски + сброс кэша).

Документация консистентна с кодом; golden-source инвариант соблюдён.