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

8.3 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-105 analysis analyst ready-for-review 2026-06-12 claude-opus-4-8

03 — Критерии приёмки (Acceptance Criteria): ORCH-105 — Подготовка презентации по орку

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

Формат: каждый критерий имеет PASS (что должно быть истинно для приёмки) и FAIL (что считается провалом). Любой машинный/ручной reviewer проверяет их буквально по файлам репозитория.


AC-1 — Слайд про Lite-установку присутствует и точен

Условие: docs/overview/presentation.md содержит выделенный слайд про Lite-установку.

  • PASS: есть слайд (блок ## Слайд N: …), посвящённый Lite-установке, с тезисами, отражающими: два контейнера платформы (orchestrator + orchestrator-watchdog), развёртывание без правки кода (только конфиг), скрипты-помощники (gen_secrets.py, onboard_project.py) и/или docker compose, пошаговый runbook LITE_SETUP.md с проверкой шагов. Факты согласованы с docs/deployment/LITE_SETUP.md.
  • FAIL: слайда нет; ИЛИ слайд называет Lite «единым монолитным инсталлятором»/упоминает несуществующий скрипт; ИЛИ путает Lite с Bundled; ИЛИ факты расходятся с LITE_SETUP.md.

AC-2 — Слайды «как пользоваться орком через Plane» присутствуют и точны

Условие: presentation.md содержит ≥ 2 слайда оператор-инструкции по работе через Plane.

  • PASS: ≥ 2 слайда покрывают (суммарно): запуск задачи («To Analyse»), статусную модель «индикация ≠ управление», оба человеческих гейта (Approved на analysis и Confirm Deploy на deploy), авто-лейблы (autoApprove/autoDeploy/Bug), отмену STOP, наблюдение за ходом (статусы доски + живая Telegram-карточка + комментарии в задаче). Имена статусов/лейблов точны и согласованы с tech-pipeline.md/tech-integrations.md/CLAUDE.md.
  • FAIL: слайдов нет или один; ИЛИ пропущен любой из двух человеческих гейтов; ИЛИ перепутаны имена статусов/лейблов (напр. «Approved выкатывает прод»); ИЛИ утверждается, что авто-лейблы пропускают технические проверки.

AC-3 — Сквозная нумерация и формат слайдов валидны

Условие: канонический парсер parse_slides разбирает источник без нарушений.

  • PASS: tests/test_system_docs.py::test_presentation_source_parses_with_canonical_parser зелёный — слайдов ≥ 12, номера [1..N] строго сквозные, у каждого слайда непустой заголовок и ≥ 1 тезис.
  • FAIL: тест падает — пропуск/дубль в нумерации, пустой заголовок, слайд без тезисов, или слайдов < 12.

AC-4 — Обязательный нарратив и процедура сборки сохранены + новые биты зафиксированы

Условие: обязательные биты нарратива на месте; процедура сборки цела; новый контент анти-дрейф-защищён.

  • PASS: test_presentation_covers_mandatory_narrative_bits и test_presentation_carries_reproducible_build_procedure зелёные (биты проблем/решени/ конвейер/сценари/тираж/статус присутствуют; раздел сборки несёт build_presentation.py и «Проверка»). Добавлены проверки присутствия Lite-установки и использования через Plane, и они зелёные.
  • FAIL: любой из этих тестов красный; ИЛИ новые биты Lite/Plane не покрыты тестом (можно бесследно удалить новый слайд, CI не заметит).

AC-5 — .pptx собирается с новыми слайдами (ручная dev-venv проверка)

Условие: документированная сборка вне рантайма даёт валидный .pptx, включающий новые слайды.

  • PASS: в dev-venv .venv-pptx/bin/python scripts/build_presentation.py печатает Собрано слайдов: N → build/orchestrator-overview.pptx (N = числу слайдов источника, включая новые), exit code 0; открытый файл показывает тёмную тему, корректную кириллицу, новые слайды Lite/Plane — присутствуют и редактируемы.
  • FAIL: скрипт печатает ОШИБКА: … / ненулевой код возврата; ИЛИ N не совпадает с числом слайдов; ИЛИ новых слайдов нет в собранном файле; ИЛИ кириллица/тема сломаны.

AC-6 — Анти-дрейф и гигиена витрины зелёные

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

  • PASS: весь tests/test_system_docs.py зелёный, включая: test_showcase_carries_no_forbidden_host_literals (нет боевых хост-литералов), test_showcase_carries_no_secret_like_values (нет секретоподобных значений), test_all_relative_links_resolve_to_existing_files (ссылки резолвятся), test_build_script_toplevel_imports_are_stdlib_only (top-level скрипта без pptx).
  • FAIL: любой из перечисленных тестов красный (запрещённый литерал/секрет/битая ссылка/ pptx на top-level скрипта).

AC-7 — Self-hosting безопасность: рантайм и образ нетронуты

Условие: изменение остаётся docs-only.

  • PASS: git diff не содержит изменений в src/**, STAGE_TRANSITIONS (src/stages.py), QG_CHECKS/check_* (src/qg/checks.py), схеме БД (src/db.py); test_no_pptx_dependency_in_prod_image зелёный (python-pptx нет в requirements*/ Dockerfile); собранный .pptx не добавлен в git (build/ в .gitignore).
  • FAIL: затронут любой рантайм-модуль/стадия/гейт/схема; ИЛИ python-pptx появился в прод-образе; ИЛИ .pptx-бинарь закоммичен.

AC-8 — Сопровождение выполнено в том же PR

Условие: доки сопровождения обновлены.

  • PASS: CHANGELOG.md несёт запись docs: по ORCH-105; при изменении presentation.md норматив витрины соблюдён; полный pytest tests/ -q зелёный.
  • FAIL: нет записи в CHANGELOG.md; ИЛИ полный регресс tests/ красный.

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

AC Покрывает
AC-1 BR-2 / FR-1
AC-2 BR-3 / FR-2
AC-3 NFR-2 / FR-3
AC-4 BR-5 / FR-3 / FR-5
AC-5 BR-4 / FR-4
AC-6 NFR-4 / FR-5
AC-7 NFR-1 / NFR-3
AC-8 BR-6 / FR-6