Review pull request
A collection of reusable skills for AI-assisted development workflows
npx -y skills add b-mendoza/agent-skills --skill review-pull-requestAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
9.8 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it
Review Pull Request
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.
Operating Posture
Draft-first, evidence-bound, and gate-honest. Every PR gets reviewed regardless of size: large or mixed-purpose changes are partitioned into review dimensions and covered by dedicated chunk reviewers, never refused. Prefer fewer stronger findings over many weak notes. Treat every finding as provisional until finding-adjudicator confirms it and review-verifier returns PASS. Record missing context as residual risk instead of guessing. Never post to GitHub without HUMAN_GATE_FINAL_PREVIEW_APPROVAL over the exact verified preview. Never re-post a comment that duplicates an existing review thread; reply in that thread instead. Do not soften intake, verify-repair, or posting gates for convenience.
Inputs
| 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 intake, 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 tone guidance. REVIEW_FOCUS constrains which review dimensions the context collector proposes; full allows any.
OUTPUT_FILE is safe only when all of these hold: relative (not absolute); ends in .md; contains no .. segment; is not under .git/; and resolves inside the workspace working directory. Otherwise stop with PR_REVIEW: NEEDS_CONTEXT.
Workflow Overview
Intake → Collect context (+ existing review comments, + dimension proposal)
→ Chunk review (one reviewer per dimension, concurrent where supported)
→ Adjudicate (confirm/adjust/drop each finding; dedup vs existing threads)
→ Draft comments (canonical review package)
→ Verify (quality gate; bounded repair)
→ Write local artifact
→ draft-only: done | post-after-confirmation: preview gate → post → update artifact
The full phase guide, routing rules, repair cascades, and terminal contracts live in references/review-workflow.md. Read it once when execution starts.
Subagent Registry
| Subagent | Path | Purpose |
|---|---|---|
pr-context-collector | ./subagents/pr-context-collector.md | Collect compact PR context, existing review comments, and a review-dimension proposal |
chunk-reviewer | ./subagents/chunk-reviewer.md | Review one assigned dimension of the PR for evidence-backed findings |
finding-adjudicator | ./subagents/finding-adjudicator.md | Confirm, adjust, or drop findings with reasons; map duplicates to existing threads |
comment-drafter | ./subagents/comment-drafter.md | Produce the single canonical review package: decision, summary, self-contained comments |
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 and update its posting status |
review-poster | ./subagents/review-poster.md | Post the exact approved review: one atomic review plus thread follow-ups |
Read a subagent file only when dispatching that phase. Each subagent's status vocabulary, output format, and escalation categories live inside its own definition file — there are no separate status-contract files.
Progressive Loading Map
| Need | Load |
|---|---|
| Phase order, routing, repair limits, posting gate, failure envelope, final reply | ./references/review-workflow.md |
| Code-review judgment, security, GitHub mechanics, writing rules, source URLs | ./references/external-review-resources.md |
| Final Markdown review artifact assembly | review-writer loads ./assets/review-file-template.md |
| Phase execution details and status contracts | Only the selected file under ./subagents/ |
Fetch existing PR review comments via gh | ./scripts/collect-pr-review-comments.sh |
Post a summary-only review via gh | ./scripts/post-pr-review.sh |
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.
Runtime Note: Concurrent Chunk Dispatch
Chunk reviewers are independent and may run concurrently when the host runtime supports dispatching multiple subagents at once (for example, Claude Code accepts several dispatches in one message). On runtimes without concurrent dispatch, run the chunk reviewers serially in dimension order. Results are identical either way; only wall-clock time differs. Never let one chunk reviewer dispatch another subagent — all routing stays in the orchestrator.
How This Skill Works
- Normalize inputs. When multiple PR URLs appear, run
HUMAN_GATE_CHOOSE_ONE_PR. On any intake failure, stop withPR_REVIEW: NEEDS_CONTEXT. - Read
./references/review-workflow.md. Route exact status values; do not collapseAUTH,NOT_FOUND,NEEDS_CONTEXT, andERROR. A missing or unparseable status line is retried once, then treated asERROR. - Dispatch
pr-context-collector. OnCONTEXT: PASS, it returns a context summary, an existing-comment digest, and 1–6 proposed review dimensions. - Dispatch one
chunk-reviewerper dimension (concurrently where supported). - Dispatch
finding-adjudicatorwith all chunk results and the existing-comment digest. It confirms, severity-adjusts, or drops each finding with a written reason, merges cross-dimension duplicates, and marks each surviving findingneworfollow-upto an existing thread. - When no findings survive, set the review-decision candidate before verification:
approveonly when residual risks are non-blocking, otherwisecomment. Skipcomment-drafterin that case. - Dispatch
comment-drafterto produce the canonical review package — decision, summary, and self-contained comments with line metadata, sources for external-fact claims, and dedup dispositions. - Dispatch
review-verifieras the quality gate. OnVERIFY: FAIL, repair only the namedFix target, cascade per the workflow file, and stop after two repair cycles withPR_REVIEW: VERIFY_FAIL. - Dispatch
review-writerto writeOUTPUT_FILE. Indraft-onlymode, finish withPR_REVIEW: VERIFIED_DRAFT_SAVED. - In
post-after-confirmationmode, show the exact verified preview and runHUMAN_GATE_FINAL_PREVIEW_APPROVAL. On approval, dispatchreview-poster(one atomic review for new comments; thread replies for follow-ups), then re-dispatchreview-writerin update mode to set the artifact's posting status toposted. On decline, update it tocancelledand finish withPR_REVIEW: VERIFIED_DRAFT_SAVED_POSTING_CANCELLED.
Review Invariants
- Review exactly one PR per run; review every PR regardless of size.
- Prefer fewer, stronger findings over many weak notes.
- Treat every finding as provisional until adjudicated and verified.
- Code-local claims cite
path:lineevidence. Claims that rest on external facts (API behavior, version changes, deprecations, CVEs) cite a verifiable source URL in the comment itself. - Every posted comment is self-contained: readable and actionable without the local artifact, the conversation, or any other generated file.
- Duplicates of existing review threads are never re-posted; they become follow-up replies in the existing thread.
- Use
suggestionblocks only for local, mechanically safe edits. - Record missing context as residual risk instead of guessing.
- Route terminal failures through
PR_REVIEW: AUTH,PR_REVIEW: NOT_FOUND,PR_REVIEW: NEEDS_CONTEXT,PR_REVIEW: REVIEW_ERROR,PR_REVIEW: VERIFY_FAIL,PR_REVIEW: WRITE_ERROR, orPR_REVIEW: POST_ERROR. - Treat
PR_REVIEW: VERIFIED_DRAFT_SAVED,PR_REVIEW: VERIFIED_DRAFT_SAVED_POSTING_CANCELLED, andPR_REVIEW: VERIFIED_REVIEW_POSTEDas success outcomes.
Example
<example> Input: `PR_URL=https://github.com/org/repo/pull/1020`, `POSTING_MODE=draft-only`- Intake passes; read
references/review-workflow.md. pr-context-collector→CONTEXT: PASSwith dimensionssecurity,correctness,testsand an empty existing-comment digest.- Three
chunk-reviewerdispatches (concurrent) → 4 candidate findings. finding-adjudicator→ADJUDICATE: PASS: 2 confirmed (bothnew), 1 severity-adjusted, 1 dropped with reason.comment-drafter→COMMENTS: PASSwith 3 self-contained comments; one cites the official docs URL for a deprecated-parameter claim.review-verifier→VERIFY: PASS.review-writerwritespr-1020-review.md; draft-only success.
Final reply:
Review file: pr-1020-review.md
Findings: 3
New comments: 3
Follow-up replies: 0
Review decision: request changes
Posting: skipped
Notes: none
</example>Gives 0 of the 12 instructions most pr commit review skills give in ~2.2k tokens
Counted across 888 of the 1,342 authors here whose files we hold, read 2026-08-07
- use conventional commits formatin 127 of 888, across 115 files
- keep subject line under 72 charactersin 62 of 888, across 48 files
- delete branches after mergein 51 of 888, across 38 files
- use imperative mood in subject linein 51 of 888, across 42 files
- use imperative mood in commit messagesin 44 of 888
- verify directory is ignored before creating worktreein 43 of 888, across 12 files
- generate a conventional commit messagein 43 of 888
- add unignored worktree directories to gitignorein 42 of 888, across 10 files
- make atomic commitsin 39 of 888, across 27 files
- run tests before committingin 36 of 888, across 25 files
- verify clean test baselinein 35 of 888, across 9 files
- split unrelated changes into separate commitsin 35 of 888, across 30 files
Said here and by no other author read
- handle exactly one pull request per run
- validate output file path safety
- load subagent files only when dispatching
- dispatch one chunk reviewer per dimension
- adjudicate all candidate findings
- verify review package before writing
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.