Files
orchestrator/docs/work-items/ORCH-046/03-acceptance-criteria.md
claude-bot c7bca51d4b
All checks were successful
CI / test (push) Successful in 12s
analyst(ET): auto-commit from analyst run_id=139
2026-06-06 04:09:41 +00:00

5.9 KiB
Raw Blame History

Критерии приёмки — ORCH-046

Work Item ID: ORCH-046 Stage: analysis Author: analyst Date: 2026-06-06

Каждый критерий имеет чёткое условие PASS/FAIL. Reviewer/Tester проверяют по этому списку.

AC-1 — Дословные P0/P1 findings ревьюера в task_desc

Условие: при reviewer REQUEST_CHANGES (откат review/testingdevelopment) строка task_desc, переданная в enqueue_job("developer", …), содержит ДОСЛОВНЫЙ текст findings уровня P0/P1 из 12-review.md (не только ссылку).

  • PASS: в task_desc присутствуют дословные строки P0/P1 пунктов из секции ## Findings файла 12-review.md.
  • FAIL: task_desc содержит только ссылку на файл, без текста findings (при наличии валидного файла с P0/P1).

AC-2 — Причина падения тестера в task_desc

Условие: при tester FAIL (check_tests_passed, откат testingdevelopment) строка task_desc содержит причину падения: reason из гейта + релевантный фрагмент тела 13-test-report.md.

  • PASS: task_desc содержит reason И непустой фрагмент тела отчёта (вывод pytest / FAIL-строки / Итог), когда отчёт валиден.
  • FAIL: task_desc содержит только ссылку на файл без причины/фрагмента (при наличии валидного отчёта).

AC-3 — Ссылка на полный файл сохранена

Условие: в обеих ветках (reviewer, tester) task_desc по-прежнему содержит ссылку на полный файл-артефакт (docs/work-items/<id>/12-review.md / 13-test-report.md) как дополнительный контекст.

  • PASS: путь к файлу присутствует в task_desc в обоих сценариях.
  • FAIL: ссылка на файл удалена/отсутствует.

AC-4 — Парсер устойчив к отсутствию/битому файлу (graceful)

Условие: extract_review_findings(path) и extract_test_failures(path) НИКОГДА не бросают исключение; при отсутствующем/нечитаемом/битом файле возвращают "", а вызывающий код в stage_engine делает fallback на прежнюю ссылку-строку.

  • PASS: на несуществующем пути, пустом файле, файле без секций, битом markdown/YAML — функции возвращают "" без исключения; advance_stage отрабатывает откат как раньше (ссылка-строка в task_desc).
  • FAIL: любое исключение наружу из парсера или из advance_stage из-за парсинга.

AC-5 — Тесты зелёные + новые юнит-тесты парсера

Условие: существующие тесты не сломаны; добавлены юнит-тесты парсера, покрывающие: findings есть / findings пусто / битый YAML(frontmatter) / только P3 (нет P0/P1).

  • PASS: python -m pytest tests/ -q зелёный; tests/test_review_parse.py содержит как минимум кейсы: P0/P1 присутствуют → текст возвращён; нет findings/только P2-P3 → ""; битый файл → ""; отсутствующий путь → ""; для test-report: FAIL-фрагмент извлечён / пустой отчёт → "".
  • FAIL: падение существующих тестов или отсутствие перечисленных кейсов.

AC-6 — Retry-счётчик и rollback НЕ изменены по поведению

Условие: логика _developer_retry_count, MAX_DEVELOPER_RETRIES = 3, последовательность откатов и поля AdvanceResult (rolled_back_to, enqueued_agent, enqueued_job_id, alerted) идентичны прежним.

  • PASS: существующие тесты test_stage_engine.py на rollback/retry зелёные; при 4-м заходе по-прежнему alert вместо enqueue; меняется только текст task_desc.
  • FAIL: изменилось число retry, порядок вызовов, или значения полей AdvanceResult.

AC-7 — Out-of-scope не затронут

Условие: не изменены: check_* гейты, реестр QG_CHECKS, сигнатуры публичных функций (advance_stage, _run_qg, check_*), webhook-пути, формат Plane-комментариев.

  • PASS: git diff не содержит изменений в src/qg/checks.py (логика гейтов), сигнатурах публичных функций, src/webhooks/*, usage.build_status_comment; test_qg_registry_snapshot зелёный.
  • FAIL: любое из перечисленного изменено.

AC-8 — Документация и ADR обновлены (golden source)

Условие: правка ядра → заведён ADR (06-adr/), обновлён CHANGELOG.md, при необходимости — docs/architecture/README.md/internals.md (раздел Stage Engine / Откаты).

  • PASS: присутствует docs/work-items/ORCH-046/06-adr/ADR-001-*.md; в CHANGELOG.md есть запись ORCH-046.
  • FAIL: ADR или запись в CHANGELOG отсутствуют.