Review a GitHub pull request from three perspectives — functional fit against its linked issue, code correctness/quality, and architectural boundaries — then post a single GitHub review: one general…

MITAuto-check passedDevelopment

Install Review PR

skills CLI
$ npx skills add javierbrea/eslint-plugin-boundaries --skill review-pr -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install javierbrea/eslint-plugin-boundaries review-pr --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/javierbrea/eslint-plugin-boundaries.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/review-pr .claude/skills/review-pr && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
review-pr
GitHub stars
997
Token cost
~2.9k tokens
SKILL.md length
1,625 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Review a GitHub pull request from three perspectives — functional fit against its linked issue, code correctness/quality, and architectural boundaries — then post a single GitHub review: one general…

  • Works in 12 steps: Resolve the target PR. Accept a full PR… → Sync the local checkout. Compare the… → Discover the related issue, to obtain… → …
  • : asked to review
  • SKILL.md covers When to use this skill, Inputs, Procedure and Output format, plus 2 more sections
  • Calls gh and git

What it does

Review PR is an agent skill from javierbrea/eslint-plugin-boundaries. Review a GitHub pull request from three perspectives — functional fit against its linked issue, code correctness/quality, and architectural boundaries — then post a single GitHub review: one general overall comment plus inline comments for each real finding. Use when: asked to review, check, or give feedback on a pull request, given a PR URL/number, or asked to review the PR for the current branch.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests and Technical documentation. It works with GitHub and ESLint. The repository describes itself as: Enforce architectural boundaries in your JavaScript and TypeScript projects. The licence is MIT.

When your agent uses it

  • : asked to review
  • Give feedback on a pull request
  • Given a PR URL/number
  • Asked to review the PR for the current branch

Example prompts

  • “/review-pr”

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Resolve the target PR. Accept a full PR URL, a bare number, or nothing.
  2. Sync the local checkout. Compare the current branch and its HEAD commit against the PR's head ref and head commit sha.
  3. Discover the related issue, to obtain the functional specification the change is meant to satisfy. Try in order
  4. Gather review context.
  5. Perspective 1 — functional review against the issue (perform this yourself, do not delegate). Using the spec built in step 3
  6. Perspective 2 — delegate to the reviewer subagent for code correctness, quality, and test coverage. Give it: the PR number and title, the…
  7. Perspective 3 — delegate to the architecture-reviewer subagent for boundary/dependency-direction/Nx-graph compliance. Give it the same…
  8. Consolidate the three perspectives.
  9. Show a mandatory preview. Present the full general comment and a numbered list of every inline comment (file:line, severity, explanation…
  10. Post the review, using the GitHub MCP review flow
  11. No findings is a valid, complete outcome. If nothing survives step 8, submit the general comment alone. Do not invent problems to justify…
  12. Report to the user: the review URL, the count of findings by severity that were posted, whether the review ran in GitHub-only mode, and…

What it can do on your machine

Read from SKILL.md and the folder at commit 50f2d31. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Review PR loads about 2.9k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 1,625 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from javierbrea/eslint-plugin-boundaries at commit 50f2d31, republished under its MIT licence (© javierbrea). 1,625 words, ~2,943 tokens.

Download SKILL.mdSave it as .claude/skills/review-pr/SKILL.md (or your agent's skills folder).
name
review-pr
description
Review a GitHub pull request from three perspectives — functional fit against its linked issue, code correctness/quality, and architectural boundaries — then post a single GitHub review: one general overall comment plus inline comments for each real finding. Use when: asked to review, check, or give feedback on a pull request, given a PR URL/number, or asked to review the PR for the current branch.
argument-hint
[pr_url | pr_number] (defaults to the open PR for the current branch)

Review Pull Request

When to use this skill

Use this skill when you need to review a GitHub pull request in this repository — checking whether it fulfils the issue it addresses, whether the code itself is correct and well tested, and whether it respects the repository's architecture — and to publish that review as a single GitHub pull request review with a general comment and per-finding inline comments.

Inputs

Provide (all optional; a sensible default applies):

  • pr_url or pr_number: a full GitHub pull request URL, or a bare number in this repository. If omitted, the skill looks up the open pull request for the current branch.

Procedure

  1. Resolve the target PR. Accept a full PR URL, a bare number, or nothing.

    • A full URL fully identifies owner/repo/number.
    • A bare number is assumed to belong to this repository's origin remote (javierbrea/eslint-plugin-boundaries).
    • With no argument, find the current branch and look up the open pull request for it (prefer a GitHub MCP tool such as pull_request_read/list_pull_requests; fall back to gh pr view --json url,number). If none exists, tell the user and stop.
    • Fetch the PR's metadata, changed files and diff, and existing review comments (prefer pull_request_read).
  2. Sync the local checkout. Compare the current branch and its HEAD commit against the PR's head ref and head commit sha.

    • If they already match, proceed directly.
    • If they differ, state exactly what differs (branch name and/or commit sha) and ask for explicit permission before doing anything: git fetch origin <headRef> then checkout. If the working tree has uncommitted changes, warn about that first and never discard local work without confirmation.
    • If the user declines the checkout, continue in GitHub-only mode: review using the PR's diff and file contents fetched over the GitHub API/MCP instead of the local working tree. Remember this for the final report — local checks such as running tests or lint cannot be performed in this mode.
  3. Discover the related issue, to obtain the functional specification the change is meant to satisfy. Try in order:

    • A closes #<number> / fixes #<number> / resolves #<number> reference (or GitHub's own linked-issues field) in the PR body.
    • A number in the PR's source branch name (for example 477 in fix/477/migration-guide-links).
    • A (#<number>) token in the commits on the branch (this repository's commit convention is <type>(#<number>): <description>).
    • If an issue is found, read it in full — including its comments — with issue_read (or gh issue view <number> --json title,body,comments) to build the functional spec.
    • If no issue is found, proceed in issue-less mode: derive the spec from the PR title and description only.
  4. Gather review context.

    • The diff of the PR against its base branch, and the full list of changed files.
    • The PR's existing review comments and conversation — do not raise a finding that has already been raised by someone else; note where you agree/disagree with an existing unresolved comment instead.
    • The base branch's relevant AGENTS.md file(s) for any package touched by the diff (see this repository's CLAUDE.md layering: read a project's own AGENTS.md before reviewing a change there).
  5. Perspective 1 — functional review against the issue (perform this yourself, do not delegate). Using the spec built in step 3:

    • Does the change actually implement what the issue describes? Note missing cases, deviations, or behaviour the issue calls for that the diff does not deliver.
    • Are there functional problems beyond the issue's literal scope (regressions, edge cases, broken assumptions)?
    • Does the PR description accurately describe what the diff does?
    • Were tests added or updated for the new/changed behaviour?
    • Is there a CHANGELOG.md entry under "unreleased", and was the package version bumped consistently with SemVer, per .github/CONTRIBUTING.md and .agents/rules/changelog-and-versioning.md?
    • When the change is user-visible, was documentation updated accordingly — the package README.md, docs/**, and/or the website content under packages/website/docs/** (per .agents/rules/docs-authoring.md)? Flag it only when the issue or diff implies user-visible behaviour actually changed.
  6. Perspective 2 — delegate to the reviewer subagent for code correctness, quality, and test coverage. Give it: the PR number and title, the base branch and diff range (<base>...<headSha>), the list of changed files, and whether the review is running in GitHub-only mode (so it knows whether it can run tests/lint locally).

  7. Perspective 3 — delegate to the architecture-reviewer subagent for boundary/dependency-direction/Nx-graph compliance. Give it the same context as step 6, plus the functional spec derived in step 3, so it can judge not only compliance but whether the change is architecturally well-placed for what the issue actually requires, and flag a better structural alternative if one exists.

    Run steps 6 and 7 in parallel, in a single message — they are independent.

  8. Consolidate the three perspectives.

    • Merge all findings; drop exact or near duplicates between perspectives.
    • Drop anything already raised in an existing unresolved PR comment (step 4).
    • Drop speculative or low-confidence findings — do not report a "maybe" as a finding.
    • For each surviving finding, record: file path, line (must fall within the diff — see Notes), severity (blocking / non-blocking / nit), a one- or two-sentence explanation, and — when the fix is small and localized — a GitHub suggestion block with the exact replacement code.
    • Draft the general/overall comment: a short assessment of overall code quality, structure, and whether the PR fulfils the issue, plus a summary of how many findings of each severity follow as inline comments. If there are no findings, the general comment says so plainly and is the entire review.
  9. Show a mandatory preview. Present the full general comment and a numbered list of every inline comment (file:line, severity, explanation, suggestion if any). Ask for explicit confirmation before posting anything. Let the user drop, edit, or downgrade individual findings before proceeding. Do not post anything before this confirmation.

  10. Post the review, using the GitHub MCP review flow:

    • pull_request_review_write with method: create to open a pending review, including the general comment as its body.
    • add_comment_to_pending_review once per confirmed inline finding, with the suggestion block included in the comment body when applicable.
    • pull_request_review_write with method: submit_pending and event: COMMENT to submit. The review is always submitted as a comment — never APPROVE, never REQUEST_CHANGES; the human maintainer decides the verdict.
    • Fall back to gh CLI or REST only for operations the MCP tools do not support.
  11. No findings is a valid, complete outcome. If nothing survives step 8, submit the general comment alone. Do not invent problems to justify inline comments.

  12. Report to the user: the review URL, the count of findings by severity that were posted, whether the review ran in GitHub-only mode, and whether an issue was found and used for the functional spec.

Show full SKILL.md (540 more words)Show less
Authorization Failure Handling (Required)
  • Never enter retry loops with shell commands when authorization or authentication failures are detected.
  • Treat errors such as 401, 403, Bad credentials, Requires authentication, Resource not accessible by integration, permission denied, or not authorized as terminal for the current automation attempt.
  • On such failures, stop automation immediately and inform the user that authorization is required.
  • Always include the full computed review — general comment plus every inline comment with its file:line and suggestion — in the response so the user can copy and paste it manually.
  • Do not keep attempting alternative shell-based GitHub flows after an auth failure has been detected.

Output format

Return results with:

  • Summary: the pull request reviewed, the review URL once posted, the number of findings by severity, whether GitHub-only mode was used, and whether a linked issue was found and used for functional context.
  • Details: the general comment text and the full list of inline findings (file, line, severity, explanation, suggestion).
  • On authorization failure: the copyable general comment and every inline comment, and a clear statement that authorization is required.

Include assumptions, risks, and follow-ups when relevant.

Examples

Example A (PR URL, linked issue, clean checkout)

Input

  • Goal: review https://github.com/javierbrea/eslint-plugin-boundaries/pull/478.
  • Context: the local branch is already checked out at the PR's head commit; the PR body contains closes #470.

Expected output

  • Issue #470 read for functional context; reviewer and architecture-reviewer run in parallel; findings consolidated; preview shown and confirmed; a COMMENT review posted with a general comment and, say, two non-blocking inline comments; the review URL reported.
Example B (bare number, branch mismatch, checkout declined)

Input

  • Goal: review PR 481 while on an unrelated local branch with uncommitted changes.
  • Context: the user declines the offered checkout.

Expected output

  • GitHub-only mode: diff and files fetched via the API/MCP instead of the working tree; the final report notes that local tests/lint could not be run; review still posted after preview confirmation.
Example C (current branch, no linked issue, no findings)

Input

  • Goal: review the PR for the current branch; no argument given.
  • Context: no issue reference in the PR body, branch name, or commits; the diff is small and clean.

Expected output

  • Issue-less mode, spec drawn from the PR description only; both subagents report no significant issues; preview shows a general comment only, no inline comments; posted as COMMENT after confirmation.

Notes / Constraints

  • All posted review content MUST ALWAYS be written in English, regardless of the user's language. This is a mandatory requirement.
  • Do not use hard line breaks within paragraphs in the general comment or inline comments. Each paragraph must be a single unbroken line; only blank lines separate paragraphs.
  • Inline comments may only anchor to a line present in the diff; a finding about code the diff does not touch belongs in the general comment instead.
  • The review is always submitted with event: COMMENT. Never submit APPROVE or REQUEST_CHANGES automatically.
  • Always show a preview and obtain explicit confirmation before posting the review.
  • Never check out the PR branch, or discard local changes, without explicit permission.
  • Prefer GitHub MCP tools for all supported operations; fall back to gh CLI or REST only for what MCP cannot do.
  • If no problems are found, do not manufacture any — a general-comment-only review is a complete, valid result.

© javierbrea, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/review-pr of javierbrea/eslint-plugin-boundaries.

Open the folder on GitHubat commit 50f2d31

Compare with similar skills

Review PR next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Review PR compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review PR this skilljavierbrea/eslint-plugin-boundaries997—~2.9kAutomated safety check: PassMIT
Post Draft Reviewagent-substrate/substrate4.6k—~2.8kAutomated safety check: PassApache-2.0
Review Kedro PRkedro-org/kedro11k—~2.8kAutomated safety check: PassCustom licence
Inline PR Commentshyperlane-xyz/hyperlane-explorer102—~1.1kAutomated safety check: PassCustom licence
Clarify Java CommentsDataDog/dd-trace-java736—~2.3kAutomated safety check: NotesApache-2.0
Process PR Reviewsnexu-io/nexu3.3k—~2.5kAutomated safety check: PassMIT

Similar skills

  • Post Draft Review

    agent-substrate/substrate

    Posts pull request review findings as GitHub draft (pending) inline comments for a human to edit and submit, instead of publishing them straight to the PR author.

    4.6k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Review Kedro PR

    kedro-org/kedro

    Review a Kedro PR for checklist compliance, architecture, correctness, and clarity.

    11k GitHub stars~2.8k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Inline PR Comments

    hyperlane-xyz/hyperlane-explorer

    Post a single consolidated PR review with summary and inline comments.

    102 GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Clarify Java Comments

    DataDog/dd-trace-java

    Official

    Clarify or review Java Javadocs, Javadoc tags, and explanatory code comments for legibility, accuracy, and source alignment.

    736 GitHub stars~2.3k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Process PR Reviews

    nexu-io/nexu

    A skill your agent uses when the user asks to process, triage, fetch, view, count, list, or resolve review feedback in a GitHub PR.

    3.3k GitHub stars~2.5k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Guides the UUI pull request process including branch naming, pre-PR checklist, changelog updates, and quality requirements.

    248 GitHub stars~1.7k tokensUpdated 10 days ago
    DevelopmentAuto-check: notes

More from javierbrea/eslint-plugin-boundaries

  • Boundaries Architect

    javierbrea/eslint-plugin-boundaries

    Act as a software architect: analyze a repository's folder structure and cross-file import dependencies, detect its architectural pattern, design element/file boundaries with the user, and configure…

    997 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Unit Testing

    javierbrea/eslint-plugin-boundaries

    Complete or maximize unit test coverage for a specific TypeScript file in this repo.

    997 GitHub stars~618 tokensUpdated today
    Auto-check passed
  • Create PR

    javierbrea/eslint-plugin-boundaries

    Create or update a GitHub pull request for the current branch from the repository's fixed PR template (.github/PULLREQUESTTEMPLATE.md) and the branch changes.

    997 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Repo Architecture

    javierbrea/eslint-plugin-boundaries

    Cross-cutting architecture reference for the eslint-plugin-boundaries monorepo — the dependency graph between packages, the Nx target graph, and the release flow.

    997 GitHub stars~1.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Review PR

What does Review PR do?

Review a GitHub pull request from three perspectives — functional fit against its linked issue, code correctness/quality, and architectural boundaries — then post a single GitHub review: one general…. Review PR is an agent skill from javierbrea/eslint-plugin-boundaries. Review a GitHub pull request from three perspectives — functional fit against its linked issue, code correctness/quality, and architectural boundaries — then post a single GitHub review: one general overall comment plus inline comments for each real finding.

When should I use Review PR?

Review PR fits situations like: : asked to review; give feedback on a pull request; given a PR URL/number; asked to review the PR for the current branch.

How do I install Review PR in Claude Code?

Run `npx skills add javierbrea/eslint-plugin-boundaries --skill review-pr -a claude-code`. Or copy the skill folder (.agents/skills/review-pr in javierbrea/eslint-plugin-boundaries) into .claude/skills/review-pr in your project. Claude Code loads it when a task matches its description.

How do I install Review PR in Codex?

Run `npx skills add javierbrea/eslint-plugin-boundaries --skill review-pr -a codex`. Or copy the skill folder (.agents/skills/review-pr in javierbrea/eslint-plugin-boundaries) into .agents/skills/review-pr in your project. Codex loads it when a task matches its description.

Can I use Review PR in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add javierbrea/eslint-plugin-boundaries --skill review-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-pr, .gemini/skills/review-pr, .github/skills/review-pr and .opencode/skills/review-pr in your project.

What does Review PR need to run?

Going by SKILL.md and its folder, Review PR needs the command-line tools its instructions call (gh and git).

Does Review PR access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Review PR safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Review PR use?

Review PR is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Review PR use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Review PR?

Skills that share tags, products or a category with Review PR: Post Draft Review (agent-substrate/substrate, 4.6k stars), Review Kedro PR (kedro-org/kedro, 11k stars), Inline PR Comments (hyperlane-xyz/hyperlane-explorer, 102 stars) and Clarify Java Comments (DataDog/dd-trace-java, 736 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review PR?

javierbrea (a GitHub user) maintains it in javierbrea/eslint-plugin-boundaries, which has 997 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 9, 2026.

Source: javierbrea/eslint-plugin-boundaries on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.