/review
Reviews code for quality, security, correctness. Triggers: code review, quality review, security review, review PR, review branch.
$ npx -y skills add softspark/ai-toolkit --skill review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/review
Context preview
The summary Claude sees to decide when to auto-load this skill.
Reviews code for quality, security, correctness. Triggers: code review, quality review, security review, review PR, review branch.
SKILL.md
review.SKILL.mdname: review
description: "Reviews code for quality, security, correctness. Triggers: code review, quality review, security review, review PR, review branch."
user-invocable: true
effort: high
argument-hint: "[target: branch, pr, file path, or staged changes]"
agent: code-reviewer
context: fork
allowed-tools: Read, Grep, Glob, Bash
Code Review
$ARGUMENTS
Reviews code changes for quality and issues.
Changed files context
- Changes: !`git diff --stat main...HEAD 2>/dev/null || git diff --cached --stat 2>/dev/null || echo "no changes detected"`
Signal Collection (never stop at the first red)
Collect every failing signal up front, then review the diff in full **anyway**:
| Signal | How to read it | |--------|----------------| | Merge conflict with base | `gh pr view --json mergeable,mergeStateStatus` or `git merge-tree` | | Failing CI checks | `gh pr checks` or the platform equivalent | | Lint / typecheck failure | the project's own commands |
Each failing signal becomes a `blocker` finding. **None of them ends the run.**
A review that aborts on the first red signal spends the whole cycle repeating what the tracker already displayed, while the finding that would have told the author something new never gets written. One invocation produces the most complete picture of the change that it can.
Automated Diff Analysis
Before starting manual review, run the diff analyzer script to get a structured risk assessment:
python3 ${CLAUDE_SKILL_DIR}/scripts/diff-analyzer.py [base_branch]
# Default base branch: main
# Example: python3 ${CLAUDE_SKILL_DIR}/scripts/diff-analyzer.py developThe script outputs JSON with:
- **files**: each changed file with additions, deletions, category (security/test/config/migration/infra/docs/logic), and risk level
- **risk_score**: overall assessment (high/medium/low)
- **hotspots**: top 5 files by additions
- **secrets_scan**: potential secret leaks detected in added lines
- **test_coverage_estimate**: whether test files accompany logic changes (good/partial/none)
- **parallel_review_recommended**: boolean flag
If the script reports `parallel_review_recommended: true`, use the Parallel Review (Agent Teams) mode below.
---
Parallel Review (Agent Teams)
For significant PRs or large changesets, create a parallel review team:
Create an agent team to review [target]:
- Teammate 1 (security-auditor): "Review for security vulnerabilities, auth issues,
injection risks, secret leaks. Report with severity ratings." Use Opus.
- Teammate 2 (performance-optimizer): "Check for N+1 queries, memory leaks,
unnecessary allocations, caching opportunities. Report with impact ratings." Use Opus.
- Teammate 3 (test-engineer): "Validate test coverage, edge cases, mock quality,
missing assertions. Report coverage gaps." Use Opus.
Each reviewer should report findings independently. Do NOT modify files.
After all reviewers complete: 1. Synthesize findings into unified Code Review Report 2. Prioritize by severity (blocker > major > minor > nit) 3. Issue verdict per the verdict rule below — not by impression
> **When to use**: PRs with >5 files changed, cross-module changes, security-sensitive code. > **READ-ONLY**: No teammate should modify files during review.
---
Sequential Review (Default)
1. **Reads** changed files 2. **Analyzes** for issues 3. **Checks** best practices 4. **Reports** findings
Review Scope
| Target | What's Reviewed | |--------|-----------------| | (none) | Staged changes | | `branch` | Branch vs main | | `pr` | Pull request changes | | `file.ts` | Specific file |
Review Checklist
Code Quality
- [ ] Clear naming
- [ ] Proper error handling
- [ ] No code duplication
- [ ] Appropriate abstractions
Security (OWASP Top 10)
- [ ] A01: Proper auth/authorization on all endpoints
- [ ] A02: No weak crypto, HTTPS for external comms
- [ ] A03: Input validation, parameterized queries, output encoding (XSS)
- [ ] A04: Threat model assumptions documented for new features
- [ ] A05: No debug mode, default credentials, or verbose errors in prod config
- [ ] A06: Dependencies checked for known CVEs
- [ ] A07: No hardcoded secrets, session management correct
- [ ] A08: Integrity checks on deserialized data, CI/CD pipeline safety
- [ ] A09: Security-relevant events logged (without PII)
- [ ] A10: External URL handling validates scheme/host (SSRF prevention)
- [ ] Cross-scope replay: can an identifier from one tenant/user/org be replayed in another?
- [ ] Fails closed wherever the path affects security, money, or data retention
API / Contract Changes
- [ ] Backward compatibility preserved (no silent breaking changes)
- [ ] API versioning updated if contract changed
- [ ] Schema validation on request/response
- [ ] Error responses follow project convention
- [ ] Wire-level contracts checked, not just code signatures: HTTP routes, webhook payloads, event/queue schemas
Concurrency / Async
- [ ] Shared mutable state protected (locks, atomics, channels)
- [ ] No fire-and-forget promises without error handling
- [ ] Database transactions scoped correctly (no long-held locks)
- [ ] Race condition risk assessed for concurrent access paths
Migrations / Schema Changes
- [ ] Migration is reversible (has rollback path)
- [ ] No table locks on large tables during peak hours
- [ ] Data backfill handles NULL/missing values
- [ ] Indexes added for new query patterns
Performance
- [ ] No N+1 queries
- [ ] Appropriate caching
- [ ] No memory leaks
- [ ] Optimized loops
Testing
- [ ] Tests for new code
- [ ] Edge cases covered
- [ ] Mocks appropriate
Severity & Verdict
| Tier | Meaning | Merge impact | |------|---------|--------------| | `blocker` | Causes damage: data loss, security hole, money, corruption | Blocks merge, no exceptions | | `major` | Real defect that will bite in production | Blocks merge unless waived in writing | | `minor` | Should be fixed, not worth blocking on | Does not
Read more
name: review description: "Reviews code for quality, security, correctness. Triggers: code review, quality review, security review, review PR, review branch." user-invocable: true effort: high argument-hint: "[target: branch, pr, file path, or staged changes]" agent: code-reviewer context: fork allowed-tools: Read, Grep, Glob, Bash
Code Review
$ARGUMENTS
Reviews code changes for quality and issues.
Changed files context
- Changes: !`git diff --stat main...HEAD 2>/dev/null || git diff --cached --stat 2>/dev/null || echo "no changes detected"`
Signal Collection (never stop at the first red)
Collect every failing signal up front, then review the diff in full **anyway**:
| Signal | How to read it | |--------|----------------| | Merge conflict with base | `gh pr view --json mergeable,mergeStateStatus` or `git merge-tree` | | Failing CI checks | `gh pr checks` or the platform equivalent | | Lint / typecheck failure | the project's own commands |
Each failing signal becomes a `blocker` finding. **None of them ends the run.**
A review that aborts on the first red signal spends the whole cycle repeating what the tracker already displayed, while the finding that would have told the author something new never gets written. One invocation produces the most complete picture of the change that it can.
Automated Diff Analysis
Before starting manual review, run the diff analyzer script to get a structured risk assessment:
python3 ${CLAUDE_SKILL_DIR}/scripts/diff-analyzer.py [base_branch]
# Default base branch: main
# Example: python3 ${CLAUDE_SKILL_DIR}/scripts/diff-analyzer.py developThe script outputs JSON with:
- **files**: each changed file with additions, deletions, category (security/test/config/migration/infra/docs/logic), and risk level
- **risk_score**: overall assessment (high/medium/low)
- **hotspots**: top 5 files by additions
- **secrets_scan**: potential secret leaks detected in added lines
- **test_coverage_estimate**: whether test files accompany logic changes (good/partial/none)
- **parallel_review_recommended**: boolean flag
If the script reports `parallel_review_recommended: true`, use the Parallel Review (Agent Teams) mode below.
---
Parallel Review (Agent Teams)
For significant PRs or large changesets, create a parallel review team:
Create an agent team to review [target]: - Teammate 1 (security-auditor): "Review for security vulnerabilities, auth issues, injection risks, secret leaks. Report with severity ratings." Use Opus. - Teammate 2 (performance-optimizer): "Check for N+1 queries, memory leaks, unnecessary allocations, caching opportunities. Report with impact ratings." Use Opus. - Teammate 3 (test-engineer): "Validate test coverage, edge cases, mock quality, missing assertions. Report coverage gaps." Use Opus. Each reviewer should report findings independently. Do NOT modify files.
After all reviewers complete: 1. Synthesize findings into unified Code Review Report 2. Prioritize by severity (blocker > major > minor > nit) 3. Issue verdict per the verdict rule below — not by impression
> **When to use**: PRs with >5 files changed, cross-module changes, security-sensitive code. > **READ-ONLY**: No teammate should modify files during review.
---
Sequential Review (Default)
1. **Reads** changed files 2. **Analyzes** for issues 3. **Checks** best practices 4. **Reports** findings
Review Scope
| Target | What's Reviewed | |--------|-----------------| | (none) | Staged changes | | `branch` | Branch vs main | | `pr` | Pull request changes | | `file.ts` | Specific file |
Review Checklist
Code Quality
- [ ] Clear naming
- [ ] Proper error handling
- [ ] No code duplication
- [ ] Appropriate abstractions
Security (OWASP Top 10)
- [ ] A01: Proper auth/authorization on all endpoints
- [ ] A02: No weak crypto, HTTPS for external comms
- [ ] A03: Input validation, parameterized queries, output encoding (XSS)
- [ ] A04: Threat model assumptions documented for new features
- [ ] A05: No debug mode, default credentials, or verbose errors in prod config
- [ ] A06: Dependencies checked for known CVEs
- [ ] A07: No hardcoded secrets, session management correct
- [ ] A08: Integrity checks on deserialized data, CI/CD pipeline safety
- [ ] A09: Security-relevant events logged (without PII)
- [ ] A10: External URL handling validates scheme/host (SSRF prevention)
- [ ] Cross-scope replay: can an identifier from one tenant/user/org be replayed in another?
- [ ] Fails closed wherever the path affects security, money, or data retention
API / Contract Changes
- [ ] Backward compatibility preserved (no silent breaking changes)
- [ ] API versioning updated if contract changed
- [ ] Schema validation on request/response
- [ ] Error responses follow project convention
- [ ] Wire-level contracts checked, not just code signatures: HTTP routes, webhook payloads, event/queue schemas
Concurrency / Async
- [ ] Shared mutable state protected (locks, atomics, channels)
- [ ] No fire-and-forget promises without error handling
- [ ] Database transactions scoped correctly (no long-held locks)
- [ ] Race condition risk assessed for concurrent access paths
Migrations / Schema Changes
- [ ] Migration is reversible (has rollback path)
- [ ] No table locks on large tables during peak hours
- [ ] Data backfill handles NULL/missing values
- [ ] Indexes added for new query patterns
Performance
- [ ] No N+1 queries
- [ ] Appropriate caching
- [ ] No memory leaks
- [ ] Optimized loops
Testing
- [ ] Tests for new code
- [ ] Edge cases covered
- [ ] Mocks appropriate
Severity & Verdict
| Tier | Meaning | Merge impact | |------|---------|--------------| | `blocker` | Causes damage: data loss, security hole, money, corruption | Blocks merge, no exceptions | | `major` | Real defect that will bite in production | Blocks merge unless waived in writing | | `minor` | Should be fixed, not worth blocking on | Does not
Professional-grade AI coding toolkit with multi-platform support. Machine-enforced safety, 109 skills, 44 agents, expanded lifecycle hooks, persona presets, experimental opt-in plugin packs, and benchmark tooling — works with Claude Code, Claude Chat/Cowork,
Repo: softspark/ai-toolkit
Other skills on ai-toolkit.
- /ai-toolkit-rules
Mandatory engineering, security, testing, git, performance, quality, and response rules. Claude MUST load this skill for every technical, coding, debugging, review, architecture, DevOps, data, or file-editing task in Chat or Cowork.
Open skill - /mem-search
Search past coding sessions using natural language. Finds relevant observations, decisions, and context from previous work.
Open skill - /a11y-validate
Accessibility validator: WCAG 2.1 AA, EN 301 549, EAA. Triggers: a11y, accessibility, WCAG, EAA, ARIA, contrast, keyboard, screen reader.
Open skill - /agent-creator
Creates new specialized agents with frontmatter, tools, delegation. Triggers: new agent, create agent, agent scaffold, specialized agent.
Open skill - /analyze
Analyzes code quality, complexity, patterns across codebase. Triggers: quality report, hotspot scan, code analysis, architecture signal.
Open skill - /api-patterns
REST/GraphQL API design: naming, versioning, pagination, idempotency, OpenAPI. Triggers: API design, REST, GraphQL, OpenAPI, Swagger, idempotency, rate limit.
Open skill

