8.6 KiB
work_item, stage, author_agent, status, created_at, model_used
| work_item | stage | author_agent | status | created_at | model_used |
|---|---|---|---|---|---|
| ORCH-108 | analysis | analyst | ready-for-review | 2026-06-17 | claude-opus-4-8 |
03 — Критерии приёмки (Acceptance Criteria): ORCH-108 — FAQ: как использовать STOP
Work Item: ORCH-108 · Repo: orchestrator · Стадия: analysis
Формат: каждый критерий имеет PASS (что должно быть истинно для приёмки) и FAIL (что считается провалом). Reviewer проверяет их буквально по файлам репозитория.
AC-1 — FAQ-документ существует и адресован пользователю
Условие: создан docs/operations/FAQ_STOP.md в формате «вопрос → ответ» для пользователя Plane.
- PASS: файл существует; есть H1 про STOP и вводный абзац «для кого/зачем»; тон пользовательский (не требует чтения кода); язык русский.
- FAIL: файла нет; либо это разработческий/архитектурный текст, а не пользовательский FAQ; либо нет формата «вопрос → ответ».
AC-2 — Покрыты все обязательные темы
Условие: FAQ содержит секции, отвечающие на 8 обязательных вопросов TRZ §FR-2.
- PASS: присутствуют все темы — (1) что делает STOP; (2) как отменить; (3) что происходит пошагово; (4) отложенная отмена в критичном окне; (5) STOP не откатывает прод-код; (6) перезапуск через «To Analyse» с нуля; (7) «ничего не произошло — почему»; (8) где увидеть результат.
- FAIL: отсутствует хотя бы одна из тем (1)–(8).
AC-3 — Пошаговые последствия STOP описаны верно
Условие: тема (3) перечисляет наблюдаемые последствия согласно cancel_task.
- PASS: перечислены — остановка агента; снятие job'ов; удаление рабочей ветки и worktree; явное
«
main/прод не трогаются»; переход вcancelled; уведомление Telegram + комментарий Plane; явное «docs-артефакты сохраняются». - FAIL: пропущен или искажён любой из этих пунктов (например утверждается, что удаляются docs,
или что трогается
main).
AC-4 — Отложенная отмена в критичном окне
Условие: тема (4) корректно описывает поведение при STOP во время merge/deploy.
- PASS: сказано, что отмена откладывается до честного завершения необратимого шага; что
main/прод не трогаются; что после завершения шага отмена применяется. - FAIL: утверждается мгновенное прерывание деплоя/слияния, либо что STOP убивает идущий необратимый шаг, либо тема отсутствует.
AC-5 — STOP ≠ откат прод-кода (явный ответ)
Условие: тема (5) явно разводит «сброс прогресса» и «revert выложенного».
- PASS: есть явное «Нет»: STOP не откатывает код, уже влитый в
main/прод; revert — отдельная задача. - FAIL: FAQ обещает/намекает, что STOP откатит прод-код, либо тема отсутствует.
AC-6 — Перезапуск отменённой задачи
Условие: тема (6) описывает перезапуск.
- PASS: сказано, что перезапуск — только «To Analyse»; задача создаётся с нуля (новая ветка
от актуального
main); «продолжить с середины» нельзя. - FAIL: утверждается возможность продолжить отменённую задачу с середины, либо неверный механизм перезапуска, либо тема отсутствует.
AC-7 — «Не сработало» и идемпотентность
Условие: тема (7) перечисляет причины no-op.
- PASS: перечислены — статус STOP не заведён на доске (fail-closed); задача уже терминальна
(идемпотентный no-op); отмена отключена для репо (
stop_status_enabled/stop_status_repos). - FAIL: причины не описаны или описаны неверно (например, утверждается, что повторный STOP ломает задачу).
AC-8 — Перекрёстные ссылки без дублирования
Условие: FAQ связан с витриной/обзором двусторонними ссылками (TRZ §FR-4).
- PASS:
docs/overview/business.md(«Сценарий 6») иdocs/overview/tech-pipeline.md(«Отмена: STOP →cancelled») содержат ссылку наFAQ_STOP.md; FAQ ссылается на инженерный обзор и ADR ORCH-090 как на источник истины; машинные детали не дублируются, а даются ссылками. - FAIL: ссылок нет (FAQ-«сирота»); либо FAQ дословно копирует ADR/обзор вместо ссылки.
AC-9 — Фактическая корректность (нет ложных утверждений)
Условие: утверждения FAQ соответствуют коду (src/cancel.py, src/stage_engine.py::cancel_task,
src/webhooks/plane.py, src/config.py); запрещённых неверных утверждений нет.
- PASS: в FAQ отсутствуют утверждения «STOP трогает
main/делает force-push», «STOP откатывает прод», «отменённую задачу можно продолжить с середины», «STOP мгновенно убивает идущий деплой». - FAIL: присутствует хотя бы одно противоречащее коду утверждение.
AC-10 — Docs-only, нулевой рантайм-регресс
Условие: изменения ограничены документацией + структурным тестом.
- PASS:
git diffне затрагиваетsrc/**,STAGE_TRANSITIONS/QG_CHECKS/check_*/схему БД; изменены толькоdocs/**,CHANGELOG.md,tests/test_faq_stop_doc.py; полныйtests/зелёный. - FAIL: затронут
src/**или поведение гейтов/конвейера; либо регрессtests/красный.
AC-11 — Анти-дрейф тест присутствует и зелёный
Условие: структурную целостность FAQ закрывает детерминированный тест (TRZ §FR-6).
- PASS:
tests/test_faq_stop_doc.pyсуществует; проверяет наличие файла, обязательных секций-якорей, ключевых фактов-«кирпичей», перекрёстных ссылок и отсутствие запрещённых утверждений; не делает сети/LLM/subprocess; проходит зелёным. - FAIL: теста нет; либо он не детерминирован (сеть/LLM/subprocess); либо красный.
Сводная матрица AC ↔ FR/BR
| AC | Покрывает |
|---|---|
| AC-1 | BR-1 / FR-1 |
| AC-2 | BR-2…BR-8 / FR-2 |
| AC-3 | BR-3 / FR-2(3) |
| AC-4 | BR-4 / FR-2(4) |
| AC-5 | BR-5 / FR-2(5) |
| AC-6 | BR-6 / FR-2(6) |
| AC-7 | BR-7 / FR-2(7) |
| AC-8 | BR-9 / FR-3, FR-4 |
| AC-9 | NFR-2 / FR-5 |
| AC-10 | NFR-1 / FR (docs-only), §7 |
| AC-11 | NFR-4 / FR-6 |