7.3 KiB
7.3 KiB
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 → developmentset_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; заведён ADRdocs/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: любой тест из плана отсутствует или красный.