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

7.6 KiB
Raw Permalink Blame History

03 — Критерии приёмки (Acceptance Criteria)

Work Item: ORCH-066

Каждый критерий — чёткое условие PASS/FAIL. Покрытие тестами — см. 04-test-plan.yaml.


Группа A — Вход и стадия анализа

ID Критерий PASS FAIL
AC-1 To Analyse запускает конвейер Перевод issue без task в To Analysehandle_status_startstart_pipeline (создаётся task, ветка, enqueue analyst). Не запускается / запускается на другом статусе.
AC-2 To Analyse делает resume аналитика из Needs Input Существующий task без active-job + перевод в To Analyse → relaunch агента текущей стадии (analyst читает свежие комменты). Fork «старт vs resume» определяется по get_task_by_plane_id + has_active_job_for_task (как раньше). Создаётся второй task / двойной запуск / resume не происходит.
AC-3 Стадия analysis индицируется статусом Analysis При старте/relaunch аналитика орк ставит Analysis. Остаётся In Progress (при наличии статуса Analysis в проекте).
AC-4 Busy-guard сохранён To Analyse при существующем active-job для task → НЕ relaunch (no double launch). Двойной запуск агента.

Группа B — Code-Review

ID Критерий PASS FAIL
AC-5 Стадия review индицируется Code-Review Вход в стадию review → Plane-статус Code-Review. Остаётся Review (при наличии нового статуса).

Группа C — Self-deploy фазы

ID Критерий PASS FAIL
AC-6 Phase A → Awaiting Deploy _handle_self_deploy_phase_a ставит Awaiting Deploy (не In Review). Ставит In Review (при наличии нового статуса).
AC-7 Phase B → Deploying _handle_self_deploy_phase_b при успешном initiate_deploy ставит Deploying. Статус не меняется / иной.
AC-8 Phase C → Monitoring after Deploy (self) Финализатор SUCCESS для self-hosting → статус Monitoring after Deploy, НЕ Done сразу. Ставит Done немедленно (для self-hosting).
AC-9 Не-self deploy → Done без регресса Для не-self репо (post_deploy_applies==False) терминальный deploy → done ставит Done как сейчас. Не-self репо получает Monitoring after Deploy / иной регресс.

Группа D — Post-deploy monitor

ID Критерий PASS FAIL
AC-10 Чистое окно → Done run_post_deploy_monitor HEALTHY + окно исчерпано → статус Done. Остаётся Monitoring after Deploy / иной.
AC-11 Деградация → Blocked run_post_deploy_monitor DEGRADED → статус Blocked (+ существующий ALERT_ONLY для self). Остаётся в Monitoring / ставит Done.
AC-12 Self-hosting монитор не рестартит прод Тик НИКОГДА не рестартит/откатывает прод-контейнер (ORCH-021 BR-5 сохранён). Тик трогает прод-контейнер.

Группа E — In Review / Needs Input / ветки

ID Критерий PASS FAIL
AC-13 In Review только за approve-pending конвейера In Review ставится лишь для approve артефактов (analyst BRD/ревью), не для Phase A. Phase A / иные стадии ставят In Review.
AC-14 Needs Input без изменений Поведение set_issue_needs_input (analyst 01-questions.md) идентично прежнему; не расширено на других агентов. Механизм изменён / расширен.
AC-15 Cancelled — валидный выход из In Review без действий конвейера Перевод в Cancelled → орк не выполняет advance/rollback (индикация, не управление). Орк совершает действие конвейера на Cancelled.

Группа F — Fail-closed (КРИТИЧНО)

ID Критерий PASS FAIL
AC-16 Отсутствие нового статуса не ломает конвейер Проект без новых статусов (enduro/частичный/Plane down) → get_project_states отдаёт default-алиасы; все set_issue_*/триггеры работают backward-compatible, без исключений и без 404 PATCH. Падение / необработанное исключение / зависание задачи.
AC-17 enduro In Progress по-прежнему стартует конвейер Через to_analyse-алиас (= in_progress UUID) перевод enduro-issue в In Progress запускает старт/resume. enduro-старт сломан.
AC-18 Резолв по имени При наличии статуса в проекте по name (_PLANE_NAME_TO_KEY) используется его UUID, а не default-алиас. Используется неверный UUID.

Группа G — Reconciler

ID Критерий PASS FAIL
AC-19 F-2 реконсилирует To Analyse _reconcile_plane_project запрашивает to_analyse и маршрутизирует к handle_status_start (старт/resume при потерянном webhook). To Analyse-старты не реконсилируются.
AC-20 Guard 2 skip активных ожиданий Задачи в Awaiting Deploy / Deploying / Monitoring after Deploy НЕ «оживляются» F-1 как зависшие. Реконсилер advance'ит активное ожидание.

Группа H — Инварианты и документация

ID Критерий PASS FAIL
AC-21 STAGE_TRANSITIONS не изменён src/stages.py STAGE_TRANSITIONS идентичен (diff пуст). Любое изменение слоя A.
AC-22 Реестры/контракты не изменены QG_CHECKS, check_deploy_status, exit-коды хука, merge-gate, схема БД, Confirm Deploy — без изменений. Любое изменение перечисленного.
AC-23 Тесты зелёные pytest tests/ -q проходит полностью; новые fail-closed тесты присутствуют и зелёные. Любой красный тест.
AC-24 Документация обновлена (golden source) CLAUDE.md, docs/architecture/README.md, CHANGELOG.md обновлены; заведён 06-adr/ADR-001-*. Любой из артефактов не обновлён.