# 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/конвейер
  падает; либо предусловия нигде не задокументированы.
