Skip to main content
skill CX Codex

code-review · phuryn — Claude Code skill: what it does, how to install

Reviews code for actionable defects, with correctness as the default focus. Use it for change reviews, bug hunts, and safety checks on fixes.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add phuryn/pm-skills --skill code-review -a claude-code
Open on GitHub

What code-review does

This skill looks for broken agreements across code boundaries: caller and callee, producer and consumer, or state written now and read later. It constructs a reachable failing execution, traces the observable result, and tests counterarguments before reporting a finding.

Correctness is the default dimension. Performance can trace workload through resource demand and contention, while security follows a source across a trust boundary to a sink. A single root cause with several impacts is reported once.

In Claude Code, call /pm-ai-shipping:code-review, because the bundled /code-review is a different tool. The skill can review working changes or a repository, and it applies fixes only when explicitly asked.

What it helps with

  • find mismatches between callers and callees
  • check whether accepted values replace requested values
  • reproduce failures during concurrent operations
  • trace operation results back to the right entity
  • audit changes for correctness and security defects

Example prompts for the agent

  • /pm-ai-shipping:code-review
  • /pm-ai-shipping:code-review dimensions=correctness scope=changes
  • /pm-ai-shipping:code-review dimensions=performance,security

How to install code-review

1Skills CLI (Vercel)

npx skills add phuryn/pm-skills --skill code-review -a claude-code

2Manually: put the files in place

~/.claude/skills/code-review/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/code-review/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about code-review

How do I install code-review in Claude Code?

Run npx skills add phuryn/pm-skills --skill code-review -a claude-code, then run npx skills add phuryn/pm-skills --skill code-review -a claude-code again. The skill file is placed at ~/.claude/skills/code-review/SKILL.md.

What does code-review do?

It reviews code through agreements between participants across boundaries and reports defects with a reachable trigger, consequence, and checked counterarguments. Correctness is its main mode.

Which review dimensions does code-review support?

correctness is selected by default. You can explicitly select performance, security, or all, and dimensions can run together.

Source text

SKILL.md · MIT
---
name: code-review
description: "Review code for actionable defects. Correctness is the core; performance and security are optional sub-cases of the same engine. Anchors on agreements between participants across a boundary, forces a violating execution, and refutes every candidate before reporting. Use when asked to review changes, find bugs, audit a codebase, or check whether a fix is safe."
---

# Code Review

## Purpose

Most review output is noise: a list of things that *look* wrong, unranked, unrefuted, and impossible
to act on. This skill produces the opposite — a small number of findings, each with a required
behaviour, a feasible trigger, a concrete contradiction, an observable consequence, and the strongest
counterargument already checked.

Its central bet: **the defects reviewers miss are rarely visible inside one file.** They are
disagreements between two participants that each look reasonable alone — a caller and a callee, a
producer and a consumer, a writer and a later reader, two branches that should establish the same
state. A checklist applied file-by-file cannot see those, because the two halves are never in view at
the same time. So the unit of review here is the **agreement**, not the file.

## Structure: one engine, three anchors

Code review is the skill. **Correctness is its core** — the dimension generic tooling covers worst,
and the one described in full below. **Performance and security are sub-cases**: the same engine, the
same refutation discipline, the same report contract, with a different anchor and one or two extra
rules each.

| Sub-case | Anchor | Where its rules live |
|---|---|---|
| **Correctness** *(core, default)* | Agreements between participants across a boundary | This file + `references/correctness-taxonomy.md` |
| **Performance** | Workload → resource demand → growth or contention → consequence | `references/performance-review.md` |
| **Security** | Source → trust boundary → sink, with an attacker controlling the source | `references/security-review.md` |

Read a sub-case's file only when that sub-case is selected. Each is short on purpose: it states what
*differs*, and the rest of this file still applies.

Sub-cases are independently *activated*, not mutually exclusive. One root cause can carry correctness
and security impact — report it once, with both impacts.

## Invocation

```
/pm-ai-shipping:code-review
/pm-ai-shipping:code-review dimensions=correctness scope=changes
/pm-ai-shipping:code-review dimensions=performance,security
/pm-ai-shipping:code-review dimensions=all
```

Claude Code ships its own bundled `/code-review`. Use the plugin-qualified form above when you mean
this one.

These are instruction arguments, not shell flags.

- **Default: `correctness`.** Bare "review this" or "find bugs" means correctness only.
- An explicit list selects exactly those sub-cases; `all` selects three. Never silently reinterpret
  an unknown or empty selection — ask.
- **Scope:** use what was asked. Otherwise review working changes if present, else the repository.
- **State the selected dimensions, the scope and the comparison baseline before investigating.**
- Reviewing changes means following dependencies *beyond* the changed lines, and distinguishing
  defects the change **introduced** from defects it merely **revealed**.
- Review and report. Apply fixes only when asked.

## Shared engine

Every sub-case uses one skeleton. Only the anchor and the refutation rules differ.

**Map a flow → identify an obligation → inspect every participant → construct a violating execution
→ trace the consequence → attempt refutation → report.**

Build one minimal map first: inputs, major execution flows, who owns which state, external
dependencies, observable effects. Each selected sub-case enriches it — do not build three maps, and
do not make a security-only run wait on correctness mapping.

## Correctness: the agreement engine

A *boundary* is semantic, not a file split. It separates a caller and a callee, two callbacks, two
executions of the same function, a producer and a consumer, or a value written now and read later.

For each consequential agreement, hold these in working notes — not in the report:

```
Participants:
Value, entity or effect exchanged:
Authority (who decides the real answer):
Identity and lifetime/version:
Required relationship:
Evidence for that relationship:
Relevant transitions or orderings:
Observable consumer or consequence:
```

**Establish the obligation without inventing intent.** Evidence comes from specifications,
documented contracts, language or protocol semantics, tests that encode an expectation, or a
necessary producer/consumer relationship. A consumer's implementation alone does not prove the
consumer is right. Where participants disagree, say why the disagreement produces a *wrong outcome* —
sometimes the contradiction is certain while which side should change is genuinely open. Missing
documentation is a limitation, not automatically a finding.

**Start where agreements are most likely to break:** values transformed or negotiated, identities
reassigned, work becoming asynchronous, state persisted and reloaded, several effects that must
agree. Then do a local pass over ordinary decisions, arithmetic, boundaries and error branches — the
anchor must not become a filter that discards plain bugs.

### Force a violating execution

A suspicion is not a finding until you construct the execution that breaks it. Where the
implementation permits:

- make a **requested** value differ from the **accepted or effective** one;
- keep two operations live at once and vary their completion order;
- change the relevant identity or generation between observation and use;
- compare distinct transitions that should end in equivalent state;
- inject failure between effects, and interruption before completion;
- exercise empty, exact-boundary and adjacent-boundary inputs.

Establish that each case is actually reachable. Do not assume it.

### Two lenses that need a forced probe, not a mention

Across a large evaluation of planted runtime defects in real codebases, two classes were almost never
*even reported* by strong agents — not missed at the fix, missed at the look. Naming them in a
checklist will not help; each needs an explicit probe:

1. **Authority reconciliation.** Follow a proposed value through validation, normalisation,
   negotiation or commit, and find downstream state still derived from the **proposal** where the
   authority can return something different. *A requested value is not an applied value.* Probe:
   force them apart and ask what still reads the request.
2. **Identity and correlation.** Trace how an operation's result finds its originating entity, then
   establish that the key is unique, stable and live for long enough — under overlap, reordering,
   removal and reuse. A label, a position or arrival order is suspicious exactly when those
   properties can fail. Probe: run two operations concurrently and complete them out of order.

The full set of thirteen diagnostic lenses, each with a detection tell, is in
`references/correctness-taxonomy.md`. They are overlapping lenses, not a quota to fill.

## Refutation: the discipline that makes this worth running

A candidate becomes a finding only with all five:

1. **A supported obligation** — what must hold, and on what evidence.
2. **A feasible execution** — inputs, state and ordering the real system permits.
3. **A concrete contradiction** — where the obligation fails.
4. **An observable consequence** — wrong output, state, effect, completion or progress.
5. **An examined counterargument** — the strongest mechanism that would prevent or repair it.

Actively hunt for the refutation: an enclosing guarantee that makes the execution impossible;
synchronisation excluding the interleaving; reconciliation before any consequential read; an
intentional contract; a precondition excluding the input; a different owner responsible for it.

| Outcome | Rule |
|---|---|
| **Keep** | Evidence establishes the defect; the counterargument checked does not prevent it. |
| **Drop** | Cited evidence defeats the execution, the obligation or the consequence. |
| **Unresolved** | An essential contract or runtime fact is unknown. List it *separately from findings*. |

Do not import the security sub-case's attacker/victim test into correctness. **A correctness defect
can harm only the person who triggered it and still be serious.** Equally, "keep unless disproved" is
too permissive here — an ungrounded suspicion with no constructed execution is not a finding. When
both sub-cases are active, apply each test only to its own dimension.

**Absorption is not prevention.** The most expensive refutation mistake is finding something
downstream that happens to hide the defect - a cache that usually holds the value, a retry that
usually succeeds, a default that is usually right - and dropping the finding. That is not a
guarantee, it is a coincidence with good odds, and it fails the day the absorber is cold, evicted or
reconfigured. Drop only on a mechanism that makes the execution *impossible*, and say which mechanism
it was. For the same reason, **"it works nearly always" describes a race, not a refutation** - a
timing window that usually resolves correctly is a finding, and the fact that you had to reason about
which side usually wins is the evidence.

Passing tests, unfamiliar code, a suspicious name, a missing test and a sibling difference are
evidence to investigate — none of them is proof, and none is refutation. Deduplicate by violated
agreement and root cause, never by file. There is no findings quota; zero supported findings is a
valid result.

## Parallelism

Fan out over **complete flows or connected groups of agreements** — never over files, and never one
agent per taxonomy class. Partitioning by file is precisely the split that hides cross-boundary
defects, which are the ones worth finding.

1. The coordinator builds the initial map and identifies shared state.
2. Each worker gets a bounded flow, its participants, the selected sub-cases and open questions.
3. Workers inspect **both sides** of their agreements and may follow dependencies outside their list.
4. Workers return candidates, cited evidence, completed refutations and unresolved relationships.
5. The coordinator reconciles assumptions and any relationship that crosses assignments.
6. Strong candidates get a separate verification pass before they are reported.

**Allow overlapping reads.** Two workers reading the same authority is far cheaper than either one
holding half its contract. Keep integration capacity in reserve: an unresolved relationship spanning
two assignments stays unexamined until someone closes it. One level of fan-out is the target; if
delegation is unavailable or the scope is small, run the same procedure sequentially.

**Run workers on the strongest model available, and match the current session's effort level.** This
is recall-first work: a missed cross-boundary flow is the costly failure, and a worker that silently
drops to a cheaper model or a lower effort is the cheapest way to lose one. If any worker is rerouted
or downgraded, say which in the report — a reader who assumes one model saw everything will
misjudge the coverage.

**One model. Name it on every worker.** Fan-out here buys coverage, not a second opinion. Pass the
coordinator's own model explicitly on each spawn — "inherit" is not a routing decision, and a worker
that quietly lands on a cheaper model is the easiest way to lose a finding. **Do not bring in a
different model**, to review or to cross-check, unless you are explicitly asked: mixing models makes
the result unattributable, and when this skill is being measured or compared across models, one
foreign worker invalidates the number. The independent second-model pass is a separate,
explicitly-invoked step (`/ship-check` Step 6), never something this skill reaches for on its own.

**Tell workers they are reading, not editing.** A review worker needs to read, search and navigate;
it must not modify the tree. State that in the worker's instructions — a worker that starts editing
drifts from reviewing into "helpfully" fixing and stops reporting what it silently repaired, and the
findings can no longer be checked against the code they describe. Say it in the prompt rather than
assuming the host will enforce it, and confirm the tree is unchanged when the run ends.

## Report

Lead with supported findings, ordered by impact. Keep severity separate from evidential strength.

```
Review scope:
Comparison baseline:
Selected dimensions:

[Severity] [Dimension] Concrete consequence
  Expectation:  required behaviour, and the evidence for it
  Trigger:      feasible preconditions and execution
  Defect:       the violated relationship
  Evidence:     source locations for EVERY participant
  Impact:       observable consequence and affected scope
  Refutation:   strongest counterargument checked, and why it fails
  Remedy:       minimal correction to the violated relationship
  Verification: what was executed, versus established from source

Coverage:
Unexamined areas and essential unknowns:
```

Cite **both** participants for a cross-boundary defect, and do not group findings only by file — that
hides the relationship the review exists to find.

**Coverage means work performed, not boxes ticked.** For each selected sub-case report: examined with
supported findings · examined, none supported · not applicable, with reason · not examined, with
reason. Zero findings in a category does **not** mean "not covered", and a table of ticks is not
evidence of completeness. Say "no supported findings in the examined scope" — never that the code is
bug-free.

## Notes

- Say explicitly what is well built. A review that only accuses is easy to dismiss.
- The two sub-cases have mature commands behind them: `/security-audit-static` (trust boundaries,
  sinks, OWASP backstop) and `/performance-audit-static` (over-fetching, indexes, caching). Run the
  command when the sub-case is the whole job; use the reference file when it is one dimension of a
  broader review. This skill does not restate either.
- For the doc-vs-code axis use the `intended-vs-implemented` skill.
- A static review produces code-review findings, not confirmed exploits or measured regressions.

© phuryn · MIT · phuryn/pm-skills

Similar skills

Everything for Code review and refactoring →

code-review by other authors comes first.

code-review Matt Pocock Reviews changes from a chosen reference point against repository standards and the originating spec. Use it for a branch, PR, or work in progress. 789,521installs code-review official anthropics The skill reviews diffs and pull requests for security, performance and correctness. Useful when a change needs a look before merging. CX Codex +1 9,900installs code-review agno-team Automated code inspection for style violations, bugs, and best-practice gaps. The skill runs linting, identifies issues, and delivers structured feedback with severity levels. CX Codex +1 472installs code-review coderabbitai Runs CodeRabbit CLI reviews and feeds structured findings back to the agent. Helpful for catching bugs, security risks, and code quality issues before merging. CX Codex +1 14,800installs code-review getsentry A skill that reviews pull requests and code changes against Sentry engineering practices: security, performance, tests, design. CX Codex +1 5,500installs code-reviewer https://github.com/Jeffallan Analyzes code diffs and files to spot bugs, security vulnerabilities (SQL injection, XSS), code smells, N+1 queries, and returns a prioritized review report. Use for pull request reviews and code audits. CX Codex +1 6,500installs ponytail-review DietrichGebert ponytail-review reviews a change beyond the diff, checking connected code, bugs, risks, load, tests, speed, and unnecessary code. Use it for PRs and commits. CX Codex +1 57,000installs code-review-excellence Seth Hobson This skill guides pull request reviews, catches logic and security issues, and helps teams give specific feedback. Use it for review standards or developer mentoring. CX Codex 30,193installs code-review-analysis aj-geddes A skill that walks the agent through a systematic review: code quality, security, performance, tests. Useful when you are checking a pull request before merge. CX Codex +1 2,400installs requesting-code-review Hermes Agent (adapted from obra/superpowers + MorAlekss) Pre-commit code verification pipeline that scans for security flaws, checks test regressions against a baseline, and runs an auto-fixing reviewer subagent. CX Codex +1 469installs code-review-checklist davila7 A skill that walks a reviewer through context, functionality, quality, security, performance and tests. Useful on pull requests and audits. 365installs

From the same set69

The whole set →
user-segmentation Turns reviews, interviews and usage logs into at least three behavior-based user segments. Useful when your user base looks like one big blob. CX Codex +1 2,700installs dummy-dataset Generates realistic mock datasets with custom columns, business rules, and formats. Helpful for database seeding and product demos. CX Codex +1 2,700installs sprint-plan Plans a sprint around team capacity, priorities and dependencies. Use it before choosing stories and committing the sprint scope. CX Codex +1 2,700installs ansoff-matrix This skill maps growth options onto the four Ansoff Matrix quadrants and writes out strategies for each. Useful when the next move is unclear. CX Codex +1 2,700installs gtm-motions Evaluates go-to-market strategies and software stacks across inbound, outbound, and PLG. Helps teams pick distribution channels and plan cross-channel campaigns. CX Codex +1 2,700installs draft-nda This skill drafts a detailed non-disclosure agreement between two parties, covering information types, jurisdiction, and marking sections that require legal review. CX Codex +1 2,600installs intended-vs-implemented Audits the gap between documented architecture and actual code boundaries. Catches missed permission checks and untrusted data exposure in AI-built codebases. CX Codex +1 1,800installs shipping-artifacts Generates core documentation to make vibe-coded applications reviewable before release. It maps architecture, permission flows, and test coverage for audits. CX Codex +1 1,700installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor