New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Code review automation for TypeScript, JavaScript, Python

Code reviewer

by alirezarezvani · MIT license · ★ 26,349 on GitHub · updated Aug 30

Code reviewer cover

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 languages

Overview

Automated code review tools for analyzing pull requests, detecting code quality issues, and generating review reports.

Manual install (npx, ZIP)
Claude Codenpx skills add alirezarezvani/claude-skills --skill code-reviewer -g -a claude-code
Claude Code (manual)mkdir -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-reviewer
Windows (PowerShell)New-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" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md6.4 KB
  • README.md4.8 KB
  • assets/6 files · 13.1 KB
  • expected_outputs/6 files · 14.8 KB
  • languages/13 files · 53.1 KB
  • rules/1 file · 2.1 KB
  • scripts/3 files · 68.7 KB
Read the files here
alirezarezvani/19392f731 files
SKILL.md
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
  1. This file (SKILL.md) — tools and thresholds
  2. rules/universal.md — always, for every language
  3. 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):

  1. 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.
  2. 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:

  1. Add the extensions to LANGUAGE_EXTENSIONS in scripts/code_quality_checker.py (this also adds the --language choice).
  2. Add function / class / method regex entries for the language in the same file; otherwise it falls back to the Python patterns.
  3. Optionally add a check_<name>_specific_smells(...) detector (see the C#, Java, and C ones) and call it from analyze_file.
  4. Add assets/sample_<name>_smells.<ext> + _clean fixtures and commit the expected --json output under expected_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---
2name: "code-reviewer"
3description: 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 
8Automated 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```
15code-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 
371. This file (`SKILL.md`) — tools and thresholds
382. `rules/universal.md` — always, for every language
393. The matching `languages/*.md` — one file based on the extension table below
40 
41That 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 
65Analyzes git diff between branches to assess review complexity and identify risks.
66 
67```bash
68# Analyze current branch against main
69python scripts/pr_analyzer.py /path/to/repo
70 
71# Compare specific branches
72python scripts/pr_analyzer.py . --base main --head feature-branch
73 
74# JSON output for integration
75python 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 
97Analyzes source code for structural issues, code smells, and SOLID violations.
98 
99```bash
100# Analyze a directory
101python 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
105python scripts/code_quality_checker.py . --language java
106 
107# JSON output
108python 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 
122Language-specific checks are defined in each `languages/*.md` file.
123 
124---
125 
126### Review Report Generator
127 
128Combines PR analysis and code quality findings into structured review reports.
129 
130```bash
131# Generate report for current repo
132python scripts/review_report_generator.py /path/to/repo
133 
134# Markdown output
135python scripts/review_report_generator.py . --format markdown --output review.md
136 
137# Use pre-computed analyses
138python 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 
1581. 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.
1592. Add the extension row to the dispatch table above.
160 
161That is all the agent-driven review needs.
162 
163**Deterministic analyzer support (optional, recommended):** the bundled scripts
164only flag a language they explicitly know. To make `code_quality_checker.py`
165score the new language:
166 
1673. Add the extensions to `LANGUAGE_EXTENSIONS` in `scripts/code_quality_checker.py` (this also adds the `--language` choice).
1684. Add `function` / `class` / `method` regex entries for the language in the same file; otherwise it falls back to the Python patterns.
1695. Optionally add a `check_<name>_specific_smells(...)` detector (see the C#, Java, and C ones) and call it from `analyze_file`.
1706. 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 
176Labelled fixtures live in `assets/` with their committed `--json` output in
177`expected_outputs/` (C#, Java, and C). Drift from the committed JSON signals a
178behaviour change in the analyzer:
179 
180```bash
181python scripts/code_quality_checker.py assets/sample_java_smells.java --json \
182 | diff - expected_outputs/sample_java_smells_quality.json
183```
184 
View all files on GitHub →

Details

Updated
Aug 30, 2026
License
MIT
Stars on the repo
★ 26,349
Checked
Source
alirezarezvani/claude-skills ↗
Creator
alirezarezvani · 363 listings
View creator

Similar skills

See all →
SkillExtract text, tables, metadataXberg Document Extractionxberg-io/xberg · by xberg-ioExtract text, tables, metadata, and images from 107 document formats (PDF, Office, images, HTML, email, archives, academic) using Xberg. Use when writing code that calls Xberg APIs in Python, Node.js/TypeScript, Rust, or CLI. Covers installation, extraction (sync/async), configuration (OCR, chunking, output format), batch processing, error handling, and plugins.★ 9.4k GitHub starsSkillMove code from one implementation to another functionCode migrationkucherenko/jscpd · by kucherenkoMove code from one implementation to another function by function, tests first and code second, and check two implementations of one app for parity, with jscpd --compare as the progress measure and a coverage map binding each function to its tests. Use when porting a library or app to another language or framework (Java to Kotlin, JavaScript to Rust, a Python library to TypeScript, an iOS app to Android), when asked what is left to port, or when comparing the Android and iOS versions of an app.★ 6.3k GitHub starsSkillManages Ahrefs API usage in Python using ahrefs-pythonOpenClaudia/openclaudia-skills · by OpenClaudiaManages Ahrefs API usage in Python using `ahrefs-python` library. Use when working with SEO / marketing related tasks or with data including backlinks, keywords, domain ratings, organic traffic, site audits, rank tracking, and brand monitoring. Covers `ahrefs-python` usage including AhrefsClient / AsyncAhrefsClient, typed request/response models, error handling, and all API sections.★ 705 GitHub starsMCPDocx LLM translatoradeudealfluence/adeu · by dealfluenceDocx ↔ LLM translator. Projects .docx office files to Markdown for editing. Projects edits back to OOXML as tracked changes (redlines). Python and Node.js implementations.★ 165 GitHub starsSkillCreate an Amazon-compliant white-background main imageAmazon White-Background Main Image · 亚马逊白底主图xianyu110/ecommerce-image-skills · by xianyu110Create an Amazon-compliant white-background main image (pure #FFFFFF background, product fills ≥85% of the frame, no text, props or watermark) from a product photo with GPT Image 2.5, then verify it with a Python check script. Use for Amazon/Walmart/eBay main images, 白底图, 白底主图, hero image, listing main photo.★ 92 GitHub starsMCPOfficial monorepo of SDKs, CLISendmux sdkSendmux/sendmux-sdk · by SendmuxOfficial monorepo of SDKs, CLI, and MCP servers for Sendmux email APIs across TypeScript, Python, Go, PHP, Rust, and Ruby.★ 65 GitHub stars

More from alirezarezvani

SkillResume a paused experiment/ar:ar-resume — Resume Experimentalirezarezvani/claude-skills · by alirezarezvaniResume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment.★ 26.3k GitHub starsSkillShow experiment dashboard with results, active loops/ar:ar-status — Experiment Dashboardalirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillStart an autonomous experiment loop with user-selected/ar:loop — Autonomous Experiment Loopalirezarezvani/claude-skills · by alirezarezvaniStart an autonomous experiment loop with user-selected interval (10min, 1h, daily, weekly, monthly). Uses CronCreate for scheduling. Use when the user runs /ar:loop or asks to run an autoresearch experiment continuously on a schedule.★ 26.3k GitHub starsSkillRun a single experiment iteration/ar:run — Single Experiment Iterationalirezarezvani/claude-skills · by alirezarezvaniRun a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration.★ 26.3k GitHub starsSkillSet up a new autoresearch experiment interactively/ar:setup — Create New Experimentalirezarezvani/claude-skills · by alirezarezvaniSet up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator. Use when the user runs /ar:setup or asks to start optimizing a file with the autoresearch loop.★ 26.3k GitHub starsSkill/cs:boardroom <brief/cs:boardroom — Multi-Role Boardroom Deliberationalirezarezvani/claude-skills · by alirezarezvani/cs:boardroom <brief> — 6-phase multi-role deliberation across the C-suite with Phase 2 isolation, critic pre-screen, and synthesis. Outputs a board memo. Use when a decision spans multiple executive domains — e.g. a pricing change touching finance, positioning, and product, or a raise-vs-cut runway call.★ 26.3k GitHub stars