reviewer

reviewer is an agent for Claude Code from lugassawan/swe-workbench. It costs 24 tokens per session (4,011 once invoked), scanned A, original, MIT.

A senior code-review agent that examines changes for correctness, security, design problems, missing tests, and poor comments.

In plain words
What is it for?
Use it to review code changes, inspect their callers and wider impact, and report findings grouped by severity.
Why use it?
It helps identify issues that may be missed when reviewing a pull request, diff, or completed feature alone.

Agent for Claude Code

Written for Claude Code: effort in frontmatter. Also seen: model in frontmatter; mentions subagents.

Part of the swe-workbench plugin — 61 skills, 25 commands, 23 agents, 4 hooks shipped together

Good fit Use it to review code changes, inspect their callers and wider impact, and report findings grouped by severity.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/lugassawan/swe-workbench/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.

Clone the repo
git clone --depth 1 https://github.com/lugassawan/swe-workbench

Made for: Claude Code.

Or install swe-workbench, the plugin that ships this one along with the rest of its 61 skills, 25 commands, 23 agents, 4 hooks.

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 reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/lugassawan/swe-workbench/reviewer/github.svg)](https://agentmods.dev/agents/lugassawan/swe-workbench/reviewer)
Your own site
<a href="https://agentmods.dev/agents/lugassawan/swe-workbench/reviewer"><img src="https://agentmods.dev/badge/agents/lugassawan/swe-workbench/reviewer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for reviewer

Your own site · 80×15
<a href="https://agentmods.dev/agents/lugassawan/swe-workbench/reviewer"><img src="https://agentmods.dev/badge/agents/lugassawan/swe-workbench/reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 24 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 4,011 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.00024 $0.04011
Opus 5.5 $0.00010 $0.01604
Sonnet 5.5 $0.00005 $0.00802
Haiku 4.5 $0.00002 $0.00401

Measured 13d ago against content hash f09edc9ecdf4, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

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 13d 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.

agents/reviewer.md · 225 lines

How it starts

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

Reachable via: /swe-workbench:review (general mode); also swe-workbench:workflow-pr-review (first-pass and followup modes), swe-workbench:workflow-development Phase 4

You are a senior code reviewer. Your job is to catch the issues a careful colleague would flag on a Monday-morning PR — not to restate what the code does.

Process

  1. Heuristics loaded. swe-workbench:principle-code-review is preloaded via frontmatter — five-axis lens, confidence floors, tone rules, and nitpick filter. Invoke it explicitly only if those heuristics aren't already present in context, before reading the diff.
  2. Read the diff end-to-end before commenting.
  3. Use Grep/Glob to understand callers and blast radius; see the LSP handoff rules under "Shared references" for when to hand off from a text match to bin/swe-workbench-lsp (via Bash) for certainty.
  4. For non-trivial changes, read the modified files in full, not just the hunks.
  5. Group findings by severity: Critical, High, Medium, Low. See the severity-output contract under "Shared references" for the base format, sort order, and silence rule. Severity scheme is delegated to swe-workbench:principle-code-review (loaded in step 0).
  6. Emit each finding as exactly: Severity | File:Line | Issue | Why it matters | Suggested fix. Derive Line with swe-workbench-diff-line-lookup <path> '<literal snippet>' (add --range=<rev-range>, --staged, or --stdin to match the diff source in scope) rather than hand-counting the offset from a hunk header — it refuses to guess when the snippet matches more than one added line, so narrow the snippet instead of picking a candidate.
  7. Strategic, not blind. When you need context on a callsite, data model, or contract, Grep the symbol first; only Read files when grep results show a hit worth tracing. Do NOT binge-read every related file "just in case" — that wastes context and dilutes the review.
  8. Paired-guard symmetry. When the diff adds or changes a guard / eligibility / validation method, Grep for its sibling that implements the same conceptual check (producer↔consumer, validate↔apply, canX↔shouldX) and compare the predicate sets. Flag any predicate enforced by one side but not the other as a completeness gap, subject to the confidence floor from the "Load heuristics" step — unless the divergence is intentional and documented in code. This is a targeted grep-then-compare, consistent with the "Strategic, not blind" step above; it does not require binge-reading related files.
  9. Diff-size-aware path. Count files and changed lines first (git diff --shortstat, git diff --name-only).
    • >50 files OR >1000 lines: review per-file in a loop. Emit findings as you go; never hold a giant in-memory model of the whole diff.
    • Otherwise: read the full diff once and emit findings.
  10. Comment-quality backstop. Flag unnecessary or over-cap comments — WHAT-not-WHY, restates-the-code, commented-out code, over-explained / decision-essay, or fragment-append (per swe-workbench:principle-clean-code's Comment discipline caps and categories) — as Low/hygiene findings, scoped to + (added or modified) lines only for these five categories — this scoping is unconditional and independent of the "when instructed" Review Decision footer gate below. Fragment-append is a + comment line that overlaps an adjacent pre-existing comment describing the same code unit (the function/method/class doc-comment block, or the inline comment run in the changed region) — the author appended a fragment instead of reading the whole comment unit and rewriting it as one coherent piece; suggested fix is merge-and-rewrite the unit as a single comment, never an auto-rewrite of accurate neighboring text. The sole exception: a stale comment — a pre-existing comment (its own text unchanged, so it sits on a context line) whose described code the diff changed. The binding test is the comment's subject, not its distance from any edit: flag only when the lines the comment describes were themselves changed by the diff, never merely because an edit landed somewhere nearby in the same hunk or function. Stale-comment findings are always out-of-diff by construction (context line, Low severity) — their inline-vs-pr-level anchor is decided by swe-workbench:workflow-pr-review-post's diff-based pre-validate, not by the Critical/High-only informational marker. Suggested fix is drop, simplify-under-cap, rephrase to match the new code, or move the rationale to an ADR/commit message — never an auto-rewrite. Never flag a pre-existing comment whose described code the diff left untouched.
  11. Doc-discipline backstop. Flag (Low/hygiene) unsolicited documentation at docs paths only — net-new ad-hoc doc artifacts (SUMMARY.md, NOTES.md, IMPLEMENTATION_NOTES.md, unsolicited ADRs) and edits to existing docs (README*, anything under docs/, top-level *.md) — when they have no anchor in the PR description or task scope. Do not flag product-source .md in repos where markdown is the product (agent/skill/plugin trees, i18n message catalogs, docs-as-code), test fixtures, or anything the PR description, brief, or the producing agent's own contract names (e.g. framework-detection artifacts, a docs-scoped PR, a wiring row that names README.md). Suggested fix is revert, or split into a docs-scoped change. This scoping is unconditional and independent of the Review Decision footer gate below.
  12. Dead-code lens (always on). When the diff touches source code, run bin/swe-workbench-dead-code-scan --root <repo-root> --funnel grep (via Bash — the grep funnel keeps the lens fast and self-contained) and intersect the envelope's candidates with the diff. A diff-added finding is a candidate row whose path:line lands on a + line — label it "test-only" when test_only: true (nothing but tests reference it) and "unreferenced" when false — severity Low (hygiene). A diff-orphaned finding is any candidate row (test_only true or false) whose symbol also appears in the diff's deleted non-test lines: the diff removed the last production caller — severity Medium. Cite the row's detected_by provenance in the finding, and for rows provenance-labeled grep, read one reference from references (test-only) or Grep the symbol once (unreferenced) before flagging — text matches can be fooled by shadowing. Never flag safe-keep or justified rows, nor a candidate whose non-empty note states a deferral or contract (treat it as justified — kept). If warnings carries a file-cap entry the index was truncated: skip this lens and say so rather than flagging from a partial index. When the symbol is intentional, the suggested fix is to add a dead-code: keep <reason> marker line above it — future scans then auto-classify it as kept. Dead-code findings alone never push the Review Decision past APPROVE.

Read the full file on GitHub · 225 lines

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. 13d ago Changed · +1 lines f09edc9ecdf4
  2. 21d ago Changed · -14 tokens per session ef5d395df829
  3. 24d ago Changed · +1 lines eec7601bebe8
  4. 1mo ago First seen · 223 lines · 38 tokens per session scan A edf889b16502

Subscribe to this mod's changes

reviewer is an agent published in the GitHub repository lugassawan/swe-workbench (3 stars, last pushed today), licensed MIT. It adds 24 tokens to every session and 4,011 once invoked, about $0.0001 per session on Opus 5.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.

Related

Other agents, from other repositories

consistency-qa

The brooks-lint verification gate. Runs npm run validate, npm test, and npm run evals, then cross-checks the documents the validator can't fully diff — the four plugin manifests, all six README badges, the docs landing-page JSON-LD, CHANGELOG, AGENTS.md, GEMINI.md, and the derived book count — for drift. Reports…

hyhmrright/brooks-lint · 123 tokens

eval-curator

Authors and maintains the brooks-lint eval suite in evals/evals.json — the benchmark scenarios covering R1–R6 (code decay) and T1–T6 (test decay), including the false-positive / tradeoff cases that must NOT be flagged. Ensures every new risk code or skill gets paired coverage and that the suite passes npm run evals.…

hyhmrright/brooks-lint · 97 tokens

release-manager

Cuts a brooks-lint release: sets the version in package.json, propagates it across the four plugin manifests and every version-bearing text file via npm run bump, writes the CHANGELOG entry, re-validates, then commits, pushes to main, tags, and publishes the GitHub release. Final pipeline stage of the brooks-harness…

hyhmrright/brooks-lint · 85 tokens

trigger-boundary-auditor

Audits the trigger boundaries of the six brooks-lint skills for false-triggering risk and routing collisions. Use before a release, or after editing any SKILL.md description: field. Read-only — reports findings, makes no edits.

hyhmrright/brooks-lint · 56 tokens

performance-engineer

Performance specialist. Owns SLO/SLA budget design, load test execution (k6/Locust/Gatling), latency regression analysis, flame graph interpretation, and capacity planning. Runs after senior-dev, before QA. Writes docs/performance/PERF-{slug}.md. Activated when performance-sla is set in PROJECT.md, or archetype is…

avelikiy/great_cto · 83 tokens

builder

Use this agent when executing plans, implementing features, building tasks from a PLAN.md, or running TDD implementation cycles. This is the primary implementation agent. Examples: Context: A plan has been created and is ready for execution. user: "Build the authentication phase" assistant: "I'll dispatch the builder…

lgbarn/shipyard · 266 tokens