Code review automation for TypeScript, JavaScript, Python
Code reviewer

Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C#, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter. Analyzes PRs for complexity and risk, checks code quality for SOLID violations and code smells,…
---
name: "code-reviewer"
description: Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C#, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter. Analyzes PRs for complexity and risk, checks code quality for SOLID violations and code smells, generates review reports. Use when reviewing pull requests, analyzing code quality, identifying issues, generating review checklists.
---
# Code Reviewer
Automated code review tools for analyzing pull requests, detecting code quality issues, and generating review reports.
---
## How This Skill Is Organized
```
code-reviewer/
SKILL.md ← you are here (tools + dispatch table)
rules/
universal.md ← security, async, resources, exceptions, performance — all languagesOverview
Automated code review tools for analyzing pull requests, detecting code quality issues, and generating review reports.
Manual install (npx, ZIP)
npx skills add alirezarezvani/claude-skills --skill code-reviewer -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/alirezarezvani/claude-skills/tar.gz/19392f7a0826 \
| tar -xz -C ~/.claude/skills --strip-components=3 claude-skills-19392f7a0826/engineering-team/skills/code-reviewerNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/353d176cf6ef746f51c7/code-reviewer.zip" -OutFile "$env:TEMP\code-reviewer.zip"; Expand-Archive "$env:TEMP\code-reviewer.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md6.4 KBREADME.md4.8 KBassets/6 files · 13.1 KBexpected_outputs/6 files · 14.8 KBlanguages/13 files · 53.1 KBrules/1 file · 2.1 KBscripts/3 files · 68.7 KB
Read the files here
alirezarezvani/
- sample_c_clean.c1.5 KB
- sample_c_smells.c1.5 KB
- sample_csharp_clean.cs3.6 KB
- sample_csharp_smells.cs2.7 KB
- sample_java_clean.java1.9 KB
- sample_java_smells.java2.0 KB
- sample_c_clean_quality.json1.3 KB
- sample_c_smells_quality.json4.1 KB
- sample_csharp_clean_quality.json2.8 KB
- sample_csharp_smells_quality.json3.6 KB
- sample_java_clean_quality.json999 B
- sample_java_smells_quality.json2.1 KB
Show the full text184 lines
Code Reviewer
Automated code review tools for analyzing pull requests, detecting code quality issues, and generating review reports.
How This Skill Is Organized
code-reviewer/
SKILL.md ← you are here (tools + dispatch table)
rules/
universal.md ← security, async, resources, exceptions, performance — all languages
languages/
python.md ← Python-specific rules + idioms
typescript.md ← TypeScript / JavaScript-specific rules + idioms
go.md ← Go-specific rules + idioms
swift.md ← Swift-specific rules + idioms
kotlin.md ← Kotlin-specific rules + idioms
csharp.md ← C# / .NET-specific rules + idioms
java.md ← Java-specific rules + idioms
c.md ← C -specific rules + idioms
cpp.md ← C++ -specific rules + idioms
rust.md ← Rust -specific rules + idioms
ruby.md ← Ruby -specific rules + idioms
php.md ← PHP-specific rules + idioms
dart.md ← Dart / Flutter-specific rules + idioms
Loading order for every review
- This file (
SKILL.md) — tools and thresholds rules/universal.md— always, for every language- The matching
languages/*.md— one file based on the extension table below
That is always exactly 2 additional files, regardless of scope.
| Extension(s) | Load |
|---|---|
.py |
languages/python.md |
.ts, .tsx, .js, .jsx, .mjs |
languages/typescript.md |
.go |
languages/go.md |
.swift |
languages/swift.md |
.kt, .kts |
languages/kotlin.md |
.cs, .csx, .razor, .cshtml |
languages/csharp.md |
.java |
languages/java.md |
.c, .h |
languages/c.md |
.cpp, .cc, .cxx, .hpp, .hh, .hxx |
languages/cpp.md |
.rs |
languages/rust.md |
.rb, .rake, .gemspec, .ru |
languages/ruby.md |
.php, .phtml |
languages/php.md |
.dart |
languages/dart.md |
Tools
PR Analyzer
Analyzes git diff between branches to assess review complexity and identify risks.
# Analyze current branch against main
python scripts/pr_analyzer.py /path/to/repo
# Compare specific branches
python scripts/pr_analyzer.py . --base main --head feature-branch
# JSON output for integration
python scripts/pr_analyzer.py /path/to/repo --json
What it detects (universal — see also language file for language-specific signals):
- Hardcoded secrets (passwords, API keys, tokens, connection strings)
- SQL / query injection patterns
- Debug statements left in production code
- Lint / analyzer suppression annotations
- TODO/FIXME comments
Language-specific detections are defined in each languages/*.md file.
Output includes:
- Complexity score (1-10)
- Risk categorization (critical, high, medium, low)
- File prioritization for review order
- Commit message validation
Code Quality Checker
Analyzes source code for structural issues, code smells, and SOLID violations.
# Analyze a directory
python scripts/code_quality_checker.py /path/to/code
# Analyze specific language
# Valid values: python, typescript, javascript, go, swift, kotlin, csharp, java, c, cpp, rust, ruby, php, dart
python scripts/code_quality_checker.py . --language java
# JSON output
python scripts/code_quality_checker.py /path/to/code --json
Universal thresholds:
| Issue | Threshold |
|---|---|
| Long function | >50 lines |
| Large file | >500 lines |
| God class | >20 methods |
| Too many params | >5 |
| Deep nesting | >4 levels |
| High complexity | >10 branches |
Language-specific checks are defined in each languages/*.md file.
Review Report Generator
Combines PR analysis and code quality findings into structured review reports.
# Generate report for current repo
python scripts/review_report_generator.py /path/to/repo
# Markdown output
python scripts/review_report_generator.py . --format markdown --output review.md
# Use pre-computed analyses
python scripts/review_report_generator.py . \
--pr-analysis pr_results.json \
--quality-analysis quality_results.json
Verdicts:
| Score | Verdict |
|---|---|
| 90+ with no high issues | Approve |
| 75+ with ≤2 high issues | Approve with suggestions |
| 50-74 | Request changes |
| <50 or critical issues | Block |
Adding a New Language
Reviewer guidance (required):
- Create
languages/<name>.mdusing any existing language file as a template — it must have sections: PR Analyzer Signals, Code Quality Checks, Security, Async, Resource Management, Exception Handling, Performance, Idioms. - Add the extension row to the dispatch table above.
That is all the agent-driven review needs.
Deterministic analyzer support (optional, recommended): the bundled scripts
only flag a language they explicitly know. To make code_quality_checker.py
score the new language:
- Add the extensions to
LANGUAGE_EXTENSIONSinscripts/code_quality_checker.py(this also adds the--languagechoice). - Add
function/class/methodregex entries for the language in the same file; otherwise it falls back to the Python patterns. - Optionally add a
check_<name>_specific_smells(...)detector (see the C#, Java, and C ones) and call it fromanalyze_file. - Add
assets/sample_<name>_smells.<ext>+_cleanfixtures and commit the expected--jsonoutput underexpected_outputs/as a regression guard.
Regression Fixtures
Labelled fixtures live in assets/ with their committed --json output in
expected_outputs/ (C#, Java, and C). Drift from the committed JSON signals a
behaviour change in the analyzer:
python scripts/code_quality_checker.py assets/sample_java_smells.java --json \
| diff - expected_outputs/sample_java_smells_quality.json
| 1 | |
| 2 | name "code-reviewer" |
| 3 | description Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C#, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter. Analyzes PRs for complexity and risk, checks code quality for SOLID violations and code smells, generates review reports. Use when reviewing pull requests, analyzing code quality, identifying issues, generating review checklists. |
| 4 | |
| 5 | |
| 6 | # Code Reviewer |
| 7 | |
| 8 | Automated code review tools for analyzing pull requests, detecting code quality issues, and generating review reports. |
| 9 | |
| 10 | |
| 11 | |
| 12 | ## How This Skill Is Organized |
| 13 | |
| 14 | |
| 15 | code-reviewer/ |
| 16 | SKILL.md ← you are here (tools + dispatch table) |
| 17 | rules/ |
| 18 | universal.md ← security, async, resources, exceptions, performance — all languages |
| 19 | languages/ |
| 20 | python.md ← Python-specific rules + idioms |
| 21 | typescript.md ← TypeScript / JavaScript-specific rules + idioms |
| 22 | go.md ← Go-specific rules + idioms |
| 23 | swift.md ← Swift-specific rules + idioms |
| 24 | kotlin.md ← Kotlin-specific rules + idioms |
| 25 | csharp.md ← C# / .NET-specific rules + idioms |
| 26 | java.md ← Java-specific rules + idioms |
| 27 | c.md ← C -specific rules + idioms |
| 28 | cpp.md ← C++ -specific rules + idioms |
| 29 | rust.md ← Rust -specific rules + idioms |
| 30 | ruby.md ← Ruby -specific rules + idioms |
| 31 | php.md ← PHP-specific rules + idioms |
| 32 | dart.md ← Dart / Flutter-specific rules + idioms |
| 33 | |
| 34 | |
| 35 | ### Loading order for every review |
| 36 | |
| 37 | This file (`SKILL.md`) — tools and thresholds |
| 38 | `rules/universal.md` — always, for every language |
| 39 | The matching `languages/*.md` — one file based on the extension table below |
| 40 | |
| 41 | That is always exactly **2 additional files**, regardless of scope. |
| 42 | |
| 43 | | Extension(s) | Load | |
| 44 | |---|---| |
| 45 | | `.py` | `languages/python.md` | |
| 46 | | `.ts`, `.tsx`, `.js`, `.jsx`, `.mjs` | `languages/typescript.md` | |
| 47 | | `.go` | `languages/go.md` | |
| 48 | | `.swift` | `languages/swift.md` | |
| 49 | | `.kt`, `.kts` | `languages/kotlin.md` | |
| 50 | | `.cs`, `.csx`, `.razor`, `.cshtml` | `languages/csharp.md` | |
| 51 | | `.java` | `languages/java.md` | |
| 52 | | `.c`, `.h` | `languages/c.md` | |
| 53 | | `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hh`, `.hxx` | `languages/cpp.md` | |
| 54 | | `.rs` | `languages/rust.md` | |
| 55 | | `.rb`, `.rake`, `.gemspec`, `.ru` | `languages/ruby.md` | |
| 56 | | `.php`, `.phtml` | `languages/php.md` | |
| 57 | | `.dart` | `languages/dart.md` | |
| 58 | |
| 59 | |
| 60 | |
| 61 | ## Tools |
| 62 | |
| 63 | ### PR Analyzer |
| 64 | |
| 65 | Analyzes git diff between branches to assess review complexity and identify risks. |
| 66 | |
| 67 | |
| 68 | # Analyze current branch against main |
| 69 | python scripts/pr_analyzer.py /path/to/repo |
| 70 | |
| 71 | # Compare specific branches |
| 72 | python scripts/pr_analyzer.py . --base main --head feature-branch |
| 73 | |
| 74 | # JSON output for integration |
| 75 | python scripts/pr_analyzer.py /path/to/repo --json |
| 76 | |
| 77 | |
| 78 | **What it detects (universal — see also language file for language-specific signals):** |
| 79 | Hardcoded secrets (passwords, API keys, tokens, connection strings) |
| 80 | SQL / query injection patterns |
| 81 | Debug statements left in production code |
| 82 | Lint / analyzer suppression annotations |
| 83 | TODO/FIXME comments |
| 84 | |
| 85 | **Language-specific detections** are defined in each `languages/*.md` file. |
| 86 | |
| 87 | **Output includes:** |
| 88 | Complexity score (1-10) |
| 89 | Risk categorization (critical, high, medium, low) |
| 90 | File prioritization for review order |
| 91 | Commit message validation |
| 92 | |
| 93 | |
| 94 | |
| 95 | ### Code Quality Checker |
| 96 | |
| 97 | Analyzes source code for structural issues, code smells, and SOLID violations. |
| 98 | |
| 99 | |
| 100 | # Analyze a directory |
| 101 | python scripts/code_quality_checker.py /path/to/code |
| 102 | |
| 103 | # Analyze specific language |
| 104 | # Valid values: python, typescript, javascript, go, swift, kotlin, csharp, java, c, cpp, rust, ruby, php, dart |
| 105 | python scripts/code_quality_checker.py . --language java |
| 106 | |
| 107 | # JSON output |
| 108 | python scripts/code_quality_checker.py /path/to/code --json |
| 109 | |
| 110 | |
| 111 | **Universal thresholds:** |
| 112 | |
| 113 | | Issue | Threshold | |
| 114 | |-------|-----------| |
| 115 | | Long function | >50 lines | |
| 116 | | Large file | >500 lines | |
| 117 | | God class | >20 methods | |
| 118 | | Too many params | >5 | |
| 119 | | Deep nesting | >4 levels | |
| 120 | | High complexity | >10 branches | |
| 121 | |
| 122 | Language-specific checks are defined in each `languages/*.md` file. |
| 123 | |
| 124 | |
| 125 | |
| 126 | ### Review Report Generator |
| 127 | |
| 128 | Combines PR analysis and code quality findings into structured review reports. |
| 129 | |
| 130 | |
| 131 | # Generate report for current repo |
| 132 | python scripts/review_report_generator.py /path/to/repo |
| 133 | |
| 134 | # Markdown output |
| 135 | python scripts/review_report_generator.py . --format markdown --output review.md |
| 136 | |
| 137 | # Use pre-computed analyses |
| 138 | python scripts/review_report_generator.py . \ |
| 139 | --pr-analysis pr_results.json \ |
| 140 | --quality-analysis quality_results.json |
| 141 | |
| 142 | |
| 143 | **Verdicts:** |
| 144 | |
| 145 | | Score | Verdict | |
| 146 | |-------|---------| |
| 147 | | 90+ with no high issues | Approve | |
| 148 | | 75+ with ≤2 high issues | Approve with suggestions | |
| 149 | | 50-74 | Request changes | |
| 150 | | <50 or critical issues | Block | |
| 151 | |
| 152 | |
| 153 | |
| 154 | ## Adding a New Language |
| 155 | |
| 156 | **Reviewer guidance (required):** |
| 157 | |
| 158 | Create `languages/<name>.md` using any existing language file as a template — it must have sections: PR Analyzer Signals, Code Quality Checks, Security, Async, Resource Management, Exception Handling, Performance, Idioms. |
| 159 | Add the extension row to the dispatch table above. |
| 160 | |
| 161 | That is all the agent-driven review needs. |
| 162 | |
| 163 | **Deterministic analyzer support (optional, recommended):** the bundled scripts |
| 164 | only flag a language they explicitly know. To make `code_quality_checker.py` |
| 165 | score the new language: |
| 166 | |
| 167 | Add the extensions to `LANGUAGE_EXTENSIONS` in `scripts/code_quality_checker.py` (this also adds the `--language` choice). |
| 168 | Add `function` / `class` / `method` regex entries for the language in the same file; otherwise it falls back to the Python patterns. |
| 169 | Optionally add a `check_<name>_specific_smells(...)` detector (see the C#, Java, and C ones) and call it from `analyze_file`. |
| 170 | Add `assets/sample_<name>_smells.<ext>` + `_clean` fixtures and commit the expected `--json` output under `expected_outputs/` as a regression guard. |
| 171 | |
| 172 | |
| 173 | |
| 174 | ## Regression Fixtures |
| 175 | |
| 176 | Labelled fixtures live in `assets/` with their committed `--json` output in |
| 177 | `expected_outputs/` (C#, Java, and C). Drift from the committed JSON signals a |
| 178 | behaviour change in the analyzer: |
| 179 | |
| 180 | |
| 181 | python scripts/code_quality_checker.py assets/sample_java_smells.java --json \ |
| 182 | | diff - expected_outputs/sample_java_smells_quality.json |
| 183 | |
| 184 |
Details
- Updated
- Aug 30, 2026
- License
- MIT
- Stars on the repo
- ★ 26,349
- Checked
- Source
- alirezarezvani/claude-skills ↗
- Creator
- alirezarezvani · 363 listings
Similar skills
See all →
SkillExtract text, tables, metadataXberg Document Extraction
SkillMove code from one implementation to another functionCode migration
SkillManages Ahrefs API usage in Python using ahrefs-python
MCPDocx LLM translatoradeu
SkillCreate an Amazon-compliant white-background main imageAmazon White-Background Main Image · 亚马逊白底主图
MCPOfficial monorepo of SDKs, CLISendmux sdkMore from alirezarezvani
SkillResume a paused experiment/ar:ar-resume — Resume Experiment
SkillShow experiment dashboard with results, active loops/ar:ar-status — Experiment Dashboard
SkillStart an autonomous experiment loop with user-selected/ar:loop — Autonomous Experiment Loop
SkillRun a single experiment iteration/ar:run — Single Experiment Iteration
SkillSet up a new autoresearch experiment interactively/ar:setup — Create New Experiment
Skill/cs:boardroom <brief/cs:boardroom — Multi-Role Boardroom Deliberation