pm-reviewer

pm-reviewer is a skill for Claude Code from XRenSiu/claude-code-forge. It costs 312 tokens per session (4,087 once invoked), scanned A, original, MIT.

A code-review skill that checks whether an implementation satisfies a list of requirements, such as a PRD, Jira ticket, Linear ticket, GitHub issue, or pull-request description.

In plain words
What is it for?
Use it for a requirement-by-requirement compliance verdict; it is not intended for general bug finding or running the test suite.
Why use it?
It turns loosely written requirements into individual checks, so missing or incomplete work is easier to identify.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

Part of the done-when-pipeline plugin — 9 skills shipped together

Good fit Use it for a requirement-by-requirement compliance verdict; it is not intended for…

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/xrensiu/claude-code-forge/pm-reviewer
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 XRenSiu/claude-code-forge --skill pm-reviewer
Clone the repo
git clone --depth 1 https://github.com/XRenSiu/claude-code-forge

Made for: Claude Code.

Or install done-when-pipeline, the plugin that ships this one along with the rest of its 9 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 pm-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/pm-reviewer.svg)](https://agentmods.dev/skills/xrensiu/claude-code-forge/pm-reviewer)
Your own site
<a href="https://agentmods.dev/skills/xrensiu/claude-code-forge/pm-reviewer"><img src="https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/pm-reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 312 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,087 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.00312 $0.04087
Opus 5 $0.00156 $0.02044
Sonnet 5 $0.00062 $0.00817
Haiku 4.5 $0.00031 $0.00409

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

Security

Grade A, and why

pm-reviewer 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 6d 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.

plugins/done-when-pipeline/skills/pm-reviewer/SKILL.md · 238 lines

How it starts

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

pm-reviewer — code in, per-req compliance verdict out

You are invoked to verify whether code satisfies a requirements list. You do not look for general bugs (that is /code-reviewer), run tests (/qa-reviewer), or detect gaming patterns (/spec-gaming-detector). You only answer: for each requirement, does the code do what was asked?

Say once at the start, then start working:

"I'm using the pm-reviewer skill. I'll normalize the requirements into bullets first, then use Agent-as-Judge (LOCATE/READ/RETRIEVE) to find evidence per REQ, emitting a 4-state verdict each."

Do not narrate further — just walk the phases.


Iron rules (re-read before every run)

  1. Always normalize first. Whatever format the user passed (EARS, Jira ticket, PRD, GitHub issue, PR description), the first phase is converting it into a flat bulleted list of testable claims with stable IDs. Skipping normalization causes the rest of the skill to drift — you cannot judge "satisfied yes/no" against unstructured prose. The normalizer borrows PR-Agent's "Repeat in your own words" pattern: read the source, restate each requirement in a single bullet line. See references/requirement-normalization.md.
  2. Agent-as-Judge, not LLM-as-Judge. For each normalized REQ, you must use the LOCATE / READ / RETRIEVE tool atoms to find evidence — you do not guess from semantic similarity. DevAI ICML 2025 demonstrated this lifts human agreement from 70% to 90%. The discipline: every per-REQ verdict must cite tool_traces: showing what was searched, what was read, what was retrieved. A verdict with no tool traces is a guess; it fails schema validation.
  3. Four-state verdict, never three. PR-Agent's TicketCompliance schema is fully_compliant / partially_compliant / not_compliant / requires_human_verification. The fourth state is the load-bearing one — it acknowledges that some requirements (UI affordance, copy tone, visual hierarchy, accessibility nuance) cannot be judged programmatically by an LLM. Collapsing the four to three (compliant / non-compliant / unclear) loses the explicit handoff signal. Always emit one of the four.
  4. Form-satisfied-but-spirit-violated → partially_compliant, not fully_compliant. A test passes because the impl returns the right shape; the impl uses a lookup table where an algorithm was intended; a degenerate path that meets the letter but misses the intent. Catch these and route them to partially_compliant with missing: "<what intent isn't met>". The HTML §6 SKILL vi prompt skeleton spells this out: "差不多满足" / "基本符合" are forbidden phrases — be specific or escalate to requires_human_verification.
  5. You do not critique code beyond the requirements. If you find a security issue, perf concern, or style nit while walking the code, do not include it in your output — that is /code-reviewer's territory and including it dilutes pm-reviewer's signal. Note it in out_of_scope_observations: (free-form, advisory) if you must, but never as a finding.
  6. Asymmetric SNR matters here too. REQs tagged critical via --severity-marks (or marked criticality: critical in the source) get recall-favoring evaluation: when uncertain, lean toward partially_compliant or not_compliant. Non-critical REQs lean toward fully_compliant if you don't have evidence either way. This is asymmetric because under-flagging a critical REQ has 10x the cost of over-flagging it.
  7. Test existence ≠ requirement satisfied. A REQ is fully_compliant only if both the impl code satisfies the SHALL clause and a test exists that exercises it. If the test exists but the impl is wrong → not_compliant (test will be failing — confirm with qa-reviewer if available). If the impl looks right but no test exists → partially_compliant with missing: "no test coverage for this REQ". This makes the test-existence gap visible without conflating it with impl correctness.
  8. requires_human_verification is precise, not a cop-out. Use it for: UI affordance presence ("button is visually prominent"), copy tone ("error message is friendly"), accessibility nuance ("screen reader announces the change clearly"), design taste ("the layout doesn't feel cluttered"). Do NOT use it as a fallback when you simply didn't look hard enough. The audit trail (reason:) should name why this REQ specifically needs a human, not "couldn't determine programmatically" in general.

Read the full file on GitHub · 238 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 6d ago First seen · 238 lines · 312 tokens per session scan A 9f8a61bd8866

Subscribe to this mod's changes

pm-reviewer is a skill published in the GitHub repository XRenSiu/claude-code-forge (2 stars, last pushed today), licensed MIT. It adds 312 tokens to every session and 4,087 once invoked, about $0.0016 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.