pr-review

pr-review is a skill for Claude Code from ArcBlock/agent-skills. It costs 149 tokens per session (16,181 once invoked), scanned A, original, MIT.

An evidence-based review process for one open GitHub pull request, which is a proposed code change awaiting review. It compares the request with the actual code and tests, runs verification, checks related pull requests, and reports whether it is ready to merge.

In plain words
What is it for?
Reviewing one pull request, validating its linked issue, running pre-merge checks, finding duplicate or conflicting work, and posting a documented verdict.
Why use it?
It helps catch unsupported claims, failing checks, root causes, and conflicts before a change is merged.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions Claude Code.

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is 一条 `CHANGES_REQUESTED` 是比普通评论更强的信号,merge 前另有独立硬闸拦([pr-sweep Step 5](../pr-sweep/SKILL.md))。.

Part of the agentloop plugin — 20 skills shipped together

Good fit Reviewing one pull request, validating its linked issue, running pre-merge checks, finding duplicate or conflicting work, and posting a documented verdict.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/ArcBlock/agent-skills
agentmods
npx agentmods add skills/arcblock/agent-skills/pr-review

Made for: Claude Code.

Or install agentloop, the plugin that ships this one along with the rest of its 20 skills.

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/arcblock/agent-skills/pr-review.svg)](https://agentmods.dev/skills/arcblock/agent-skills/pr-review)
Your own site
<a href="https://agentmods.dev/skills/arcblock/agent-skills/pr-review"><img src="https://agentmods.dev/badge/skills/arcblock/agent-skills/pr-review.svg" alt="Measured on agentmods" height="20"></a>
Per session 149 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 16,181 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Prompt Injection · line 275
    Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
    Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
  • high Prompt Injection · line 444
    Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
    Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
How audits are shown
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.00149 $0.16181
Opus 5 $0.00075 $0.08091
Sonnet 5 $0.00030 $0.03236
Haiku 4.5 $0.00015 $0.01618

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

Security

Grade A, and why

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

Makes network callslowCapability

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

URL 无凭据 `curl -s -o /dev/null -w '%{http_code}'` 必须 200(camo 匿名视角)——
plugins/agentloop/skills/pr-review/SKILL.md · 494 lines

How it starts

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

PR Review — AI Agent Review for one pull request

Repo profile — read .claude/repo-profile.md first. This skill is repo-agnostic; arc is the reference implementation. Use the profile's values wherever this doc shows an arc default: repo_slug (the gh -R target), gate_mode (arc = scripts: no CI on PRs, so gh pr checks is empty and the verification scripts are the only gate; ci/both repos ALSO fold in gh pr checks), verification_entry / pre_merge_entry. Arc's own provenance for the lessons below is not inlined here (fuller case narratives, where they exist, are under .claude/case-law/).

一个 PR 处理到位:读 PR diff + 关联 issue + 已有 review/comments → 对照已落地代码/测试逐条核验跑 verification 门控(pre-merge)并判读根因(PR 上已无 CI) → 检测与兄弟 PR 的冲突/重复 → 产出带证据的合并就绪判定,落回 PR(comment),而不是埋在某次对话里。

这是 issue-review 的 PR 版:同一台引擎(读 → 对照现实 → 带证据落 comment),对象换成 PR,多了三件 issue-review 没有的事——跑 verification 门控并判读、跨 PR 冲突检测、合并就绪判定

输出语言与写作规范 = profile comment_language verdict comment、「需人确认块」等一切面向团队的产出一律用该语言写叙述(团队阅读语言);代码标识符、路径、命令、path:linegh 输出、测试输出保持原样(不翻译)。不堆砌:内容太多本身就是阅读负担——先一句话结论,再最少但足够的证据(文档 / 代码 path:line / 真实测试输出,UI 相关必附截图——ui-verify 产出的截图/录屏即此类证据);长日志折叠进 <details>,verdict 只引用结论不重复全量日志。

Usage

/agentloop:pr-review <pr-number-or-url> [--post]
  • <pr-number-or-url> — 要 review 的 PR。gh CLI 可用时直接用;无 gh(cloud routine)时用 mcp__github__* 工具替代(ToolSearch 加载)。
  • --post — 把 verdict comment 发到 PR 上(默认 read-only:只产出给用户看,不发 comment、不动 label、永不 merge)

单 PR 用本 skill;批量 + 去重关闭 + 受闸自动合并pr-sweep

When to Use

  • 想在 merge 前对一个 PR 拿一个独立的、对照真实代码的判断(不只看门控红绿)。
  • 怀疑某 PR 和别的 PR 重复/冲突/矛盾,要定责到"留哪个、关哪个"。
  • 在搭"定时自动 review+merge PR 的机器",需要一个可复用、产物可追溯的 per-PR 动作。

不适用:纯本地 diff 的 review(用 /code-review);issue 里的设计评审(用 /agentloop:issue-review)。

判定词表(受控,5 类)

recommendation 含义 下一步
MERGE 声明已核实、verification 无真实阻断、无未解冲突、每条 actionable review thread 都已有原线程结论、无 OPEN 的 bot P1/High 可合(由 pr-sweep / epic-conductor 按风险闸自动合,或人合)
COMMENT 原则可合但有值得提的关注点(部分修复、缺测试、小问题),是重复对中的保留方(注明要关掉的 peer) 发 comment,通常仍可合
SUPERSEDE 是重复/矛盾对中冗余/较差的一方 发 comment 说明 + 指向保留方 → 关闭本 PR(关闭是 pr-sweep 的动作)
BLOCK 有真实缺陷 / verification 失败是本 PR 的错 / 未解冲突 发 comment 指出,不可合
CLOSE 陈旧/已被合并的工作取代/不再需要 发 comment 说明 → 关闭

Read the full file on GitHub · 494 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. 7d ago First seen · 494 lines · 149 tokens per session scan A a264f7d1b6d9

Subscribe to this mod's changes

pr-review is a skill published in the GitHub repository ArcBlock/agent-skills (5 stars, last pushed 6d ago), licensed MIT. It adds 149 tokens to every session and 16,181 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.