agentleFS
javierbreajavierbrea/eslint-plugin-boundaries/.agents/skills/review-pr/SKILL.md

review-pr

Skill1k starsChanged 11 days agoMITView on GitHub

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.

We split this skill into the rules it gives an agent

16 rules. 0 are common, 9 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 178 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If they already match, proceed directly.

    line 28
  2. Very specific:

    If they differ, state exactly what differs (branch name and/or commit sha) and ask for explicit permission before doing anything: git fetch …

    line 29
  3. Very specific:

    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 …

    line 36
  4. Distinctive:

    If no issue is found, proceed in issue-less mode: derive the spec from the PR title and description only.

    line 37
  5. Very specific:

    When the change is user-visible, was documentation updated accordingly — the package README.md, docs/, and/or the website content under …

    line 50
  6. Distinctive:

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

    line 56
  7. Distinctive:

    No findings is a valid, complete outcome: If nothing survives step 8, submit the general comment alone.

    line 73
  8. Distinctive:

    Never enter retry loops with shell commands when authorization or authentication failures are detected.

    line 79
  9. Very specific:

    Treat errors such as 401, 403, Bad credentials, Requires authentication, Resource not accessible by integration, permission denied, or not …

    line 80
  10. Very specific:

    Always include the full computed review — general comment plus every inline comment with its file:line and suggestion — in the response so …

    line 82
  11. Distinctive:

    Do not keep attempting alternative shell-based GitHub flows after an auth failure has been detected.

    line 83
  12. Very specific:

    Write every text with the writing-style skill.

    line 126
  13. Distinctive:

    Always show a preview and obtain explicit confirmation before posting the review.

    line 129
  14. Distinctive:

    Never check out the PR branch, or discard local changes, without explicit permission.

    line 130
  15. Very specific:

    Prefer GitHub MCP tools for all supported operations.

    line 131
  16. Distinctive:

    If no problems are found, do not manufacture any — a general-comment-only review is a complete, valid result.

    line 132

“Common” is measured: kept by at least 6 in 10 of the 178 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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?
    • Does the PR have the CHANGELOG.md entry required by .agents/rules/changelog-and-versioning.md, and, if it bumps a version, does the bump follow it?
    • 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.

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

  • Write every text with the writing-style skill.
  • 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.

Download now (ZIP)

  • Other versions185 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 185

    1. denoland/deno★ 109ksame name
    2. ToolJet/ToolJet★ 41ksame name
    3. remix-run/remix★ 33ksame name
    4. tirth8205/code-review-graph★ 32ksame name
    5. alpinejs/alpine★ 32ksame name
    6. nrwl/nx★ 29ksame name
    7. jlowin/fastmcp★ 28ksame name
    8. PrefectHQ/fastmcp★ 28ksame name
    9. livewire/livewire★ 24ksame name
    10. microsoft/fluentui★ 20ksame name

    175 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use write-product-spec, diagnose-ci-failures and 10 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • zerx-labSkill

      write-product-spec

      Write a PRODUCT.md spec for a significant user-facing feature in Zap, focused on detailed behavior and validation. Use when the user asks for a product spec, desired behavior doc, or PRD, wants to define feature behavior before implementation, or when the feature is substantial or behaviorally ambiguous enough that a written spec would improve implementation or review.

      Also in 4 projects that use this

    • zerx-labSkill

      diagnose-ci-failures

      Diagnose CI failures for a PR using the GitHub CLI, extract error logs, and generate a plan to fix them. Use when the user asks to check CI status, pull CI issues, triage test failures, or investigate PR build failures.

      Also in 3 projects that use this

    • n24q02mSkill

      review-delta

      Review only changes since last commit using impact analysis. Token-efficient delta review with automatic blast-radius detection.

      Also in 3 projects that use this

    • n24q02mSkill

      build-graph

      Build or update the code review knowledge graph. Run this first to initialize, or let hooks keep it updated automatically.

      Also in 3 projects that use this

    • charlesmatteSkill

      write-tech-spec

      Generate a technical specification document from an existing PRD through relentless technical interview and codebase exploration. Use when user wants to write a tech spec, technical specification, technical design document, TDD (technical design doc), or go deeper on the technical details of a PRD.

      Also in 4 projects that use this

    • dekozaSkill

      fix-pr

      Repair an existing pull request's review findings and target-branch conflicts, verify the result, and update the same open PR.

      Also in 5 projects that use this

    • +2 more from zerx-lab
    • +1 more from n24q02m
  • In this repository12 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.