From edff0484c97b239938dad4a4239c87c0d879529c Mon Sep 17 00:00:00 2001 From: claude-bot Date: Fri, 5 Jun 2026 21:18:33 +0000 Subject: [PATCH] reviewer(ET): auto-commit from reviewer run_id=134 --- docs/work-items/ORCH-047/12-review.md | 54 +++++++++++++++------------ 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/docs/work-items/ORCH-047/12-review.md b/docs/work-items/ORCH-047/12-review.md index 8a49af5..d0b7dd0 100644 --- a/docs/work-items/ORCH-047/12-review.md +++ b/docs/work-items/ORCH-047/12-review.md @@ -2,16 +2,17 @@ type: review work_item_id: ORCH-047 verdict: APPROVED -version: 2 +version: 3 --- # Review ORCH-047 ## Summary -Гейт `check_tests_passed` (`_parse_tests_verdict`) теперь читает `result:` наравне с -`verdict:`/`status:`. Реализация точно соответствует ТЗ, ADR-001 и критериям приёмки. -Полный регресс зелёный (442 passed), снапшот реестра гейтов не изменился. Документация -(README, ADR, CHANGELOG) обновлена в этом же PR. Блокеров нет. +Гейт `check_tests_passed` (через `_parse_tests_verdict`) теперь читает `result:` наравне с +`verdict:`/`status:`. Реализация точно соответствует ТЗ (`02-trz.md`), ADR-001 и критериям +приёмки. Независимый прогон: `pytest tests/ -q` → **442 passed**; снапшот реестра гейтов не +изменился. Документация (README, ADR-001, CHANGELOG) обновлена в том же PR. Блокеров и +must-fix нет → APPROVED. ## Findings @@ -25,32 +26,37 @@ version: 2 - нет ### P3 — Nice-to-have -- [ ] Докстринг `check_tests_passed` (стр. 184) всё ещё говорит «Gate the testing -> deploy - transition», тогда как фактический переход — `testing → deploy-staging`. Несоответствие - предсуществующее, в этом PR не введено; косметика. +- [ ] Докстринг `check_tests_passed` (≈стр. 184) по-прежнему говорит «Gate the testing -> + deploy transition», тогда как фактический переход — `testing → deploy-staging`. + Несоответствие предсуществующее, этим PR не введено; чистая косметика, не блокирует. ## Соответствие ТЗ и AC -- **ТЗ §2** — все 10 правил поведения реализованы: чтение `result:` (стр. 261, с защитой от - `None`/нормализацией), пустота всех трёх → корректная reason-строка (стр. 264), объединённая - строка `fields` (стр. 267), negative проверяется первым и авторитетен, positive, fallback — - всё на месте. Наборы токенов не тронуты (стр. 222–223). ✅ -- **ТЗ §4/§5/§6** — сигнатура гейта, `QG_CHECKS`, API, схема БД не изменены. Снапшот-тест - `test_qg_registry_snapshot.py` зелёный (AC-10). ✅ -- **AC-01..AC-09** — покрыты: новые кейсы `result: PASS/FAIL`, negative-приоритет между полями - (verdict BLOCKED, status failed), `result: ready-to-deploy`, отсутствие машинных полей; легаси - `TestCheckTestsPassed` зелёные без правок логики (AC-05). ✅ -- **AC-12** — `pytest tests/ -q` → 442 passed. ✅ +- **ТЗ §2** — все 10 правил поведения реализованы: чтение `result:` (стр. 261, нормализация + `str(...).upper().strip()` + защита от `None`); все три пусты → корректная reason-строка + «...verdict/status/result...» (стр. 263–264); объединённая строка `fields = "{verdict} + {status} {result}"` (стр. 267); negative-токен проверяется ПЕРВЫМ и авторитетен + (стр. 268–270); positive (стр. 271–273); fallback на нераспознанные (стр. 275–279). + Наборы `_TESTS_NEGATIVE_TOKENS`/`_TESTS_POSITIVE_TOKENS` не тронуты. ✅ +- **ТЗ §4/§5/§6** — сигнатура `check_tests_passed`, имя гейта, `QG_CHECKS`, HTTP-API, схема БД + не изменены. Снапшот `tests/test_qg_registry_snapshot.py` зелёный (AC-10). ✅ +- **AC-01..AC-09** — покрыты новыми кейсами в `TestCheckTestsPassed`: `result: PASS/FAIL`, + авторитетность negative между полями (`verdict: BLOCKED`, `status: failed` поверх + `result: PASS`), `result: ready-to-deploy`, отсутствие машинных полей (reason упоминает + `result`). Легаси-кейсы остались зелёными без правок логики (AC-05). ✅ +- **AC-12** — `pytest tests/ -q` → 442 passed (независимый прогон ревьюера). ✅ ## Соответствие ADR -- ADR-001 (`06-adr/ADR-001-result-field-in-tests-gate.md`) — решение «три равноправных поля, - токены заморожены, negative авторитетен, реестр неизменен» полностью отражено в коде. -- Глобальный ADR обоснованно не требуется (изменение не добавляет гейт/стадию/компонент) — - согласуется с конвенцией CLAUDE.md. SHARED-риск (общий инстанс с enduro-trails) учтён: - токены заморожены, обратная совместимость покрыта тестами. +- ADR-001 (`06-adr/ADR-001-result-field-in-tests-gate.md`): решение «три равноправных поля, + токены заморожены, negative авторитетен, реестр/сигнатура неизменны» полностью отражено + в коде. +- Глобальный ADR обоснованно не требуется (изменение не добавляет гейт/стадию/компонент, + не меняет топологию) — согласуется с конвенцией CLAUDE.md. SHARED-риск общего инстанса + (orchestrator + enduro-trails) учтён: токены заморожены, обратная совместимость покрыта + тестами. ## Документация ОБНОВЛЕНА в том же PR (правило 2/6 CLAUDE.md, AC-11): - `docs/architecture/README.md` — строка вердикт-парсера: для testing-гейта перечислены `result:`/`verdict:`/`status:` + пометка про авторитетность negative. ✅ - `docs/work-items/ORCH-047/06-adr/ADR-001-result-field-in-tests-gate.md` — заведён. ✅ -- `CHANGELOG.md` — запись `Fixed` про ORCH-047. ✅ +- `CHANGELOG.md` — запись в `Fixed` про ORCH-047. ✅