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.
/plugin marketplace add Ryan-M-Frank/volley/plugin install volleyWrote 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.
[](https://agentmods.dev/skills/ryan-m-frank/volley/review-pr)<a href="https://agentmods.dev/skills/ryan-m-frank/volley/review-pr"><img src="https://agentmods.dev/badge/skills/ryan-m-frank/volley/review-pr/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.
<a href="https://agentmods.dev/skills/ryan-m-frank/volley/review-pr"><img src="https://agentmods.dev/badge/skills/ryan-m-frank/volley/review-pr.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00061 | $0.00966 |
| Opus 5 | $0.00030 | $0.00483 |
| Sonnet 5 | $0.00012 | $0.00193 |
| Haiku 4.5 | $0.00006 | $0.00097 |
Grade A, and why
review-pr 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 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.
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.
How it starts
The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/volley:review-pr
Codex reviews a PR. You decide whether to post the review as a comment.
Steps for Claude
-
Validate input. PR number is required. If missing, tell user "Pass a PR number, e.g. /volley:review-pr 123" and stop.
-
Verify .volley/ is initialized and the lock allows Claude to act.
[ -d .volley ] || { echo "ERROR: .volley/ not found. Run /volley:setup first." >&2; exit 1; } [ -f .volley/STATE ] || { echo "ERROR: .volley/STATE not found. Run /volley:setup first." >&2; exit 1; } . "${CLAUDE_PLUGIN_ROOT}/scripts/lib.sh" volley_state_assert_active .volley/STATE claude || exit 1 -
Fetch PR metadata and diff via gh. Write into
.volley/(transient, gitignored, no/tmp/collision risk):PR_NUM=<n> gh pr view "$PR_NUM" --json title,body,baseRefName,headRefName > ".volley/pr-${PR_NUM}-meta.json" gh pr diff "$PR_NUM" > ".volley/pr-${PR_NUM}-diff.patch"If
ghis not authenticated or PR doesn't exist, surface the error and stop. -
Build the review prompt for Codex.
You are reviewing a GitHub pull request. Be specific. Cite file paths and line numbers from the diff. PR TITLE: <title> PR DESCRIPTION: <body> DIFF: <full diff content> Provide your review in this format: ## Verdict APPROVE | REQUEST_CHANGES | COMMENT ## Summary (2-3 sentences on what this PR does) ## Issues - (file:line — issue description) ## Nits - (file:line — minor suggestions) ## Suggestions for follow-up - (out-of-scope improvements not blocking this PR) Keep it under 800 words. -
Invoke Codex via MCP. Same tool and rules as
/volley:review-planstep 6: resolvecodex.review.model/reasoningEffortfrom.volley/config.json(+local.jsonoverrides); passsandbox: "read-only",approval-policy: "never",cwd: <canonical git root>, andmodel/config.model_reasoning_effortwhen notinherit. Persist the returnedthreadIdto.volley/local.jsonunderroles.prReview; usemcp__codex__codex-replyonly for follow-ups within this exchange. Across a restart, rehydrate from files rather than reusing the id over MCP. Surface an unavailable-model/bad-effort error verbatim - never silently substitute. Handle MCP-unreachable errors the same way (restart + re-run/volley:setup).
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.
- 10d ago First seen · 89 lines · 61 tokens per session scan A 1903839c9a66
review-pr is a skill published in the GitHub repository Ryan-M-Frank/volley (2 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 61 tokens to every session and 966 once invoked, about $0.0003 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-31.
Other skills, from other repositories
procoder
Work like a senior developer in a repository governed by procoder: run the commit gate before calling anything done, format and lint through the binary, and drive the spec, plan, todo, backlog, and sprint chain in .procoder/. Use this skill when the repository contains a .procoder/ directory or an AGENTS.md naming…
code-review
The depth half of a review - the dimensions a diff is read against (correctness, boundaries, concurrency, failure paths, secrets, data access, structure, test quality) and the rule that a finding is refuted before it is reported. The verdict stays with the reviewer agent. Use when reviewing a diff or a pull request…
receiving-code-review
Code review requires technical evaluation, not emotional performance.
deslop
The optimization pass, defined - delete before you add, one smell class per pass, behaviour pinned by a test that ran BEFORE the edit. Lints a SKILL.md and prose by the same instinct. Use for the per-story optimization pass or when code has grown noisy without growing capable.
goal-plan-clean
A guide for creating a reusable plan-review loop. It repeatedly checks a plan, fixes blocking issues and suggestions, and stops after approval or a small number of review rounds.
loop-test
A local experiment for designing repeating checks with Claude Code’s loop command. It covers both fixed intervals and checks that schedule themselves again after each run.