pr-review

pr-review is a command for Claude Code from rjmurillo/ai-agents. It costs 13 tokens per session (4,558 once invoked), scanned A, original, MIT.

A command for responding to review comments on one or more pull requests, which are proposed code changes awaiting approval.

In plain words
What is it for?
Use it to inspect review feedback, make or verify fixes, follow the repository's completion checks, and report the final review status.
Why use it?
It organizes the review-response process and checks that each requested change is handled according to the repository's configured rules.

Command for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: reads .claude/ paths.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the project-toolkit plugin — 95 skills, 26 commands, 33 agents, 4 hooks shipped together

Good fit Use it to inspect review feedback, make or verify fixes, follow the repository's completion checks, and report the final review status.

Compare 6 commands from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add rjmurillo/ai-agents
Claude Code
/plugin install project-toolkit

Made for: Claude Code.

Or install project-toolkit, the plugin that ships this one along with the rest of its 95 skills, 26 commands, 33 agents, 4 hooks.

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/commands/rjmurillo/ai-agents/pr-review.svg)](https://agentmods.dev/commands/rjmurillo/ai-agents/pr-review)
Your own site
<a href="https://agentmods.dev/commands/rjmurillo/ai-agents/pr-review"><img src="https://agentmods.dev/badge/commands/rjmurillo/ai-agents/pr-review.svg" alt="Measured on agentmods" height="20"></a>
Per session 13 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 4,558 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 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.00013 $0.04558
Opus 5 $0.00006 $0.02279
Sonnet 5 $0.00003 $0.00912
Haiku 4.5 $0.00001 $0.00456

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

Security

Grade A, and why

pr-review scanned grade A with 0 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 4d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/pr-review.md · 201 lines

How it starts

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

PR Review Command

ultrathink

Respond to PR review comments for: $ARGUMENTS

Load configuration from pr-review-config.yaml for scripts, completion criteria, error recovery, and failure handling tables. In this repository the live config sits beside the PR review command.

The bundled copy IS runnable from an installed plugin (issue #5112, Option 1). When resolve_pr_review_config lands on a config inside a host-declared plugin root (COPILOT_PLUGIN_ROOT or CLAUDE_PLUGIN_ROOT) whose tree is disjoint from the consumer's git work tree, the completion gate treats that origin as install-trusted: the operator installed it and PR content cannot write there, so the gate skips the byte-identity check it would otherwise run against the trusted ref. This reverses an earlier stance that called the bundled copy a reference artifact; under that stance an installed /pr-review could not dispatch at all, because path containment refused the config before any check ran.

Disjoint, not merely "outside." Neither tree may be at or under the other, and the difference is not pedantic. A root of $HOME with the repository at $HOME/repo is "outside" the work tree in the loose sense (it is not a subdirectory of it) while containing every file the checked-out PR wrote. That reading was in an earlier draft of this paragraph, and the matching one-way test in the gate admitted exactly that root, so a PR-authored config became install-trusted and skipped verification. Both directions are checked now. The boundary is the real work tree from git rev-parse --show-toplevel, because a directory marker inside the repository can be created by the PR and therefore cannot anchor trust. If the work tree cannot be established, no root install-trusts anything and the gate exits 3.

Runtime prerequisite. The gate parses YAML, and the plugin declares no dependencies, so a clean consumer environment may lack PyYAML. Not new (the gate has always parsed YAML), but reachable now that an installed /pr-review can dispatch. The failure is clean, never a criterion failure: exit 2, PyYAML is required to parse the completion-gate config, and the path of the interpreter that failed. Install into THAT interpreter. The invocation below uses uv run python, so the environment is the consumer project's and uv run --with pyyaml python ... is the form that works; a bare pip install pyyaml can modify an environment the next run never consults, leaving the failure unchanged.

Three limits, because the widening is narrow. The $repo_root/.claude fallback in the list below gets NO such treatment even if a plugin-root variable points at it: that path is written by the checked-out PR and keeps the full trust check. Only the config ORIGIN widens; the commands the config names are still verified against the trusted ref, so an install-trusted config cannot execute a PR-rewritten verifier script. And --trusted-ref is validated on this path like any other, including the requirement that it resolve to a remote-tracking ref: HEAD and local branches can be moved by the checked-out PR, so they cannot anchor trust and are refused.

Read the full file on GitHub · 201 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. 4d ago Changed · +1 lines f6a2bb7aad05
  2. 8d ago First seen · 200 lines · 13 tokens per session scan A bb039207c86a

Subscribe to this mod's changes

pr-review is a command published in the GitHub repository rjmurillo/ai-agents (45 stars, last pushed yesterday), licensed MIT. It adds 13 tokens to every session and 4,558 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.