feat(reviewer): require trust-gate proof in empty-queue reports (#198)

Add assess_empty_queue_report to block empty-queue claims without
pr_inventory_trust_gate.status == trusted_empty, reject weak merge-commit
corroboration, extend inventory handoff fields, and wire the gate into
build_final_report and capability-stop terminal validation.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
2026-07-06 11:16:35 -04:00
co-authored by Claude Opus 4.8
parent be6feabf70
commit ca3de3da53
5 changed files with 282 additions and 1 deletions
+12 -1
View File
@@ -120,6 +120,11 @@ def assess_capability_stop_report(
capability_denied: bool = True,
) -> dict:
"""Validate final report purity after reviewer capability denial."""
from review_proofs import (
assess_empty_queue_report,
parse_trust_gate_status_from_report,
)
text = report_text or ""
lower = text.lower()
violations = []
@@ -148,13 +153,19 @@ def assess_capability_stop_report(
r"inventory empty",
re.I,
)
parsed_status = parse_trust_gate_status_from_report(text)
effective_status = trust_gate_status or parsed_status
if empty_queue_patterns.search(text):
if trust_gate_status != "trusted_empty":
if effective_status != "trusted_empty":
violations.append(
"empty-queue claim after capability stop without "
"pr_inventory_trust_gate.status == trusted_empty"
)
empty_queue = assess_empty_queue_report(text)
if empty_queue.get("claimed") and not empty_queue.get("proven"):
violations.extend(empty_queue.get("reasons") or [])
ok, elig_violations = validate_eligibility_wording(text)
violations.extend(elig_violations)