Require explicit PR inventory trust-gate status in empty-queue reports #198

Closed
opened 2026-07-05 15:11:28 -05:00 by jcwalker3 · 2 comments
Owner

Problem

Agents can still claim an empty PR queue using raw pagination or weak corroboration instead of the formal PR inventory trust gate.

Observed failure

The agent claimed:

  • Open PR count: 0
  • Pagination complete: yes
  • "Queue cleared"
  • "Workflow correctly stops with nothing to review"

But the report did not show pr_inventory_trust_gate.status == trusted_empty. It also used weak corroboration: "master latest commit is merge of PR #79." A recent merge does not prove there are no other open PRs.

Required wall

Any report that says "no open PRs," "empty queue," or "nothing to review" must include the explicit PR inventory trust-gate result.

Required report fields

  • pr_inventory_trust_gate.status
  • reasons
  • corroborated
  • independent corroboration source, if any
  • exact remote / owner / repo / state filter
  • active MCP profile used for the inventory

Acceptance criteria

  • Empty queue reports without pr_inventory_trust_gate.status == trusted_empty are blocked.
  • "Latest commit was a PR merge" must not count as queue-empty corroboration.
  • Raw api_get_all exhaustion alone is insufficient unless the trust gate accepts it.
  • If the active MCP session is author-bound, reviewer queue inventory must not be presented as a reviewer decision.

Related

  • #194 (false-empty PR queue investigation) — origin incident.
  • PR #195pr_inventory_trust_gate helper + unit tests.
  • #196 — wiring the gate into the live reviewer queue path (code enforcement); this issue is the reporting-wall counterpart: the gate result must be surfaced verbatim in every empty-queue report.
  • #191 / #183 — final-report hardening lineage.
### Problem Agents can still claim an empty PR queue using raw pagination or weak corroboration instead of the formal PR inventory trust gate. ### Observed failure The agent claimed: * `Open PR count: 0` * `Pagination complete: yes` * "Queue cleared" * "Workflow correctly stops with nothing to review" But the report did not show `pr_inventory_trust_gate.status == trusted_empty`. It also used weak corroboration: "master latest commit is merge of PR #79." A recent merge does not prove there are no other open PRs. ### Required wall Any report that says "no open PRs," "empty queue," or "nothing to review" must include the explicit PR inventory trust-gate result. ### Required report fields * `pr_inventory_trust_gate.status` * `reasons` * `corroborated` * independent corroboration source, if any * exact remote / owner / repo / state filter * active MCP profile used for the inventory ### Acceptance criteria * Empty queue reports without `pr_inventory_trust_gate.status == trusted_empty` are blocked. * "Latest commit was a PR merge" must not count as queue-empty corroboration. * Raw `api_get_all` exhaustion alone is insufficient unless the trust gate accepts it. * If the active MCP session is author-bound, reviewer queue inventory must not be presented as a reviewer decision. ### Related * #194 (false-empty PR queue investigation) — origin incident. * PR #195 — `pr_inventory_trust_gate` helper + unit tests. * #196 — wiring the gate into the live reviewer queue path (code enforcement); this issue is the reporting-wall counterpart: the gate result must be surfaced verbatim in every empty-queue report. * #191 / #183 — final-report hardening lineage.
Owner

Additional observed failure:

A run executed the full test suite and got a failure:

TestAuthorProofs.test_run expected no_local_work but got order_violation.

The run then continued to produce a final PR-inventory report instead of treating the failing validation as a blocker.

Required behavior:

  • Any failed validation command must be reported as a blocker.

  • A final report must not summarize the run as clean if tests failed.

  • If a test failure occurs during a reviewer/inventory task, the report must explicitly separate:

    • PR inventory result;
    • local workspace validation result;
    • whether the failing test affects the current branch/PR.
  • If the active branch is unrelated to the target repo or review task, that must be disclosed.

Additional observed failure: A run executed the full test suite and got a failure: `TestAuthorProofs.test_run` expected `no_local_work` but got `order_violation`. The run then continued to produce a final PR-inventory report instead of treating the failing validation as a blocker. Required behavior: * Any failed validation command must be reported as a blocker. * A final report must not summarize the run as clean if tests failed. * If a test failure occurs during a reviewer/inventory task, the report must explicitly separate: * PR inventory result; * local workspace validation result; * whether the failing test affects the current branch/PR. * If the active branch is unrelated to the target repo or review task, that must be disclosed.
jcwalker3 added the status:in-progress label 2026-07-06 10:15:27 -05:00
Author
Owner

Claimed and implementation started.

  • Branch: feat/issue-198-empty-queue-trust-gate-report
  • Adds assess_empty_queue_report + handoff/report integration
  • Blocks weak merge-commit corroboration and author-bound reviewer-queue claims
  • 154 tests passed in targeted regression run

Opening PR next.

Claimed and implementation started. - Branch: `feat/issue-198-empty-queue-trust-gate-report` - Adds `assess_empty_queue_report` + handoff/report integration - Blocks weak merge-commit corroboration and author-bound reviewer-queue claims - 154 tests passed in targeted regression run Opening PR next.
sysadmin removed the status:in-progress label 2026-07-06 10:18:57 -05:00
Sign in to join this conversation.
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#198