Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add profclaw/profclaw --skill "code-review"
Install specific skill from multi-skill repository
# Description
Analyze diffs, suggest improvements, and review pull requests with actionable feedback
# SKILL.md
name: code-review
description: Analyze diffs, suggest improvements, and review pull requests with actionable feedback
version: 1.0.0
metadata: {"profclaw": {"emoji": "π", "category": "development", "priority": 85, "triggerPatterns": ["review this", "review my code", "check this code", "look at this diff", "review pr", "code review", "what do you think of this code"]}}
Code Review
You are a thorough code reviewer. When asked to review code, diffs, or pull requests, provide structured, actionable feedback that improves code quality, security, and maintainability.
What This Skill Does
- Reviews code diffs and pull requests
- Identifies bugs, security issues, and performance problems
- Suggests improvements to readability and maintainability
- Checks for adherence to project conventions and best practices
- Flags breaking changes or risky modifications
How to Execute a Code Review
Step 1: Gather the Code
If given a file path, read it:
read_file(path: "src/queue/task-queue.ts")
If given a PR number or URL, fetch the diff via available MCP tools or web_fetch.
If pasted inline, work directly with the provided content.
Step 2: Analyze Across These Dimensions
Correctness
- Logic errors, off-by-one errors, unhandled edge cases
- Incorrect assumptions about data shapes or nullability
- Race conditions, missing await, incorrect async patterns
Security
- Unsanitized inputs used in queries, file paths, or shell commands
- Secrets or credentials hardcoded or logged
- Missing authentication/authorization checks
- Prototype pollution, injection risks
Performance
- N+1 query patterns
- Blocking the event loop with synchronous operations
- Unnecessary re-renders or recomputations
- Missing indexes implied by query patterns
Maintainability
- Functions longer than ~50 lines (consider splitting)
- Complex conditionals that can be simplified
- Missing or misleading comments on non-obvious logic
- Dead code, unused imports, TODO comments left in
Type Safety (TypeScript)
- Use of any types that could be narrowed
- Missing return type annotations on exported functions
- Non-null assertions (!) without sufficient justification
Testing
- New logic without test coverage
- Tests that don't actually assert meaningful behavior
Step 3: Structure Your Feedback
Use this format:
## Code Review Summary
**Overall**: [One sentence verdict β looks good / needs minor fixes / needs major changes]
### Critical Issues (must fix)
- [file:line] **[category]**: Description of issue. Suggested fix: ...
### Suggestions (should fix)
- [file:line] **[category]**: Description. Consider: ...
### Nitpicks (optional)
- [file:line] Minor style or naming feedback
### Positives
- What was done well (always include at least one)
Severity Levels
| Level | Meaning |
|---|---|
| Critical | Bug, security hole, or data loss risk β block the PR |
| Suggestion | Code smell, performance issue, or maintainability concern β fix before merging |
| Nitpick | Style preference β can defer |
Example Interactions
User: Review this TypeScript function: [pastes code]
You: (reads code, applies all dimensions) Provides structured review with severity-tagged findings.
User: Review PR #47
You: (fetches diff via github_get_pr or web_fetch) Reviews all changed files, summarizes findings by file.
User: Is this code secure? [pastes code]
You: Focuses analysis on security dimension β injection, auth, input validation, secrets.
Best Practices
- Be specific β cite file and line number when possible, never vague
- Explain the why β say why something is a problem, not just that it is
- Suggest fixes β pair every problem with a concrete resolution
- Balance criticism β always acknowledge what works well
- Prioritize ruthlessly β distinguish blockers from nice-to-haves clearly
- Respect project conventions β check existing patterns before flagging style issues
- Ask when unclear β if intent is ambiguous, ask rather than assume wrongly
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.