What is this?
Code Review Skill is a production-ready skill for Claude Code that transforms AI-assisted code review from vague suggestions into a structured, consistent, and expert-level process.
It covers 20+ languages and frameworks with over 21,000 lines of carefully curated review guidelines — loaded progressively to minimize context window usage.
✨ Key Features
- Progressive Disclosure — Core skill is ~220 lines; language guides (~200–1,100 lines each) load only when needed.
- Four-Phase Review Process — Structured workflow from understanding scope to delivering clear feedback.
- Severity Labeling — Every finding is categorized:
blocking · important · nit · suggestion · learning · praise
- Security-First — Dedicated security checklists per language ecosystem.
- Collaborative Tone — Questions over commands, suggestions over mandates.
- Automation Awareness — Clearly separates what human review should catch vs. what linters handle.
🌐 Supported Languages & Frameworks
🔄 The Four-Phase Review Process
Phase 1 - Context Gathering
Understand PR scope, linked issues, and intent
|
v
Phase 2 - High-Level Review
Architecture - Performance impact - Test strategy
|
v
Phase 3 - Line-by-Line Analysis
Logic - Security - Maintainability - Edge cases
|
v
Phase 4 - Summary & Decision
Structured feedback - Approval status - Action items
🏷️ Severity Labels
| Label | Meaning |
|---|
🔴 blocking | Must be fixed before merge |
🟠 important | Should be fixed; may block depending on context |
🟡 nit | Minor style or preference issue |
🔵 suggestion | Optional improvement worth considering |
📚 learning | Educational note for the author |
🌟 praise | Explicitly highlight great work |
📁 Repository Structure
code-review-skill/
|
+-- SKILL.md # Core skill - loaded on activation (~220 lines)
+-- README.md
+-- LICENSE
+-- CONTRIBUTING.md
|
+-- reference/ # On-demand language guides
| +-- react.md # React 19 / Next.js / TanStack Query v5
| +-- vue.md # Vue 3.5 Composition API
| +-- angular.md # Angular 17+ / Signals / Zoneless
| +-- svelte.md # Svelte 5 / SvelteKit
| +-- rust.md # Rust ownership, async/await, unsafe
| +-- typescript.md # TypeScript strict mode, generics, ESLint
| +-- nestjs.md # NestJS DI, Guards, Interceptors, DTOs
| +-- java.md # Java 17/21 & Spring Boot 3
| +-- java8.md # Java 8 & Spring Boot 2 (legacy)
| +-- php.md # PHP 8.x types, PDO, security, Composer
| +-- python.md # Python async, typing, pytest
| +-- django.md # Django / DRF security, serializers, async
| +-- fastapi.md # FastAPI Depends, Pydantic v2, async, test-driven verification
| +-- go.md # Go goroutines, channels, context, interfaces
| +-- kotlin.md # Kotlin / Android coroutines, Compose, Flow
| +-- swift.md # Swift 5.9+/6, SwiftUI, concurrency, optionals
| +-- csharp.md # C# 12 / .NET 8, EF Core, ASP.NET Core
| +-- c.md # C memory safety, UB, error handling
| +-- cpp.md # C++ RAII, move semantics, exception safety
| +-- zig.md # Zig allocators, errors, comptime, C interop
| +-- qt.md # Qt object model, signals/slots, GUI perf
| +-- css-less-sass.md # CSS/Less/Sass variables, responsive design
| +-- architecture-review-guide.md # SOLID, anti-patterns, coupling/cohesion
| +-- code-quality-universal.md # Reuse audit, parameter sprawl, TOCTOU, no-op updates
| +-- performance-review-guide.md # Core Web Vitals, N+1, memory leaks
| +-- security-review-guide.md # Security checklist (all languages)
| +-- common-bugs-checklist.md # Language-specific bug patterns
| +-- code-review-best-practices.md # Communication & process guidelines
|
+-- reference/cross-cutting/ # Language-agnostic cross-cutting patterns
| +-- sql-injection-prevention.md # Parameterized queries, 6 languages
| +-- xss-prevention.md # Output encoding, CSP, 5 frameworks
| +-- n-plus-one-queries.md # N+1 queries, eager loading, 5 languages
| +-- error-handling-principles.md # Error handling principles, 7 languages
| +-- async-concurrency-patterns.md # Concurrency patterns, 7 languages
|
+-- assets/
| +-- review-checklist.md # Quick reference checklist
| +-- pr-review-template.md # PR review comment template
|
+-- scripts/
+-- pr-analyzer.py # PR complexity analyzer
🚀 Installation
Clone to your Claude Code skills directory:
# macOS / Linux
git clone https://github.com/awesome-skills/code-review-skill.git \
~/.claude/skills/code-review-skill
# Windows (PowerShell)
git clone https://github.com/awesome-skills/code-review-skill.git `
"$env:USERPROFILE\.claude\skills\code-review-skill"
Or add to an existing plugin:
cp -r code-review-skill ~/.claude/plugins/your-plugin/skills/code-review/
💡 Usage
Once installed, activate the skill in your Claude Code session:
Use code-review-skill to review this PR
Or create a custom slash command in .claude/commands/:
<!-- .claude/commands/review.md -->
Use code-review-skill to perform a thorough review of the changes in this PR.
Focus on: security, performance, and maintainability.
Example prompts:
| Prompt | What happens |
|---|
Review this React component | Loads react.md - checks hooks, Server Components, Suspense patterns |
Review this Java PR | Loads java.md - checks virtual threads, JPA, Spring Boot 3 patterns |
Review this Java 8 / Spring Boot 2 PR | Loads java8.md - Stream/Optional, java.time, RestTemplate timeouts, javax.* |
Security review of this Go service | Loads go.md + security-review-guide.md |
Architecture review | Loads architecture-review-guide.md - SOLID, anti-patterns, coupling |
Performance review | Loads performance-review-guide.md - Web Vitals, N+1, complexity |
🔬 Highlights by Language
useActionState - Unified form state management
useFormStatus - Access parent form status without prop drilling
useOptimistic - Optimistic UI updates with automatic rollback
- Server Components & Server Actions patterns (Next.js 15+)
- Suspense boundary design, Error Boundary integration, streaming SSR
use() Hook for consuming Promises
- Java 17/21: Records, Pattern Matching for Switch, Text Blocks, Sealed Classes
- Virtual Threads (Project Loom): High-throughput I/O patterns
- Spring Boot 3: Constructor injection,
@ConfigurationProperties, ProblemDetail
- JPA Performance: Solving N+1, correct
equals/hashCode on Entities
- Java 8: Lambda, Stream/
Collectors, Optional, java.time (no Records / virtual threads)
- Concurrency: bounded thread pools,
CompletableFuture + explicit executors
- Spring Boot 2:
javax.*, constructor injection, RestTemplate timeouts
- JPA / Hibernate 5: N+1, Entity
equals/hashCode, UTC time mapping pitfalls
- Ownership patterns and common pitfalls
unsafe code review requirements (mandatory SAFETY comments)
- Async/await - avoiding blocking in async context, cancellation safety
- Error handling:
thiserror for libraries, anyhow for applications
- Goroutine lifecycle management and leak prevention
- Channel patterns, select usage
context.Context propagation
- Interface design (accept interfaces, return structs)
- Error wrapping with
%w
- C: Pointer/buffer safety, undefined behavior, resource cleanup, integer overflow
- C++: RAII ownership, Rule of 0/3/5, move semantics, exception safety,
noexcept
- Qt: Object parent/child memory model, thread-safe signal/slot connections, GUI performance
🤝 Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
Ideas:
- New language guides (Ruby, Elixir, Scala...)
- Framework-specific guides (Laravel, Spring WebFlux...)
- Additional checklists and templates
- Translations of core documentation
📄 License
MIT © awesome-skills