# 03 — Критерии приёмки (Acceptance Criteria): ORCH-075 — ORCH-52b: стандарт документов Work Item: **ORCH-075** · Repo: **orchestrator** · Стадия: analysis Формат: каждый критерий имеет **PASS** (что должно быть истинно для приёмки) и **FAIL** (что считается провалом). Скоп — только создание стандарта/шаблонов/манифеста (docs-only). > Критерии унаследованы из AC задачи и расширены проверяемыми условиями. Любой машинный/ручной > reviewer проверяет их буквально по файлам репозитория. --- ## AC-1 — Манифест создан и покрывает весь реальный набор **Условие:** существует `docs/_standards/PIPELINE_DOCS.md` с таблицей-манифестом. - **PASS:** файл существует; манифест содержит строки для **всех** номерных доков реального набора — `00, 01, 02, 03, 04, 06, 07, 08, 10, 12, 13, 14, 15, 16, 17`; для каждого указаны владелец-агент (analyst/architect/developer/reviewer/tester/deployer/система) и категория (`required` / `when-applicable` / `optional`). - **FAIL:** файла нет; пропущен хотя бы один документ набора; у дока отсутствует владелец или категория. --- ## AC-2 — Шаблоны созданы для каждого required/when-applicable дока **Условие:** существует `docs/_templates/` с каноническими скелетами. - **PASS:** для каждого `required` и `when-applicable` дока есть файл-шаблон; в шаблоне присутствуют (а) frontmatter с machine-key там, где он требуется по FR-1 (`12`→`verdict:`, `13`→`result:`, `14`→`deploy_status:`, `15`→`staging_status:`, `16`→`post_deploy_status:`, `17`→`security_status:`), и (б) обязательные `##`-секции из ТЗ §FR-2.1. - **FAIL:** отсутствует шаблон для какого-либо required/when-applicable дока; в шаблоне машинного дока нет требуемого frontmatter-ключа; набор секций произвольный, не из ТЗ. --- ## AC-3 — ADR-naming зафиксирован **Условие:** в стандарте есть раздел про ADR-naming. - **PASS:** зафиксирован формат `06-adr/ADR-NNN-.md` (NNN с `001`), путь (`docs/work-items//06-adr/`), правило формирования slug (kebab-case) и связь со сквозным реестром `docs/architecture/adr/adr-NNNN-.md`; приведён ≥1 реальный пример. - **FAIL:** ADR-naming не описан, либо описанный формат не совпадает с реальными ADR в репо (напр. указана нумерация не с `001`, неверный путь, неверный регистр slug). --- ## AC-4 — Согласованность с фактическими эталонами **Условие:** манифест и шаблоны соответствуют реальным эталонным докам (ORCH-088/073/089/071) и фактическому коду. - **PASS:** в шаблонах нет секций, которых никто не пишет в эталонах; все секции эталонов, входящие в общий канон, присутствуют; frontmatter-ключи машинных доков совпадают с тем, что реально парсят `src/qg/checks.py` (`verdict:`/`result:`/`deploy_status:`/`staging_status:`/ `security_status:`); привязка «документ→стадия→гейт» совпадает с `src/stages.py` (`STAGE_TRANSITIONS`). - **FAIL:** шаблон вводит выдуманную секцию; манифест приписывает доку неверную стадию/гейт/ агента; frontmatter-ключ в шаблоне не тот, что читает гейт. --- ## AC-5 — Ссылки и CHANGELOG обновлены **Условие:** точки-ссылки и журнал изменений отражают новый стандарт. - **PASS:** `CLAUDE.md` и `docs/architecture/README.md` содержат ссылку на `docs/_standards/PIPELINE_DOCS.md` (и/или `docs/_templates/`); в `CHANGELOG.md` добавлена запись в `## [Unreleased]` типа `docs:`. - **FAIL:** хотя бы одна из трёх точек не обновлена. --- ## AC-6 — Код гейтов НЕ изменён **Условие:** изменение строго docs-only. - **PASS:** `git diff` не содержит изменений в `src/qg/checks.py` (`QG_CHECKS`/`check_*`), `src/stages.py` (`STAGE_TRANSITIONS`), `src/stage_engine.py`, схеме БД и любом коде гейтов; затронуты только `docs/**`, `CLAUDE.md`, `CHANGELOG.md` (+ опционально новые файлы тестов). - **FAIL:** изменён любой из перечисленных кодовых модулей/гейтов/схемы. --- ## AC-7 — Манифест различает machine-verdict и информационные доки **Условие:** манифест честно отражает механизм проверки. - **PASS:** документы, чей frontmatter читает гейт (`12,13,14,15,17`), помечены своим machine-key и гейтом; информационные (`00,08,10,16`) явно помечены как не гейтящиеся; под-гейты ребра `deploy-staging→deploy` (security/merge/image-freshness) отмечены как врезки в `advance_stage`, а не строки `STAGE_TRANSITIONS`. - **FAIL:** информационный док представлен как гейтящийся (или наоборот); под-гейты выданы за стадии. --- ## Сводная матрица AC ↔ BR | AC | Покрывает BR | |----|--------------| | AC-1 | BR-1 | | AC-2 | BR-2 | | AC-3 | BR-3 | | AC-4 | BR-4, BR-6 | | AC-5 | BR-5 | | AC-6 | NFR-1, NFR-5 | | AC-7 | BR-6, NFR-2 |