# 03 — Критерии приёмки: ORCH-040 Work Item: **ORCH-040** Каждый критерий имеет чёткое условие PASS/FAIL. Задача считается принятой, когда **все** критерии = PASS. ## AC-1 — Артефакты создаются под uid хоста (корневой критерий) - **PASS**: после прогона тестовой задачи конвейером end-to-end новые tracked-файлы в `/home/slin/repos/orchestrator/docs/work-items/*` и в worktree (`/repos/_wt/...`) имеют владельца `slin:slin` (1000:1000). `ls -ld /home/slin/repos/orchestrator/docs/work-items/*` → НЕ `root:root`. - **FAIL**: появляются новые `root:root` tracked-файлы. ## AC-2 — git под slin работает без ручного chown - **PASS**: на хосте под `slin` `git -C /home/slin/repos/orchestrator pull`, `git status`, `git reset` выполняются без `Permission denied` / `insufficient permission for adding an object`. - **FAIL**: любая из команд падает на правах. ## AC-3 — claude-агенты стартуют (preflight ok) - **PASS**: `claude-auth`/preflight проходит; агент конвейера запускается и завершается `exit_code=0` (не `Not logged in`, не отказ доступа к creds). - **FAIL**: агент падает на авторизации/чтении `/home/slin/.claude`. ## AC-4 — docker.sock доступен (деплой не сломан) - **PASS**: из контейнера под новым uid `docker ps` / docker-операции деплоя (ORCH-36 путь) работают — доступ через gid 999 сохранён (`group_add: ["999"]`). - **FAIL**: docker-операции отваливаются (`permission denied` на сокете). ## AC-5 — SSH-деплой работает - **PASS**: ssh-ключи читаются из домашнего каталога нового uid; деплой-хук по ssh (`DEPLOY_SSH_*`) выполняется. - **FAIL**: ssh не находит/не читает ключи (маунт указывает на чужой HOME). ## AC-6 — Конвейер не сломан (без регресса) - **PASS**: тестовая задача проходит стадии без падения запуска конвейера; доступ к Plane/Gitea из агентов сохранён; `pytest tests/ -q` зелёный. - **FAIL**: конвейер встаёт / тесты падают. ## AC-7 — Проверено на staging ДО прода - **PASS**: изменение прогнано на staging (8501), `15-staging-log.md` → `staging_status:` положительный; прод-рестарт выполнен в окно тишины. - **FAIL**: изменение применено сразу на прод без staging-прогона. ## AC-8 — Документация обновлена (golden source) - **PASS**: `docs/operations/INFRA.md` (блок volumes / SSH target / uid рантайма) и `CHANGELOG.md` обновлены; ADR с выбором варианта и обоснованием создан в `06-adr/`. Reviewer подтверждает. - **FAIL**: код изменён, документация/ADR не обновлены. ## AC-9 — Прод-контейнер не уронен вне окна тишины - **PASS**: рестарт self выполнен без активных задач; конвейер enduro-trails не пострадал. - **FAIL**: рестарт во время активных задач / падение прод-инстанса. ## AC-10 — Host-prerequisites зафиксированы и выполнены - **PASS**: предусловия P-1…P-4 (TRZ §10 / BRD §8) описаны в ADR/INFRA как обязательная процедура Owner; P-1 (доступ uid 1000 к claude creds) фактически обеспечен — подтверждается прохождением AC-3. - **FAIL**: фикс применён без обеспечения доступа к creds (P-1) → preflight/конвейер падает; либо предусловия нигде не задокументированы.