Files
orchestrator/docs/work-items/ORCH-047/03-acceptance-criteria.md
claude-bot c3879f2b80
All checks were successful
CI / test (push) Successful in 12s
analyst(ET): auto-commit from analyst run_id=125
2026-06-05 20:44:58 +00:00

69 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Критерии приёмки — ORCH-047
Каждый критерий имеет однозначное условие PASS/FAIL.
## AC-01 — `result: PASS` проходит гейт (главный кейс ORCH-17)
- **Дано:** `13-test-report.md` с frontmatter, содержащим только `result: PASS` (без `verdict:`/`status:`).
- **Ожидается:** `check_tests_passed(...)``(True, ...)`, в reason присутствует «PASS».
- **PASS:** возвращается True. **FAIL:** возвращается False.
## AC-02 — `result: FAIL` откатывает задачу
- **Дано:** frontmatter с `result: FAIL` (без `verdict:`/`status:`).
- **Ожидается:** `(False, ...)`, reason содержит токен отрицания (`FAIL`).
- **PASS:** False. **FAIL:** True.
## AC-03 — Negative авторитетен поверх positive (в т.ч. между полями)
- **Дано:** `result: PASS`, но `verdict: BLOCKED` (или `status: failed`).
- **Ожидается:** `(False, ...)`, reason упоминает negative-токен (`BLOCKED`/`FAILED`).
- **PASS:** False. **FAIL:** True.
## AC-04 — Positive в любом из трёх полей даёт PASS
- **Дано (каждый подкейс отдельно):**
- только `verdict: PASS`;
- только `status: PASSED`;
- только `result: ready-to-deploy`.
- **Ожидается:** все три → `(True, ...)`.
- **PASS:** все True. **FAIL:** хоть один False.
## AC-05 — Обратная совместимость (enduro-trails / ORCH-016)
- **Дано:** существующие реальные формы из `TestCheckTestsPassed`:
- `verdict: PASS` + `status: pass`;
- `verdict: PASS — ready-to-deploy`;
- `verdict: ready-to-deploy` + `status: PASSED`;
- `verdict: stage:ready-to-deploy` + `status: pass`;
- `verdict: BLOCKED` + проза «23 passed».
- **Ожидается:** результаты идентичны прежним (PASS-кейсы → True, BLOCKED → False). Старые тесты `TestCheckTestsPassed` зелёные.
- **PASS:** поведение не изменилось. **FAIL:** любой регресс.
## AC-06 — Ни одно из трёх полей не задано → FAIL
- **Дано:** frontmatter без `result`/`verdict`/`status` (например, только `type:`/`version:`); тело может содержать «Result: PASS» прозой.
- **Ожидается:** `(False, ...)`, причина про отсутствие машиночитаемого вердикта.
- **PASS:** False. **FAIL:** True.
## AC-07 — Только проза, без frontmatter → FAIL
- **Дано:** отчёт без YAML-frontmatter, в теле «Result: PASS / All tests passed».
- **Ожидается:** `(False, ...)`, причина про отсутствие frontmatter. Прозу не читаем.
- **PASS:** False. **FAIL:** True.
## AC-08 — Битый YAML → FAIL без исключения
- **Дано:** некорректный YAML во frontmatter.
- **Ожидается:** `(False, ...)` c упоминанием YAML/frontmatter, функция НЕ бросает исключение.
- **PASS:** False и нет raise. **FAIL:** raise или True.
## AC-09 — Отчёт отсутствует → FAIL
- **Дано:** файла `13-test-report.md` нет.
- **Ожидается:** `(False, "...not found...")`.
- **PASS:** False. **FAIL:** True.
## AC-10 — Реестр гейтов неизменен
- **Ожидается:** `QG_CHECKS` содержит ровно те же ключи, что и до изменения; `tests/test_qg_registry_snapshot.py` зелёный.
- **PASS:** снапшот совпал. **FAIL:** снапшот изменился.
## AC-11 — Документация и ADR обновлены (правило 2/6 CLAUDE.md)
- **Ожидается:** заведён `docs/work-items/ORCH-047/06-adr/ADR-001-*.md`; обновлены `docs/architecture/README.md` (вердикт-парсер testing-гейта) и `CHANGELOG.md`.
- **PASS:** все три присутствуют и описывают изменение. **FAIL:** что-либо отсутствует → REQUEST_CHANGES на review.
## AC-12 — Полный регресс зелёный
- **Ожидается:** `pytest tests/ -q` — все тесты PASS.
- **PASS:** exit code 0. **FAIL:** любой упавший тест.