ums: the blocked-request test false-positives on auto-requesting repos - #1084
Conversation
pr-on-claim tells you to treat a vanished pending review request plus no review as a blocked reviewer. On a repo whose ruleset carries copilot_code_review with review_on_push: true -- the case the very next section describes -- the request disappears by design, because the auto-management consumes it. So the two paragraphs contradict each other there, and the blocked reading sends you to self-review while a working reviewer is queued. Adds the ruleset check that settles it, and a Do/Don't pair.
|
Claude finished review — View run Code Review — #1084Scope: Single-file, 28-line addition to What I checked
Non-blocking observations (not filed as findings — below the "high signal" bar)
Neither rises to a blocking issue under this review's high-signal bar (no syntax errors, no wrong logic, no unambiguous CLAUDE.md violation, nothing fabricated). No VerdictReady for merge. |
ARD round 1Verdict was Ready for merge with two items filed as "non-blocking observations (not filed as findings) — below the high signal bar." Both Addressed in
Observation 2 is the one that mattered, and the reviewer was right in a way worth spelling out. That is a cause claim, which The fix keeps the observation (empty read, two repos) and the hedge (mechanism unestablished), and notes the operational advice does not depend on resolving it: an empty pending-list is uninformative on such a repo whatever the mechanism is. One correction to my own PR body while I am here: it said the ruleset "explains" the empty read. It is consistent with it; it does not establish it. Self-review before pushing: The push carries the re-review. |
|
Heads-up: the fix for this PR's own review findings did not ship in the merge. The ARD summary posted at So the merged text still asserts the mechanism flatly ("because the auto-management consumes it") where |
shared/workflow/pr-on-claim.mdcontains a test and, a few lines later, the condition that makes that test wrong.The test (line 70): if the pending review request disappears and no current-head review appears after a short poll, treat the reviewer request as blocked and fall back.
The condition (the section immediately above it): some repos carry a ruleset rule
copilot_code_reviewwithreview_on_push: true, which auto-requests Copilot on every push.On such a repo the pending request disappears by design — the POST returns success naming the reviewer, and
reviewRequestsreads empty moments later because the auto-management consumed it. That is the exact signature the test calls blocked, so the two paragraphs contradict each other, and the blocked reading is the wrong one there.The cost is not a wasted API call. It routes you to the self-review fallback while a working reviewer is queued, which
fully-clean.mdreserves for when no external reviewer is reachable — so the PR ends up carrying a weaker verdict than it could have.This PR adds the disambiguating check (read the repo's rulesets for a
copilot_code_reviewrule), a note that the next push re-requests automatically, and a Do/Don't pair.Evidence
From
Morrison-Lab/ai-config#1077, 2026-08-03:requested_reviewersPOSTs each returned["Copilot"];reviewRequestsread[]within a minute of each. Both were reported mid-session as a possible blocked or silent reviewer.mainruleset (id17712474) carriescopilot_code_reviewwith{"review_draft_pull_requests": false, "review_on_push": true}, so neither request was needed.Kept deliberately separate: Copilot did also stay silent on #1077 — a 4m11s
copilot-pull-request-reviewercheck concludedsuccesswith zero reviews at that head. That is the distinct third statefully-clean.mdalready documents, and #1079 covered it well enough this morning that I dropped my planned entry there as a duplicate rather than restating it. The point here is narrower: the empty pending-list was never the evidence for it.Scope
Touches one file, disjoint from #1077 (
batch-merge-and-resolve.md,post-merge/SKILL.md,r-quarto.md), so there is no merge-order constraint between them.Verification
check-new-line-breaksclean over added lines (it flagged one mid-line semicolon on the first pass, fixed by a reflow); banned-glyph scan clean.🤖 Generated with Claude Code
https://claude.ai/code/session_01XcGPxpt5ZqyWvajP8Nse3v