request-pr-review
After AI review produces a clean verdict or upon a review deadlock, request a human reviewer.
When to run
- After completing code pushes for the round AND after the AI review produces a clean/approved verdict (or upon a review deadlock), per
copilot-review-before-human.md. - When the user asks you to “request review” on an existing PR.
Command
EDIT_PR (abstract operation token; resolve to your model’s tool via tool-mappings.md):
gh api -X POST repos/<owner>/<repo>/pulls/<num>/requested_reviewers \
-f "reviewers[]=<reviewer>"You can get <owner>/<repo> from gh repo view --json nameWithOwner -q .nameWithOwner and <num> from the PR URL returned by gh pr create. <reviewer> is the repository’s configured human reviewer or CODEOWNERS entry for the repository.
Edge cases
PR author is the requested reviewer. GitHub returns HTTP 422 with
"Review cannot be requested from pull request author". Surface this explicitly to the user — don’t silently swallow the error.Prefer this REST POST over
gh pr edit --add-reviewer. The CLI form exits 0 with no error when the reviewer is the PR author and attaches nobody, so the 422 above is invisible on that path (measured on Morrison-Lab/wai#93, 2026-08-22). When the target<reviewer>is the author (<reviewer>matches.author.login), skip the request entirely — human review cannot be requested from the author. Report that the PR awaits that person’s own review.Other reviewers already requested. The endpoint adds to the existing list rather than replacing it, so this is safe to run alongside pre-configured CODEOWNERS or workflow-added reviewers.
Scope
Applies by default to all GitHub repos. If the user tells you a specific repo shouldn’t auto-request human review, honor that override per-repo via a project-level memory.
Exception: Lacaedemon/sparta
Never request a human reviewer on a PR in sparta.
The exception is repo-scoped, not rule-wide. Requesting a human reviewer on other repos applies after AI review passes or on deadlock. Within sparta the exception covers every path that would reach a request: the post-AI-review request above, and the deadlock escalation below.
A skill inherits this exception only where it actually routes through here. st does, citing this skill by name and nothing else. ard, ardi, and merge-it carried the command guard inline.
The general rule is that a raw command inherits nothing; only a reference to this skill does. So when adding a repo exception here, grep for the raw command as well as for this skill’s name:
git grep -nE 'add-reviewer|requested_reviewers' -- skills/Both literal forms are matched: the gh pr edit <N> --add-reviewer <reviewer> command, and the workflow gh api ... requested_reviewers -f "reviewers[]=<reviewer>" form. Then judge each hit rather than editing all of them.
A review deadlock on a sparta PR escalates to the user in chat, not to a review request. Escalation is re-routed, not retired: its purpose was always that a human decides, and that is unchanged. Post a boxed BLOCKER (per CLAUDE.md’s chat-output-tagging convention) naming the PR, the single disputed item, and both sides of the exchange, then stop iterating that item and wait for the user’s call.
- Do: open a sparta PR with no human reviewer requested, and request human review on other repos after AI review is clean or on deadlock.
- Do: take a sparta deadlock to the user in chat as a boxed
BLOCKER. - Don’t: run
gh pr edit --add-reviewer, or POST torequested_reviewers, against a sparta PR. - Don’t: read this as ending escalation on sparta. An unresolved deadlock still needs a human, and chat is now where it goes.