Skip to content

bot reviewer: emit APPROVE when no blocking findings remain — comment verdicts wedge PRs behind stale request-changes #3048

Description

@bpamiri

Symptom (hit twice on 2026-06-11, PRs #3043 and #3044)

The single Reviewer posts request changes, the author addresses everything, the Reviewer re-reviews the new head and posts a comment-state review explicitly confirming all blocking findings are resolved — but GitHub keeps the PR merge-blocked: a reviewer's CHANGES_REQUESTED stays active until the same reviewer submits an APPROVE or the review is dismissed. Comment-state reviews do not supersede it. Result: every request-changes round permanently wedges the PR pending a manual dismissal by a maintainer, even when the bot's own latest review says "resolved, non-blocking".

Fix

In .claude/commands/review-pr.md: when the verdict is "no correctness/security/cross-engine findings; nits only or nothing" AND a prior wheels-bot CHANGES_REQUESTED exists on an earlier SHA of the same PR, submit the review with event=APPROVE (nits go in the body) instead of COMMENT. Guard: never APPROVE when any blocking finding remains; the existing one-substantive-review-per-SHA contract and post-job marker guard are unaffected (an approval is still a review on the SHA).

Acceptance

  • Sequence request-changes → fix push → re-review with zero blocking findings ends with the PR mergeable without human review-state surgery.
  • A re-review that still has blocking findings continues to use request-changes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions