Files
orchestrator/docs/work-items/ORCH-011/03-acceptance-criteria.md

13 KiB
Raw Blame History

work_item, stage, author_agent, status, created_at, model_used
work_item stage author_agent status created_at model_used
ORCH-011 analysis analyst ready-for-review 2026-06-11 claude-opus-4-8

03 — Критерии приёмки: ORCH-011 — Полная документация системы мультиагентов

Work Item: ORCH-011 · Repo: orchestrator · Стадия: analysis

Каждый критерий — однозначный PASS/FAIL. Reviewer/Tester проверяют буквально по файлам репозитория (пути витрины — те, что зафиксирует ADR архитектора; ниже «витрина» = выбранный каталог в docs/).


AC-1 — Единая точка входа существует (BR-1)

Условие: в docs/ создан каталог витрины с индекс-документом.

  • PASS: индекс существует; из него по относительным ссылкам достижимы: бизнес-часть, тех-часть (все 7 блоков FR-3), презентационная основа, маршруты трёх аудиторий, норматив сопровождения. Каталог и индекс совпадают с зафиксированными в ADR-001 путями.
  • FAIL: индекса нет, ИЛИ хотя бы одна из перечисленных частей недостижима из индекса.

AC-2 — Бизнес-уровень самодостаточен для нетехнического читателя (BR-2)

Условие: бизнес-часть содержит все 5 обязательных смысловых разделов.

  • PASS: присутствуют разделы: (1) проблема, которую решает оркестратор; (2) суть решения (конвейер агентов, человек = постановщик/приёмщик); (3) что умеет — фактические способности (минимум: автономный конвейер задача→прод, мультипроектность, самовосстановление, пакетный авто-режим, багфикс-трек, отмена STOP, наблюдаемость, self-hosting, тиражируемость Lite/Bundled); (4) ценность (скорость/стоимость/автономность/надёжность/масштаб); (5) сценарии использования (минимум 5 из перечня FR-2). В основном тексте нет необъяснённых кодовых идентификаторов/имён функций.
  • FAIL: отсутствует любой из 5 разделов, ИЛИ способности из обязательного минимума пропущены, ИЛИ текст оперирует жаргоном без объяснения.

AC-3 — Тех-уровень покрывает 7 блоков (BR-3)

Условие: тех-часть содержит все блоки контент-карты TRZ §3 FR-3.

  • PASS: присутствуют и непусты блоки: 1) архитектура/компоненты (включая фоновые демоны и sidecar), 2) конвейер/стадии/гейты (включая под-гейты и человеческие гейты), 3) агенты, 4) структура объектов/каноническая модель, 5) интеграции (Plane/Gitea/LLM/Telegram), 6) качество/безопасность, 7) аналитика/наблюдаемость. Блок 1 содержит хотя бы одну диаграмму/схему потока (текстовую ASCII или mermaid).
  • FAIL: любой блок отсутствует/пуст, ИЛИ схема потока отсутствует.

AC-4 — Карта стадий и гейтов сходится с кодом (BR-3, FR-7)

Условие: конвейер в витрине = src/stages.py::STAGE_TRANSITIONS + реестр QG_CHECKS.

  • PASS: все стадии из STAGE_TRANSITIONS (включая deploy-staging и сток cancelled) присутствуют в витрине в правильном порядке; exit-гейты рёбер названы фактическими именами (check_analysis_approvedcheck_deploy_status); под-гейты ребра deploy-staging→deploy описаны в фактическом порядке (security → merge → coverage → image-freshness) и явно помечены как врезки, не стадии. Структурный тест сверяет перечень стадий импортом src.stages.STAGE_TRANSITIONS и зелёный.
  • FAIL: стадия/гейт пропущены или названы несуществующим именем, ИЛИ порядок противоречит коду, ИЛИ тест-сверка отсутствует/красная.

AC-5 — Агенты: 6 ролей с полным паспортом (BR-3)

Условие: блок агентов описывает все 6 ролей.

  • PASS: для каждой роли (analyst, architect, developer, reviewer, tester, deployer) указаны: назначение, стадия работы, вход, выходные артефакты (по PIPELINE_DOCS.md §2) и machine-verdict ключ (где есть: verdict:/result:/staging_status:/deploy_status:); присутствует таблица модель/эффорт, совпадающая с фактическим резолвом config (ORCH-41/81: developer=xhigh, tester/deployer=medium, прочие=high). Структурный тест полноты 6 ролей зелёный.
  • FAIL: роль пропущена, ИЛИ артефакты/ключи противоречат PIPELINE_DOCS.md, ИЛИ таблица модель/эффорт расходится с config.

Условие: витрина ссылается на golden sources, не подменяя их.

  • PASS: витрина содержит работающие относительные ссылки минимум на: docs/architecture/README.md, docs/architecture/internals.md, docs/_standards/PIPELINE_DOCS.md, docs/_standards/HANDOFF_PROTOCOL.md, реестр docs/architecture/adr/, docs/deployment/LITE_SETUP.md, docs/deployment/BUNDLED_SETUP.md, docs/PRODUCT_VISION.md, CLAUDE.md. Все относительные ссылки витрины резолвятся в существующие файлы (структурный тест зелёный). Существующие golden sources не удалены и не переписаны (допустимы только врезки-ссылки).
  • FAIL: битая ссылка, ИЛИ обязательная ссылка отсутствует, ИЛИ витрина дублирует-подменяет существующий golden source (например, копия таблицы компонентов architecture/README вместо ссылки с кратким резюме).

AC-7 — Презентационная основа и путь к PPTX (BR-5)

Условие: слайдовый источник существует; путь к .pptx воспроизводим.

  • PASS: в витрине есть презентационный источник с явной слайдо-структурой (нумерованные слайды: заголовок + тезисы), покрывающий бизнес-нарратив FR-4 (проблема → решение → как работает → возможности → сценарии → тираж → статус); зафиксирована пошаговая воспроизводимая процедура получения .pptx в тёмном дизайне (скрипт scripts/ ИЛИ документированная процедура — по ADR-001), каждая команда — с проверкой результата; зависимости генерации отсутствуют в requirements* и Dockerfile оркестратора (NFR-2).
  • FAIL: источника нет, ИЛИ слайдо-структура не выражена, ИЛИ путь к .pptx не описан / невоспроизводим, ИЛИ зависимость генерации попала в прод-образ.

AC-8 — Маршруты трёх аудиторий (BR-6)

Условие: индекс несёт маршруты чтения.

  • PASS: в индексе явно выделены 3 маршрута — заказчик, менеджер проекта, разработчик — каждый с упорядоченным списком «что читать» (состав по FR-5).
  • FAIL: хотя бы один маршрут отсутствует или пуст.

AC-9 — Норматив сопровождения зафиксирован (BR-7)

Условие: правило актуальности витрины закреплено.

  • PASS: индекс витрины несёт норму «изменил функционал → обнови витрину в том же PR»; CLAUDE.md содержит указатель на витрину; в ADR-001 зафиксировано, как reviewer-ось обзорных доков (ORCH-079) покрывает витрину (с правкой промпта reviewer или обоснованием, что правка не нужна; при правке промпта — канон 52d сохранён и tests/test_agent_prompts_canon.py зелёный).
  • FAIL: норматив отсутствует в витрине, ИЛИ CLAUDE.md не обновлён, ИЛИ вопрос reviewer-оси не разрешён в ADR.

AC-10 — Анти-дрейф тесты существуют и зелёные (BR-8)

Условие: структурный тест-модуль витрины создан и проходит.

  • PASS: новый тест-модуль (паттерн test_lite_setup_doc.py) покрывает: наличие файлов/разделов витрины, сверку стадий импортом STAGE_TRANSITIONS, полноту 6 агентов, валидность относительных ссылок, FORBIDDEN-скан (импорт запрещённых литералов из tests/test_no_host_hardcodes.py + секрет-эвристика) по новым докам и презентационному источнику, наличие ссылки на витрину в README.md. pytest tests/ -q полностью зелёный.
  • FAIL: тест-модуль отсутствует, ИЛИ любая из перечисленных проверок не реализована, ИЛИ pytest красный.

AC-11 — Рантайм не тронут; указатели обновлены (NFR-1, BR-9)

Условие: изменение строго docs+tests(+опц. scripts).

  • PASS: diff PR не содержит изменений src/**, docker-compose.yml, Dockerfile, requirements*, схемы БД; README.md ссылается на витрину; CHANGELOG.md несёт docs:-запись по ORCH-011; в новых файлах нет секретов/боевых токенов/хост-хардкодов (FORBIDDEN-скан AC-10 зелёный).
  • FAIL: любой файл рантайма изменён, ИЛИ указатели не обновлены, ИЛИ найден секрет/хост-хардкод.

AC-12 — Самодостаточность против вне-репозиторных источников (допущение BRD §6)

Условие: витрина не зависит от файлов вне репо.

  • PASS: витрина не содержит ссылок на вне-репозиторные пути (tasks/…, memory/…, локальные пути хоста); всё содержание подтверждается внутрирепозиторными источниками.
  • FAIL: есть ссылка на файл, отсутствующий в репозитории, или цитата «по памяти» без внутрирепозиторного источника.

Сводная матрица AC ↔ BR/FR

AC Покрывает
AC-1 BR-1 / FR-1
AC-2 BR-2 / FR-2
AC-3 BR-3 / FR-3
AC-4 BR-3, BR-8 / FR-3, FR-7
AC-5 BR-3 / FR-3
AC-6 BR-4 / FR-1, FR-3
AC-7 BR-5 / FR-4, NFR-2
AC-8 BR-6 / FR-5
AC-9 BR-7 / FR-6
AC-10 BR-8 / FR-7
AC-11 BR-9, NFR-1, NFR-3
AC-12 BRD §6 (допущения), NFR-3