Files
orchestrator/docs/work-items/ORCH-108/03-acceptance-criteria.md
claude-bot d11daf11f7
All checks were successful
CI / test (push) Successful in 1m15s
analyst(ET): auto-commit from analyst run_id=791
2026-06-17 17:26:06 +03:00

8.6 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-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