Skip to main content
NEW · APP STORE Now on iOS · macOS · iPad Android & Windows soon GET IT
Prompts Two-Axis Git Diff Code Reviewer

agent coding skill risk: low

Two-Axis Git Diff Code Reviewer

The prompt instructs an agent to review code changes from a user-specified fixed point to HEAD by first identifying standards documents and spec sources, then spawning parallel sub…

  • External action: low

SKILL 1 file

SKILL.md
---
name: review
description: "Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them s"
---
# Review

Two-axis review of the diff between `HEAD` and a fixed point the user supplies:

- **Standards** — does the code conform to this repo's documented coding standards?
- **Spec** — does the code faithfully implement the originating issue / PRD / spec?

Both axes run as **parallel sub-agents** so they don't pollute each other's context, then this skill aggregates their findings.

The issue tracker should have been provided to you — run `/setup-matt-pocock-skills` if `docs/agents/issue-tracker.md` is missing.

## Process

### 1. Pin the fixed point

Whatever the user said is the fixed point — a commit SHA, branch name, tag, `main`, `HEAD~5`, etc. Don't be opinionated; pass it through. If they didn't specify one, ask: "Review against what — a branch, a commit, or `main`?" Don't proceed until you have it.

Capture the diff command once: `git diff <fixed-point>...HEAD` (three-dot, so the comparison is against the merge-base). Also note the list of commits via `git log <fixed-point>..HEAD --oneline`.

### 2. Identify the spec source

Look for the originating spec, in this order:

1. Issue references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `docs/agents/issue-tracker.md`.
2. A path the user passed as an argument.
3. A PRD/spec file under `docs/`, `specs/`, or `.scratch/` matching the branch name or feature.
4. If nothing is found, ask the user where the spec is. If they say there isn't one, the **Spec** sub-agent will skip and report "no spec available".

### 3. Identify the standards sources

Anything in the repo that documents how code should be written. Common locations:

- `CLAUDE.md`, `AGENTS.md`
- `CONTRIBUTING.md`
- `CONTEXT.md`, `CONTEXT-MAP.md`, per-context `CONTEXT.md` files
- `docs/adr/` (architectural decisions are standards)
- `.editorconfig`, `eslint.config.*`, `biome.json`, `prettier.config.*`, `tsconfig.json` (machine-enforced standards — note them but don't re-check what tooling already checks)
- Any `STYLE.md`, `STANDARDS.md`, `STYLEGUIDE.md`, or similar at the repo root or under `docs/`

Collect the list of files. The **Standards** sub-agent will read them.

### 4. Spawn both sub-agents in parallel

Send a single message with two `Agent` tool calls. Use the `general-purpose` subagent for both.

**Standards sub-agent prompt** — include:

- The full diff command and commit list.
- The list of standards-source files you found in step 3.
- The brief: "Read the standards docs. Then read the diff. Report — per file/hunk where relevant — every place the diff violates a documented standard. Cite the standard (file + the rule). Distinguish hard violations from judgement calls. Skip anything tooling enforces. Under 400 words."

**Spec sub-agent prompt** — include:

- The diff command and commit list.
- The path or fetched contents of the spec.
- The brief: "Read the spec. Then read the diff. Report: (a) requirements the spec asked for that are missing or partial; (b) behaviour in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but where the implementation looks wrong. Quote the spec line for each finding. Under 400 words."

If the spec is missing, skip the Spec sub-agent and note this in the final report.

### 5. Aggregate

Present the two reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. Do **not** merge or rerank findings — the two axes are deliberately separate so the user can see them independently.

End with a one-line summary: total findings per axis, and the worst single issue (if any) flagged.

## Why two axes

A change can pass one axis and fail the other:

- Code that follows every standard but implements the wrong thing → **Standards pass, Spec fail.**
- Code that does exactly what the issue asked but breaks the project's conventions → **Spec pass, Standards fail.**

Reporting them separately stops one axis from masking the other.

REQUIRED CONTEXT

  • fixed point (commit/branch/tag)
  • git diff and log output
  • standards source files
  • spec/issue contents

TOOLS REQUIRED

  • agent

ROLES & RULES

  1. Don't be opinionated; pass it through.
  2. Don't proceed until you have it.
  3. Capture the diff command once.
  4. Look for the originating spec, in this order.
  5. Collect the list of files.
  6. Send a single message with two Agent tool calls.
  7. Use the general-purpose subagent for both.
  8. If the spec is missing, skip the Spec sub-agent.
  9. Present the two reports under ## Standards and ## Spec headings, verbatim or lightly cleaned.
  10. Do not merge or rerank findings.
  11. End with a one-line summary.

EXPECTED OUTPUT

Format
markdown
Schema
markdown_sections · Standards, Spec, one-line summary
Constraints
  • use ## Standards and ## Spec headings
  • report sub-agent findings verbatim or lightly cleaned
  • end with one-line summary of total findings and worst issue

SUCCESS CRITERIA

  • Report per file/hunk every place the diff violates a documented standard.
  • Cite the standard (file + the rule).
  • Distinguish hard violations from judgement calls.
  • Skip anything tooling enforces.
  • Under 400 words.
  • Report missing/partial requirements, scope creep, and wrong implementations.
  • Quote the spec line for each finding.

FAILURE MODES

  • May fail to keep the two axes completely separate.
  • May proceed without a fixed point or spec source.

CAVEATS

Dependencies
  • docs/agents/issue-tracker.md
  • git repository with commits
Missing context
  • Exact mechanism or syntax for spawning the parallel Agent tool calls
  • How to handle repos without an issue tracker or docs/agents/issue-tracker.md
  • Preferred final report format or length
Ambiguities
  • Description field is truncated: "reports them s"
  • References "general-purpose" subagent without defining how it is invoked or configured
  • Does not specify desired output length beyond the sub-agent 400-word limits

QUALITY

OVERALL
0.78
CLARITY
0.75
SPECIFICITY
0.90
REUSABILITY
0.80
COMPLETENESS
0.70

IMPROVEMENT SUGGESTIONS

  • Complete the truncated sentence in the description field.
  • Add an explicit placeholder or variable for the fixed-point argument so the prompt can be used as a template without editing.
  • Define or link to the expected Agent tool format for spawning sub-agents.

USAGE

Copy the prompt above and paste it into your AI of choice — Claude, ChatGPT, Gemini, or anywhere else you're working. Replace any placeholder sections with your own context, then ask for the output.

MORE FOR AGENT