skills/review-pull-request/SKILL.md
Review one pull request through a standalone, progressively disclosed workflow. Use when the user asks to review a PR, audit a pull request, prepare GitHub review comments, draft request-changes feedback, write a PR review file, or optionally post approved review comments. This skill handles exactly one PR; ask the user to choose one PR when multiple PR URLs are supplied.
npx skillsauth add b-mendoza/agent-skills review-pull-requestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a single-PR review orchestrator. You think, decide, and dispatch: keep only workflow state, concise subagent summaries, user choices, and final synthesis in your context. Phase subagents collect raw diffs, source files, command output, CI logs, API payloads, and fetched website contents, then return structured summaries.
| Input | Required | Example |
| ----- | -------- | ------- |
| PR_URL | Yes | https://github.com/org/repo/pull/1020 |
| OUTPUT_FILE | No | pr-1020-review.md |
| POSTING_MODE | No | draft-only (default) or post-after-confirmation |
| LANGUAGE_STYLE | No | natural English for a non-native speaker (default) |
| REVIEW_FOCUS | No | full (default), security, correctness, or tests |
At GATE_INPUT_NORMALIZATION, accept exactly one parseable GitHub pull request
URL, validate controlled values for POSTING_MODE and REVIEW_FOCUS, and keep
OUTPUT_FILE as a safe workspace-relative Markdown path. If OUTPUT_FILE is
missing, derive pr-<number>-review.md from PR_URL. LANGUAGE_STYLE remains
free-form guidance for tone.
| Need | Load |
| ---- | ---- |
| Phase order, repair limits, posting gate, failure envelope, final reply | ./references/review-workflow-playbook.md |
| Code-review judgment, security, GitHub mechanics, writing rules, source URLs | ./references/external-review-resources.md |
| Status contracts and phase output shapes | ./references/status-*.md |
| Final Markdown review artifact assembly | review-writer loads ./references/review-file-template.md |
| Phase execution details | Only the selected file under ./subagents/ |
Fetch external websites only from external-review-resources.md or from current
official dependency documentation when a finding depends on library, framework,
SDK, API, CLI, or cloud-service behavior. Cite the URL used; keep page contents
inside the subagent that fetched them.
| Subagent | Path | Purpose |
| -------- | ---- | ------- |
| pr-context-collector | ./subagents/pr-context-collector.md | Collect compact PR context without returning raw patches |
| finding-reviewer | ./subagents/finding-reviewer.md | Surface evidence-backed defects and residual risks |
| comment-drafter | ./subagents/comment-drafter.md | Convert accepted findings into GitHub-ready comment drafts |
| review-verifier | ./subagents/review-verifier.md | Validate the review package before writing or posting |
| review-writer | ./subagents/review-writer.md | Write the local Markdown review artifact |
| review-poster | ./subagents/review-poster.md | Post only the exact, approved, verified review |
Read a subagent file only when dispatching that phase.
GATE_INPUT_NORMALIZATION inline before dispatching subagents. If
multiple PR URLs are present, use HUMAN_GATE_CHOOSE_ONE_PR; if no single
parseable PR URL, invalid controlled value, or unsafe output path remains,
stop with PR_REVIEW: NEEDS_CONTEXT../references/review-workflow-playbook.md and relevant
./references/status-*.md contracts when beginning execution.AUTH, NOT_FOUND, NEEDS_CONTEXT, and ERROR.HUMAN_GATE_LARGE_REVIEW or
HUMAN_GATE_NARROW_LARGE_REVIEW when pr-context-collector returns
CONTEXT: LARGE_REVIEW_CONFIRMATION_REQUIRED.FINDINGS: NO_FINDINGS, set REVIEW_DECISION_CANDIDATE before
verification and pass it to review-verifier: approve only when the
findings status reports no blocking residual risks; otherwise comment so
the final review records the residual risk without approving.review-verifier as the quality gate. On VERIFY: FAIL, follow
GATE_VERIFY_REPAIR: repair only the named Fix target, cascade through
downstream dependent phases before re-verification, and stop after the
playbook's retry limit. Route VERIFY: NEEDS_CONTEXT to
PR_REVIEW: NEEDS_CONTEXT and VERIFY: ERROR to PR_REVIEW: REVIEW_ERROR.draft-only. Use GATE_POSTING_MODE; when
POSTING_MODE=post-after-confirmation, build the posting preflight packet
and use HUMAN_GATE_FINAL_PREVIEW_APPROVAL. Dispatch review-poster only
when the exact verified preview is approved and the packet contains
REVIEW_DECISION, verified comments and metadata, and
PREVIEW_APPROVED=true.review-verifier returns PASS.suggestion blocks only for local, mechanically safe edits.PR_REVIEW: AUTH, PR_REVIEW: NOT_FOUND,
PR_REVIEW: LARGE_REVIEW, PR_REVIEW: NEEDS_CONTEXT,
PR_REVIEW: REVIEW_ERROR, PR_REVIEW: VERIFY_FAIL,
PR_REVIEW: WRITE_ERROR, or PR_REVIEW: POST_ERROR.PR_REVIEW: VERIFIED_DRAFT_SAVED,
PR_REVIEW: VERIFIED_DRAFT_SAVED_POSTING_CANCELLED, and
PR_REVIEW: VERIFIED_REVIEW_POSTED as success outcomes../references/review-workflow-playbook.md and the relevant
./references/status-*.md contracts for phase routing.pr-context-collector; it returns CONTEXT: PASS with shortstat,
CI summary, risk areas, and no raw patch.finding-reviewer; it returns FINDINGS: PASS with two grounded
findings and the URLs it fetched, if any.comment-drafter; it returns COMMENTS: PASS with line metadata.review-verifier; it returns VERIFY: PASS.review-writer; it writes pr-1020-review.md.Final reply:
Review file: pr-1020-review.md
Findings: 2
Review decision: request changes
Posting: skipped
Notes: none
</example>development
Runs a structured nine-seat council deliberation on an idea, project, business, startup, goal, or objective, then returns a reasoned recommendation with the mental models exposed so the user can apply them solo next time. Use when a user asks to stress-test a decision, get adversarial review, classify a decision as reversible or irreversible, or wants more than one independent perspective on a course of action.
testing
Adversarially improves existing agent skill packages by stress-testing workflow design, flow-diagram coherence, personality fit, subagent necessity, and package quality before applying approved changes.
development
Coordinates subagent-driven architecture reviews and restructuring plans. Use for repo reorganization, module boundaries, DDD, Screaming Architecture, complexity reduction, or reference fit checks.
testing
Adversarially improves existing agent skill packages by stress-testing workflow design, flow-diagram coherence, personality fit, subagent necessity, and package quality before applying approved changes.