fix(qg): read result: alongside verdict:/status: in tests gate (ORCH-047) #40

Merged
admin merged 9 commits from feature/ORCH-047-check-tests-passed-gate-must-r into main 2026-06-06 00:25:41 +03:00
Owner

Summary

  • _parse_tests_verdict (src/qg/checks.py) теперь читает три равноправных машиночитаемых поля frontmatter 13-test-report.md: result: (канон промпта тестера), verdict:, status: (легаси/enduro-trails). Достаточно любого одного непустого.
  • Negative-токен в любом поле остаётся авторитетным (перебивает positive); наборы токенов заморожены — полная обратная совместимость.
  • Сигнатура check_tests_passed, имя гейта и реестр QG_CHECKS не менялись.

Зачем

Устраняет рассинхрон контракта producer/consumer: тестер эмитит result: PASS (.openclaw/agents/tester.md), а гейт читал только verdict:/status: → откат testing → development в петлю до MAX_DEVELOPER_RETRIES (ORCH-17). См. ADR-001.

Документация

  • docs/architecture/README.md — вердикт-парсер testing-гейта.
  • docs/work-items/ORCH-047/06-adr/ADR-001-result-field-in-tests-gate.md.
  • CHANGELOG.md — запись Fixed.

Test plan

  • pytest tests/ -q — 442 passed.
  • Новые кейсы tests/test_qg.py::TestCheckTestsPassed (result: PASS/FAIL, negative-приоритет, ready-to-deploy).
  • tests/test_qg_registry_snapshot.py зелёный (реестр неизменен).

Refs: ORCH-047

🤖 Generated with Claude Code

## Summary - `_parse_tests_verdict` (`src/qg/checks.py`) теперь читает три равноправных машиночитаемых поля frontmatter `13-test-report.md`: `result:` (канон промпта тестера), `verdict:`, `status:` (легаси/enduro-trails). Достаточно любого одного непустого. - Negative-токен в любом поле остаётся авторитетным (перебивает positive); наборы токенов заморожены — полная обратная совместимость. - Сигнатура `check_tests_passed`, имя гейта и реестр `QG_CHECKS` не менялись. ## Зачем Устраняет рассинхрон контракта producer/consumer: тестер эмитит `result: PASS` (`.openclaw/agents/tester.md`), а гейт читал только `verdict:`/`status:` → откат `testing → development` в петлю до `MAX_DEVELOPER_RETRIES` (ORCH-17). См. ADR-001. ## Документация - `docs/architecture/README.md` — вердикт-парсер testing-гейта. - `docs/work-items/ORCH-047/06-adr/ADR-001-result-field-in-tests-gate.md`. - `CHANGELOG.md` — запись `Fixed`. ## Test plan - [x] `pytest tests/ -q` — 442 passed. - [x] Новые кейсы `tests/test_qg.py::TestCheckTestsPassed` (result: PASS/FAIL, negative-приоритет, ready-to-deploy). - [x] `tests/test_qg_registry_snapshot.py` зелёный (реестр неизменен). Refs: ORCH-047 🤖 Generated with Claude Code
admin added 4 commits 2026-06-06 00:04:06 +03:00
docs: init ORCH-047 business request
All checks were successful
CI / test (push) Successful in 13s
974d4f94db
analyst(ET): auto-commit from analyst run_id=125
All checks were successful
CI / test (push) Successful in 12s
c3879f2b80
architect(ET): auto-commit from architect run_id=126
All checks were successful
CI / test (push) Successful in 11s
75fb4069a4
fix(qg): read result: alongside verdict:/status: in tests gate
All checks were successful
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 11s
51a76e8169
_parse_tests_verdict now accepts three equal-rank machine-readable
frontmatter fields in 13-test-report.md — result: (canonical tester
output), verdict: and status: (legacy/enduro-trails). Any one non-empty
field suffices; a negative token in any field stays authoritative.

Fixes the producer/consumer contract mismatch where the tester emits
`result: PASS` (per .openclaw/agents/tester.md) but the gate only read
verdict:/status:, causing a testing->development rollback loop until
MAX_DEVELOPER_RETRIES (observed on ORCH-17). Token sets frozen and gate
signature/QG_CHECKS unchanged for full backward compatibility.

Refs: ORCH-047
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
admin added 1 commit 2026-06-06 00:06:03 +03:00
reviewer(ET): auto-commit from reviewer run_id=128
All checks were successful
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 12s
c1abfb7436
admin added 1 commit 2026-06-06 00:07:32 +03:00
tester(ET): auto-commit from tester run_id=129
All checks were successful
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 12s
58fc0a8b94
admin added 1 commit 2026-06-06 00:12:24 +03:00
reviewer(ET): auto-commit from reviewer run_id=131
All checks were successful
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 12s
185eb3f6cf
admin added 1 commit 2026-06-06 00:14:07 +03:00
tester(ET): auto-commit from tester run_id=132
All checks were successful
CI / test (push) Successful in 15s
CI / test (pull_request) Successful in 12s
2f396452e8
admin added 1 commit 2026-06-06 00:18:35 +03:00
reviewer(ET): auto-commit from reviewer run_id=134
All checks were successful
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 11s
edff0484c9
admin merged commit 5d04de9eb6 into main 2026-06-06 00:25:41 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/orchestrator#40