Files
orchestrator/docs/work-items/ORCH-059/03-acceptance-criteria.md

5.4 KiB
Raw Blame History

03 — Критерии приёмки: ORCH-059

Repo: orchestrator · Stage: analysis Каждый критерий — однозначный PASS/FAIL. Проверка: unit/integration (см. 04-test-plan.yaml) + ручная верификация для инфра-предусловий.

AC-1 — Статус «Confirm Deploy» резолвится

Given проект ORCH со статусом доски «Confirm Deploy» When вызывается резолвер состояний для проекта ORCH Then возвращается логический ключ confirm_deploy с непустым UUID, а маппинг "Confirm Deploy" → "confirm_deploy" присутствует в _PLANE_NAME_TO_KEY. FAIL: ключ отсутствует или указывает на UUID статуса Approved.

AC-2 — «Confirm Deploy» на стадии deploy запускает Фазу B

Given задача self-hosting (orchestrator) на стадии deploy, deploy_require_manual_approve=true, маркер initiated отсутствует When приходит work_item.updated со статусом Confirm Deploy Then инициируется Фаза B: вызывается self_deploy.initiate_deploy, ставится job deploy-finalizer, пишется маркер initiated. FAIL: прод-деплой не инициирован, либо finalizer не поставлен.

AC-3 — «Approved» на стадии deploy НЕ запускает прод-деплой

Given та же задача на стадии deploy When приходит work_item.updated со статусом Approved Then self_deploy.initiate_deploy НЕ вызывается; Фаза B не стартует; задача не откатывается (БАГ-8 не срабатывает) и не «доходит» по check_deploy_status (вердикта нет); событие залогировано как no-op. FAIL: вызван initiate_deploy, либо произошёл откат/ложный advance.

AC-4 — «Approved» на analysis работает без регрессии

Given задача на стадии analysis (BRD готов, approval-pending) When issue переводится в Approved Then срабатывает approved-via-status и задача продвигается analysis → architecture (как до правки). FAIL: approve на analysis перестал продвигать конвейер.

AC-5 — Идемпотентность Фазы B по «Confirm Deploy»

Given задача на deploy, маркер initiated уже существует When повторно приходит статус Confirm Deploy (двойной клик / дубль webhook) Then повторного initiate_deploy не происходит (no-op, self-deploy-already-initiated). FAIL: прод-деплой запускается повторно.

AC-6 — CTA Фазы A просит «Confirm Deploy»

Given Фаза A (deploy-staging → deploy, approval-pending) When формируются Plane-комментарий и Telegram-уведомление запроса approve Then текст инструктирует перевести задачу в статус Confirm Deploy (а не «Approved») для запуска прод-деплоя. FAIL: CTA по-прежнему упоминает только «Approved».

AC-7 — Fail-closed при отсутствии статуса

Given среда без статуса «Confirm Deploy» (enduro / fallback _DEFAULT_STATES / недоступный Plane API) When обрабатывается work_item.updated Then webhook-путь не выбрасывает исключение; ветка confirm-deploy не активируется (прод-деплой не запускается «вслепую»). FAIL: KeyError/исключение в обработчике, либо ложный запуск Фазы B.

AC-8 — Условность для не-self репозиториев

Given не-self репозиторий (self_deploy_applies(repo) == False) When приходит любой verdict-статус на стадии deploy Then поведение прод-деплоя не меняется относительно текущего (синхронный деплой агентом); статус Confirm Deploy не требуется. FAIL: изменилось поведение деплоя не-self проекта.

AC-9 — Инварианты не нарушены

Then STAGE_TRANSITIONS, реестр QG_CHECKS, check_deploy_status/ _parse_deploy_status, контракт exit-кодов хука (0/1/2), Фазы A/C, merge-gate, схема БД — без изменений; pytest tests/ -q зелёный. FAIL: изменён любой из перечисленных контрактов или красные тесты.

AC-10 — Документация обновлена (golden source)

Then в том же PR обновлены CLAUDE.md, секция ORCH-036 в docs/architecture/README.md, CHANGELOG.md; заведён 06-adr/ADR-001-confirm-deploy-status.md. FAIL: функционал изменён, документация — нет (Reviewer → REQUEST_CHANGES).