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