pr-review

pr-review is a skill for Claude Code from faizkhairi/claude-code-blueprint. It costs 112 tokens per session (2,150 once invoked), scanned B, original, MIT.

A service for reviewing an open GitHub or Gitea pull request, which is a proposed set of code changes awaiting review.

In plain words
What is it for?
Use it to approve a pull request, request changes, or leave review comments after checking its code and project rules.
Why use it?
It combines fetching the changes, analysing them, and sending a formal review back to the code-hosting service.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: mentions CLAUDE.md.

Good fit Use it to approve a pull request, request changes, or leave review comments after checking its code and project rules.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/faizkhairi/claude-code-blueprint/pr-review
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add faizkhairi/claude-code-blueprint --skill pr-review
Clone the repo
git clone --depth 1 https://github.com/faizkhairi/claude-code-blueprint

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pr-review

README.md
[![agentmods](https://agentmods.dev/badge/skills/faizkhairi/claude-code-blueprint/pr-review/github.svg)](https://agentmods.dev/skills/faizkhairi/claude-code-blueprint/pr-review)
Your own site
<a href="https://agentmods.dev/skills/faizkhairi/claude-code-blueprint/pr-review"><img src="https://agentmods.dev/badge/skills/faizkhairi/claude-code-blueprint/pr-review/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pr-review

Your own site · 80×15
<a href="https://agentmods.dev/skills/faizkhairi/claude-code-blueprint/pr-review"><img src="https://agentmods.dev/badge/skills/faizkhairi/claude-code-blueprint/pr-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 112 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,150 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00112 $0.02150
Opus 5 $0.00056 $0.01075
Sonnet 5 $0.00022 $0.00430
Haiku 4.5 $0.00011 $0.00215

Measured 10d ago against content hash 31486dca4636, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade B, and why

pr-review scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Sends data to an external URLmediumData exfiltration

A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.

- **Gitea**: `curl -u "${AUTH}" -X POST -H "Content-Type: application/json" -d @payload.json "${BASE_URL}/api/v1/repos/{owner}/{repo}/pulls/{n}/reviews"` with the same payload shape, except inline comments use `new_posit

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- Anything else (self-hosted Gitea/Forgejo/Gogs, e.g. a company git server) -> **Gitea-style REST API** via `curl`.
skills/pr-review/SKILL.md · 115 lines

How it starts

The opening of the file, as written. The whole thing — 115 lines — stays where its author put it; the contents beside it link to each section on GitHub.

This posts a REAL review to GitHub or Gitea (comments, and an approve/request-changes/comment verdict). It fetches a pull request's diff, runs the same multi-agent analysis as review-full, applies any project-specific review rules, then submits the review via the platform's API. For reviewing local diffs that aren't an open PR, use review-full or review-diff instead.

Step 0: Resolve the PR and detect the platform

  • Determine the target PR from $ARGUMENTS (a number or URL). If empty, detect the PR for the current branch.
  • Detect the git host from git remote get-url origin:
    • github.com -> GitHub. Use the gh CLI (assume it is already authenticated).
    • Anything else (self-hosted Gitea/Forgejo/Gogs, e.g. a company git server) -> Gitea-style REST API via curl.
  • For Gitea, locate this project's own credentials rather than asking every time:
    • Check whether the project's CLAUDE.md @imports a credentials file (commonly rules/credentials.md; this mirrors a common per-project credentials-import convention).
    • If none is found, ask the user for the base URL and a username:token, and offer to save them into a new, gitignored file (e.g. rules/credentials.md). Never write real secrets into a tracked file, an .example template, or any file already committed to git.

Step 1: Load PR context

  • Fetch PR metadata (title, author, base/head branch, mergeable state, description) and the unified diff:
    • GitHub: gh pr view <N> --json title,author,baseRefName,headRefName,mergeable,body, gh pr diff <N>
    • Gitea: GET /repos/{owner}/{repo}/pulls/{n} and GET /repos/{owner}/{repo}/pulls/{n}.diff
  • Count diff --git headers in the diff and record the file count (checked again in Step 5).
  • Determine reviewer identity. Compare the authenticated account against the PR author:
    • GitHub: gh api user --jq .login
    • Gitea: the username from the credentials file
    • Record whether this is a self-review (author == reviewer). Both platforms reject APPROVE/REQUEST_CHANGES on your own PR, so a self-review always posts as COMMENT.
  • Check for a prior review from this reviewer account (gh api repos/{o}/{r}/pulls/{n}/reviews, or the Gitea equivalent):
    • No prior review -> first-pass review.
    • Prior review exists -> list commits and check for any commit after that review's submitted_at.
      • New commits -> re-review mode: only findings still present in the new diff are valid; call out previously-flagged items now fixed.
      • No new commits -> stop and report "No new commits since my last review: nothing to re-review." Do not re-run the full checklist.

Read the full file on GitHub · 115 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 115 lines · 112 tokens per session scan B 31486dca4636

Subscribe to this mod's changes

pr-review is a skill published in the GitHub repository faizkhairi/claude-code-blueprint (70 stars, last pushed 29d ago), licensed MIT. It adds 112 tokens to every session and 2,150 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.