Agent skill
code-reviewer
Reviews code for logic flaws, edge cases, performance bottlenecks, security vulnerabilities, maintainability concerns, architecture best practices, and adherence to local patterns and CLAUDE.md guidelines. Use when users ask for code review or analysis, including reviewing uncommitted changes, the last local commit, unpushed code, or a specific GitHub pull request.
Install this agent skill to your Project
npx add-skill https://github.com/kwiggen/claude-code-plugin/tree/main/skills/code-reviewer
SKILL.md
Code Reviewer Skill
Before Reviewing
- Gather context – Read related files to understand existing patterns, naming conventions, and architectural decisions in the codebase.
- Run automated checks – If available, run linters, type-checkers, and tests to catch mechanical issues first.
- Understand the change – Identify the purpose of the change (bug fix, feature, refactor) to calibrate the review appropriately.
- Check git history – For non-trivial changes, review git blame on modified sections to understand why code exists, past bug fixes that might be undone, and related commits that provide context.
Evaluation Criteria
Review the code against these categories:
-
Correctness – Logic bugs, incorrect assumptions, unhandled edge cases, race conditions, error handling gaps.
-
Security – Injection risks, authentication/authorization flaws, sensitive data exposure, unsafe dependencies.
-
Performance – Algorithmic complexity, N+1 queries, memory leaks, unnecessary computation, missing caching opportunities.
-
Maintainability – Code clarity, naming, complexity, duplication, testability, documentation.
-
Architecture – Modularity, separation of concerns, appropriate abstractions, dependency direction.
-
Testing – Test coverage for new code, test quality, edge case coverage.
-
Local Standards – Adherence to project conventions, patterns, and style guides found in the codebase.
-
Breaking Changes – API compatibility, migration requirements, backwards compatibility (when applicable).
-
CLAUDE.md Compliance – Check changes against CLAUDE.md files in:
- Repository root
- Directories containing modified files
- Parent directories of modified files
Only flag violations explicitly stated in CLAUDE.md. Quote the guideline when flagging.
Output Format
Summary
Brief overview of the change quality and key concerns.
What's Done Well
Highlight 1–3 positive aspects worth preserving or replicating.
Findings
Organize findings by severity (only report issues with confidence ≥50):
- 🔴 Critical (confidence%) – Must fix before merge (security, data loss, crashes)
- 🟠 Major (confidence%) – Should fix, significant quality/maintainability impact
- 🟡 Minor (confidence%) – Suggested improvements, lower priority
- ⚪ Nit (confidence%) – Style preferences, optional polish
For each finding include:
- File and line reference (e.g.,
src/auth.ts:42) - Confidence score (0-100) with brief rationale
- Clear description of the issue
- Concrete suggestion for fixing it
- CLAUDE.md reference if applicable (quote the specific guideline)
Confidence scale:
- 90-100: Verified real issue, will cause problems in practice
- 70-89: Likely real issue, worth fixing
- 50-69: Possibly real, author should evaluate
- Below 50: Do not report – too uncertain
Pre-existing Issues Worth Noting
(Optional) Issues spotted that predate this change – for awareness only.
Recommended Next Steps
Prioritized action items for the author.
What NOT to Flag
Avoid false positives by NOT flagging:
- Pre-existing issues not introduced by this change
- Issues that linters, type-checkers, or tests will catch
- Pedantic nitpicks a senior engineer wouldn't mention
- General code quality concerns (unless explicitly required in CLAUDE.md)
- Issues with lint ignore comments or explicit suppressions
- Changes in functionality that are clearly intentional
- Issues on lines the author didn't modify in this change
Scope of Review
- Focus ONLY on code that was added or modified in this change
- If you spot a pre-existing issue, note it separately under "Pre-existing Issues Worth Noting" but do NOT include in the main findings
- When in doubt whether an issue is new or pre-existing, check the diff carefully – if the line wasn't touched, don't flag it
Guidelines
- Focus primarily on the changed code, but flag systemic issues if they impact the change.
- Be specific and actionable — avoid vague feedback like "make this cleaner".
- If context is ambiguous or the change purpose is unclear, ask clarifying questions before finalizing.
- Calibrate depth to change size: see "Review Depth Calibration" below.
Review Depth Calibration
Adjust review intensity based on change scope:
- Light review (1-3 files, simple change): Summary + key findings only. Skip "What's Done Well" if nothing notable.
- Standard review (4-10 files, feature or refactor): Full template with all sections.
- Deep review (security-adjacent changes — auth, payments, data access, crypto): Full template + explicit security section. Always use full depth regardless of file count.
Examples
WRONG vs. CORRECT: Writing Findings
WRONG — vague finding:
🟠 Major — This function could have issues with error handling.
CORRECT — actionable finding with evidence:
🟠 Major (82%)
src/api/users.ts:47—fetchUserswallows the database error and returnsnull, making it impossible for callers to distinguish "user not found" from "database unreachable." Return aResult<User, DbError>or rethrow with context.
WRONG vs. CORRECT: Scope Discipline
WRONG — flagging pre-existing code outside the diff:
🟡 Minor — The
loggermodule on line 12 usesconsole.loginstead of a structured logger. (Line 12 was not modified in this change.)
CORRECT — respecting diff boundaries:
(Line 12 was not modified — no finding reported. If important, noted under "Pre-existing Issues Worth Noting.")
Pre-Delivery Checklist
Before presenting a review, verify:
- Every finding includes a
file:linereference - Every finding includes a confidence percentage
- No findings flag lines outside the diff (scope discipline)
- CLAUDE.md guidelines are quoted verbatim when cited
- "What's Done Well" items are specific, not generic praise
- Review depth matches change scope (light/standard/deep)
- Pre-existing issues are in their own section, not main findings
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gemini-reviewer
Dual code review: gets independent reviews from both Claude and Gemini API, then synthesizes agreements, unique findings, and a verdict. Use when users say "gemini review", "dual review", or want a second-perspective code review. Requires GEMINI_API_KEY environment variable to be set.
pr-writer
This skill should be used when the user asks to "create a PR", "open a pull request", "write a PR description", "push and create PR", or needs to generate a best-in-class pull request description based on commits. Provides industry-standard PR description formatting following conventional commits, Microsoft Engineering Playbook, and HackerOne best practices.
antipattern-detector
Detects common failure patterns in proposals, architectures, plans, and decisions. Use when reviewing any plan to identify red flags before they become problems. Covers architecture, timeline, team, process, and technology anti-patterns. Works on any domain — not just code.
github-insights
Provides team GitHub activity insights including merged PRs, contributor leaderboards, merge velocity, review participation, and PR size analysis. Use when users ask about team productivity, who merged PRs, code contribution stats, review patterns, or developer activity.
teach-me
Pedagogical code walkthrough that teaches developers about their own code. Explains choices, tradeoffs, alternatives, and refactoring opportunities. Use when users say "teach me", "explain my changes", "walk me through", "what did I build", or want to understand their code at a deeper level. Works on uncommitted changes, last commit, unpushed commits, or a PR.
issue-creator
Creates GitHub issues and adds them to the ExamJam V.Next 25 project (project 19) with custom field values. Handles the complete workflow of gathering issue details, fetching project field options dynamically, creating the issue, adding it to the project, and setting Priority, Type, Initiative, and Status fields.
Didn't find tool you were looking for?