Files
orchestrator/docs/work-items/ORCH-061/03-acceptance-criteria.md
claude-bot 3ab2690a68
All checks were successful
CI / test (push) Successful in 16s
analyst(ET): auto-commit from analyst run_id=296
2026-06-07 12:10:46 +00:00

7.3 KiB
Raw Blame History

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

Work Item: ORCH-061 · Тип: BUG · Приоритет: P0

Формат: каждый критерий имеет чёткое условие PASS/FAIL. Критерии outcome-ориентированы (не предписывают механизм); реализация может удовлетворить FR-2 направлением (а), (б) или обоими.


AC-1 — Автономный проход self-deploy без петли (главный критерий)

  • PASS: для self-hosting orchestrator задача в состоянии deploy-staging при здоровом стенде и корректном pipeline продвигается deploy-staging → deploy (далее по штатному approve → done) без отката на development и без ручного вмешательства в шаги staging/merge/retag/deploy.
  • FAIL: наблюдается хотя бы один автоматический откат deploy-staging → development при отсутствии реального регресса, либо для прохода требуется ручной шаг.

AC-2 — Ложный инфраструктурный FAIL не откатывает

  • PASS: прогон, где единственные падения — заведомо sandbox-инфраструктурные (C9a branch-not-found / C9b analyst-job-not-in-queue при ненастроенных bot-токенах SANDBOX), а все реальные pipeline-проверки зелёные, приводит к staging_status: SUCCESS (или эквивалентному «не-FAILED») → нет отката.
  • FAIL: такой прогон даёт staging_status: FAILED → откат deploy-staging → development.

AC-3 — Реальный провал staging по-прежнему откатывает (страховка цела)

  • PASS: прогон с провалом реальной pipeline-проверки (не инфра-исключение) даёт staging_status: FAILED → откат deploy-staging → development + set_issue_blocked/нотификации (как сейчас, ORCH-35).
  • FAIL: реальный провал staging проходит как успех / задача доходит до deploy.

AC-4 — «no changes to commit» на action-стадии не есть недовыполнение

  • PASS: на стадиях deploy-staging/deploy для self-deploy отсутствие git-изменений не вызывает откат/блокировку; продвижение определяется успешным exit + health/staging-вердиктом.
  • FAIL: отсутствие коммита на стадии деплоя приводит к откату/недопродвижению.

AC-5 — Реальный провал прод-деплоя по-прежнему откатывает (БАГ-8 цел)

  • PASS: deploy_status: FAILED (exit-code хука ≠ 0) → откат deploy → development
    • set_issue_blocked + release merge-lease + clear deploy-state (как сейчас).
  • FAIL: провал прод-деплоя проходит как done.

AC-6 — Условность self-hosting сохранена

  • PASS: для не-self-hosting репо (is_self_hosting_repo == False) check_staging_status остаётся (True, "Staging gate N/A …"), стадия деплоя работает как прежде; поведение этих репо байт-в-байт не изменилось.
  • FAIL: изменилось поведение для не-self-hosting репозиториев.

AC-7 — Kill-switch возвращает прежнее поведение

  • PASS: при выключенном флаге нового поведения (FR-6) система ведёт себя 1:1 как до ORCH-061 (включая прежний откат на инфра-FAIL, если флаг выключен).
  • FAIL: новое поведение невозможно отключить / выключение не восстанавливает старое.

AC-8 — Контракты не сломаны

  • PASS: STAGE_TRANSITIONS, реестр QG_CHECKS, frontmatter-контракты staging_status:/deploy_status: (только YAML, SUCCESS|FAILED), exit-code хука (0/1/2) и map_exit_code_to_status — без регресса; снапшот-тест реестра гейтов зелёный.
  • FAIL: изменены контракты стадий/гейтов/вердиктов или сломан снапшот реестра.

AC-9 — Схема БД не меняется

  • PASS: нет миграций; events/tasks/agent_runs/jobs без изменений схемы.
  • FAIL: добавлена/изменена колонка/таблица.

AC-10 — never-raise

  • PASS: новая логика в пути advance_stage/staging-вердикта при любой внутренней ошибке (docker/ssh/io/парсинг) даёт безопасный детерминированный вердикт и не пробрасывает исключение в advance_stage.
  • FAIL: исключение из новой логики всплывает в advance_stage/останавливает конвейер.

AC-11 — Наблюдаемость

  • PASS: срабатывание нового поведения (игнор инфра-FAIL / ожидаемые no-changes) даёт явную лог-строку (и при необходимости коммент/Telegram), позволяющую отличить «честно зелёный» от «зелёного с допущением».
  • FAIL: новое поведение срабатывает молча, неотличимо от честного зелёного.

AC-12 — Безопасность self-hosting

  • PASS: реализация не перезапускает/не роняет прод-контейнер 8500 в рамках задачи; любые сборки/recreate — только staging (8501).
  • FAIL: код пути задачи рестартит/собирает прод 8500.

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

  • PASS: в том же PR обновлены docs/architecture/README.md, docs/operations/STAGING_CHECK.md (поведение C9a/C9b и/или sandbox-настройка), CHANGELOG.md, и (при смене контракта) .openclaw/agents/deployer.md; заведён ADR docs/work-items/ORCH-061/06-adr/ADR-001-*.md.
  • FAIL: функционал изменён без обновления документации/ADR.

AC-14 — Регрессионные тесты зелёные

  • PASS: pytest tests/ -q проходит полностью; новые тесты из 04-test-plan.yaml присутствуют и зелёные; существующие staging/deploy/qg/stage_engine тесты не упали.
  • FAIL: любой тест из плана отсутствует или красный.