Skip to content
Agentmart
Submit a tool
This entry duplicates code-review, which is the one we list in search.

code-review

Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".

Skill by O-Marsters-1997

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/o-marsters-1997-code-review-1e338e

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X". Reviews changes since a fixed point (commit, branch, tag, or merge-base) along two parallel axes — Standards (does this follow the repo's documented coding standards?) and Contract (does this match the ticket and the feature's frozen contract?) — reported side by side. Also defines the Journey axis, which /fleet reconcile applies to a completed slice. For whole-system design assessment rather than a diff, use architecture-review.

Use cases: documents, design

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions: not checked yet.

What's inside

Skill name
code-review
Description
Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X". Reviews changes since a fixed point (commit, branch, tag, or merge-base) along two parallel axes — Standards (does this follow the repo's documented coding standards?) and Contract (does this match the ticket and the feature's frozen contract?) — reported side by side. Also defines the Journey axis, which /fleet reconcile applies to a completed slice. For whole-system design assessment rather than a diff, use architecture-review.
License
MIT
Instructions
108 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

Review of the change against a fixed point the user supplies, along two axes (a third, Journey, checks a delivery slice rather than a diff; see _Journey axis_):

- **Standards** — does the code conform to this repo's documented coding standards?
- **Contract** — does the code meet the ticket's acceptance criteria, implement every signature the ticket lists, and keep those signatures as written?

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

## Process

### 1. Pin the fixed point

Whatever the user said is the fixed point — a commit SHA, branch name, tag, `main`, `HEAD~5`, etc. If they didn't specify one, ask for it.

For committed work capture `git diff <fixed-point>...HEAD` (three-dot, against the merge-base).
For work still in progress capture `git diff <fixed-point>` (tracked staged and unstaged changes)
and read any untracked files in scope explicitly. Note the commits via
`git log <fixed-point>..HEAD --oneline`. Keep the worktree path in both reviewer briefs.

Before going further, confirm the fixed point resolves (`git rev-parse <fixed-point>`) and the
effective change is non-empty, including untracked files. A bad ref or empty change should fail
here — not inside two parallel sub-agents. A review run for /implement is **low** on `size:xs`
and **medium** otherwise; both require independent reviewers. Low uses the same two axes but
focuses on the small fix and its regression test rather than adjacent design advice.

### 2. Identify the contract and spec source

Look for the originating ticket and contract, in this order:

1. Issue references in the commit messages or branch name (`#123`, `Closes #45`) — resolve with `gh issue view`.
2. A path the user passed as an argument.
3. A 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 **Contract** sub-agent will skip and report "no spec available".

Then look for the contract: the ticket body's `## Signatures` section, which `to-tickets` copies from the plan (`new:` signatures and `change:` bullets). The ticket carries it because `docs/plans/` is usually gitignored, so a fresh checkout lacks the plan. If the ticket has no `## Signatures` section (ad hoc work, sweep, non-code), there is no contract and the Contract axis falls back to plain spec review: acceptance criteria only, as below.

### 3. Identify the standards sources

Anything in the repo that documents how code should be written, such as `CODING_STANDARDS.md` or `CONTRIBUTING.md`.

On top of whatever the repo documents, the Standards axis always carries the **smell baseline** below — a fixed set of Fowler code smells (_Refactoring_, ch.3) that applies even when a repo documents nothing. Two rules bind it:

- **The repo overrides.** A documented repo standard always wins; where it endorses something the baseline would flag, suppress the smell.
- **Always a judgement call.** Each smell is a labelled heuristic ("possible Feature Envy"), never a hard violation — and, like any standard here, skip anything tooling already enforces.

Each smell reads *what it is* → *how to fix*; match it against the diff:

- **Mysterious Name** — a function, variable, or type whose name doesn't reveal what it does or holds. → rename it; if no honest name comes, the design's murky.
- **Duplicated Code** — the same logic shape appears in more than one hunk or file in the change. → extract the shared shape, call it from both.
- **Feature Envy** — a method that reaches into another object's data more than its own. → move the method onto the data it envies.
- **Data Clumps** — the same few fields or params keep travelling together (a type wanting to be born). → bundle them into one type, pass that.
- **Primitive Obsession** — a primitive or string standing in for a domain concept that deserves its own type. → give the concept its own small type.
- **Repeated Switches** — the same `switch`/`if`-cascade on the same type recurs across the change. → replace with polymorphism, or one map both sites share.
- **Shotgun Surgery** — one logical change forces scattered edits across many files in the diff. → gather what changes together into one module.
- **Divergent Change** — one file or module is edited for several unrelated reasons. → split so each module changes for one reason.
- **Speculative Generality** — abstraction, parameters, or hooks added for needs the spec doesn't have. → delete it; inline back until a real need shows.
- **Message Chains** — long `a.b().c().d()` navigation the caller shouldn't depend on. → hide the walk behind one method on the first object.
- **Middle Man** — a class or function that mostly just delegates onward. → cut it, call the real target direct.
- **Refused Bequest** — a subclass or implementer that ignores or overrides most of what it inherits. → drop the inheritance, use composition.

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

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

- The full diff command, any untracked-file paths, and commit list.
- The list of standards-source files you found in step 3, **plus the smell baseline from step 3** pasted in full — the sub-agent has no other access to it.
- The brief: "Report — per file/hunk where relevant — (a) every place the diff violates a documented standard: cite the standard (file + the rule); and (b) any baseline smell you spot: name it and quote the hunk. Distinguish hard violations from judgement calls — documented-standard breaches can be hard, but baseline smells are always judgement calls, and a documented repo standard overrides the baseline. Skip anything tooling enforces. Under 400 words."

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

- The diff command, any untracked-file paths, and commit list.
- The path or fetched contents of the ticket (or other spec), including its `## Signatures` section when one exists.
- The brief: "Report: (a) acceptance criteria or requirements that are missing, partial, or look implemented but wrong; (b) behaviour in the diff that wasn't asked for (scope creep). Quote the ticket line for each finding. With a contract also report: (c) every `new:` signature or `change:` bullet in the ticket's `## Signatures` that the diff does not implement; (d) signature diff: compare each declaration the diff adds for a `new:` signature (name, parameters, return types, visibility) against the ticket's block, and flag every mismatch that is not tied to a `contract-change` issue (match `gh issue list --label contract-change --state all` against the issue numbers in the commits and PR body, or an issue naming the changed symbol). A signature edit with no such issue is a violation, not a judgement call. Under 400 words."

If neither a ticket nor a spec is available, skip the Contract sub-agent and note this in the final report.
If a required reviewer cannot be launched or its report cannot be read, report the review as
blocked; never replace that axis with the implementer's own judgement or claim it passed.

### 5. Aggregate

Present the reports under `## Standards` and `## Contract` headings (Contract covers acceptance criteria, signature coverage and the signature diff; without a contract, acceptance criteria only), verbatim or lightly cleaned. Do **not** merge or rerank findings — the axes are deliberately separate (see _Why separate axes_).

End with a one-line summary: total findings per axis, and the worst issue _within each axis_ (if any). Don't pick a single winner across axes — that's the reranking the separation exists to prevent.

## Journey axis

A third axis, separate from Standards and Contract. It does not review a diff: it runs once per
delivery slice, on integrated code, when `/fleet reconcile` finds the slice's last ticket merged.
Run it as its own sub-agent, never inside the two above, so a passing diff cannot mask a broken journey.

Input is one PRD journey (title, surface, steps, final `→ <observable state>`) and the evidence
gathered for it: the output of running its steps. Missing or empty evidence counts as needs human
eyes, never pass. Report, per journey:

- **Pass**: the evidence shows the `→` end state. Quote the evidence line that shows it.
- **Fail**: the evidence contradicts the end state or stops before it. Quote the step where it diverged.
- **Needs human eyes**: the end state is visual UI, or the evidence cannot show it. List what the user
  should look at. Never guess pass or fail from output that cannot show the state.

## Why separate axes

A change can pass one axis and fail another:

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

Reporting them separately stops one axis from masking another.

From O-Marsters-1997/my-claude-code, MIT.

More from O-Marsters-1997/my-claude-code

Signals

Stars
0
Forks
0
Open issues
10
Last commit (this folder)
Oct 14, 2026 (14 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from O-Marsters-1997

Cite this page

code-review skill. Agent Mart. https://agentmart.dev/skills/o-marsters-1997-code-review-1e338e (last updated 2026-10-24)