8.3 KiB
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, пошаговый runbookLITE_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 |