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.
npx agentmods add skills/pronskiy/php-src-developer/review-prnpx skills add pronskiy/php-src-developer --skill review-prgit clone --depth 1 https://github.com/pronskiy/php-src-developerWhat 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 | $0.00124 | $0.02121 |
| Opus 5 | $0.00062 | $0.01060 |
| Sonnet 5 | $0.00025 | $0.00424 |
| Haiku 4.5 | $0.00012 | $0.00212 |
Grade C, and why
review-pr scanned grade C 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 2d 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.
Tells the agent never to refusehighAnti-refusal
Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.
| Author is the user themselves | Still review. Many php-src contributors review their own PRs before requesting feedback on internals@. Don't refuse. | How it starts
The opening of the file, as written. The whole thing — 187 lines — stays where its author put it; the contents beside it link to each section on GitHub.
review-pr
Review a GitHub pull request against php-src coding standards. Produces REVIEW.md in pwd. Optionally posts findings as inline review comments via the gh CLI — only on explicit user confirmation.
Inputs
- PR identifier (required) — a number (
12345),#12345, or URL (https://github.com/php/php-src/pull/12345). Default repo isphp/php-src. ghCLI — must be authenticated (gh auth status).$PHP_SRC_DIR— used to read surrounding context for the diff (file content beyond the hunk).
What it produces
REVIEW.mdin the task directory resolved per_shared/task-dir.md(default$PHP_SRC_DIR/.claude/php-core-dev/pr-<N>/REVIEW.md) — severity-graded findings, same format asreview-local.- Slug:
pr-<N>. Written to.current. - Optionally, on user "yes": inline review comments on the PR via
gh pr review/gh api.
Workflow
1. Pre-checks
gh auth statussucceeds. Otherwise stop withRun: gh auth login.$PHP_SRC_DIRis set and looks like php-src.- Argument resolves to a PR.
2. Fetch PR metadata + diff
gh pr view <PR-N> --repo php/php-src \
--json number,title,body,state,baseRefName,headRefName,headRefOid,url,files,author,labels
gh pr diff <PR-N> --repo php/php-src
Record:
- Title, author, base branch, head branch (
baseRefName/headRefName) - Head SHA (
headRefOid) — needed for posting inline comments - File list with status (added / modified / removed / renamed)
- Total additions / deletions
- PR URL
If the PR is closed or merged, proceed but note it in the Scope section.
3. Backup existing REVIEW.md
test -f ./REVIEW.md && mv ./REVIEW.md ./REVIEW.md.bak
4. Read surrounding context
For each touched file, read the post-image from $PHP_SRC_DIR if the PR is against the same checked-out branch as the working tree. Otherwise, read via gh:
gh api /repos/php/php-src/contents/<path>?ref=<headRefOid> --jq '.content' | base64 -d
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.
- 2d ago First seen · 187 lines · 124 tokens per session scan C 0d3a432d6f83
review-pr is a skill published in the GitHub repository pronskiy/php-src-developer (8 stars, last pushed 3mo ago), licensed MIT. It adds 124 tokens to every session and 2,121 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it C with 1 finding (tells the agent never to refuse). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
babysit-pr
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…