- Add CSS components: .page-meta badges, .domain-header, .install-banner - Fix invisible tab navigation (explicit color for light/dark modes) - Rewrite generate-docs.py with design system templates - Domain indexes: centered headers with icons, install banners, grid cards - Skill pages: pill badges (domain, skill ID, source), install commands - Agent/command pages: type badges with domain icons - Regenerate all 210 pages (180 skills + 15 agents + 15 commands) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
189 lines
4.9 KiB
Markdown
189 lines
4.9 KiB
Markdown
---
|
|
title: "Code Reviewer"
|
|
description: "Code Reviewer - Claude Code skill from the Engineering - Core domain."
|
|
---
|
|
|
|
# Code Reviewer
|
|
|
|
<div class="page-meta" markdown>
|
|
<span class="meta-badge">:material-code-braces: Engineering - Core</span>
|
|
<span class="meta-badge">:material-identifier: `code-reviewer`</span>
|
|
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering-team/code-reviewer/SKILL.md">Source</a></span>
|
|
</div>
|
|
|
|
<div class="install-banner" markdown>
|
|
<span class="install-label">Install:</span> <code>claude /plugin install engineering-skills</code>
|
|
</div>
|
|
|
|
|
|
Automated code review tools for analyzing pull requests, detecting code quality issues, and generating review reports.
|
|
|
|
---
|
|
|
|
## Table of Contents
|
|
|
|
- [Tools](#tools)
|
|
- [PR Analyzer](#pr-analyzer)
|
|
- [Code Quality Checker](#code-quality-checker)
|
|
- [Review Report Generator](#review-report-generator)
|
|
- [Reference Guides](#reference-guides)
|
|
- [Languages Supported](#languages-supported)
|
|
|
|
---
|
|
|
|
## Tools
|
|
|
|
### PR Analyzer
|
|
|
|
Analyzes git diff between branches to assess review complexity and identify risks.
|
|
|
|
```bash
|
|
# 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:**
|
|
- Hardcoded secrets (passwords, API keys, tokens)
|
|
- SQL injection patterns (string concatenation in queries)
|
|
- Debug statements (debugger, console.log)
|
|
- ESLint rule disabling
|
|
- TypeScript `any` types
|
|
- TODO/FIXME comments
|
|
|
|
**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.
|
|
|
|
```bash
|
|
# Analyze a directory
|
|
python scripts/code_quality_checker.py /path/to/code
|
|
|
|
# Analyze specific language
|
|
python scripts/code_quality_checker.py . --language python
|
|
|
|
# JSON output
|
|
python scripts/code_quality_checker.py /path/to/code --json
|
|
```
|
|
|
|
**What it detects:**
|
|
- Long functions (>50 lines)
|
|
- Large files (>500 lines)
|
|
- God classes (>20 methods)
|
|
- Deep nesting (>4 levels)
|
|
- Too many parameters (>5)
|
|
- High cyclomatic complexity
|
|
- Missing error handling
|
|
- Unused imports
|
|
- Magic numbers
|
|
|
|
**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 |
|
|
|
|
---
|
|
|
|
### Review Report Generator
|
|
|
|
Combines PR analysis and code quality findings into structured review reports.
|
|
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
**Report includes:**
|
|
- Review verdict (approve, request changes, block)
|
|
- Score (0-100)
|
|
- Prioritized action items
|
|
- Issue summary by severity
|
|
- Suggested review order
|
|
|
|
**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 |
|
|
|
|
---
|
|
|
|
## Reference Guides
|
|
|
|
### Code Review Checklist
|
|
`references/code_review_checklist.md`
|
|
|
|
Systematic checklists covering:
|
|
- Pre-review checks (build, tests, PR hygiene)
|
|
- Correctness (logic, data handling, error handling)
|
|
- Security (input validation, injection prevention)
|
|
- Performance (efficiency, caching, scalability)
|
|
- Maintainability (code quality, naming, structure)
|
|
- Testing (coverage, quality, mocking)
|
|
- Language-specific checks
|
|
|
|
### Coding Standards
|
|
`references/coding_standards.md`
|
|
|
|
Language-specific standards for:
|
|
- TypeScript (type annotations, null safety, async/await)
|
|
- JavaScript (declarations, patterns, modules)
|
|
- Python (type hints, exceptions, class design)
|
|
- Go (error handling, structs, concurrency)
|
|
- Swift (optionals, protocols, errors)
|
|
- Kotlin (null safety, data classes, coroutines)
|
|
|
|
### Common Antipatterns
|
|
`references/common_antipatterns.md`
|
|
|
|
Antipattern catalog with examples and fixes:
|
|
- Structural (god class, long method, deep nesting)
|
|
- Logic (boolean blindness, stringly typed code)
|
|
- Security (SQL injection, hardcoded credentials)
|
|
- Performance (N+1 queries, unbounded collections)
|
|
- Testing (duplication, testing implementation)
|
|
- Async (floating promises, callback hell)
|
|
|
|
---
|
|
|
|
## Languages Supported
|
|
|
|
| Language | Extensions |
|
|
|----------|------------|
|
|
| Python | `.py` |
|
|
| TypeScript | `.ts`, `.tsx` |
|
|
| JavaScript | `.js`, `.jsx`, `.mjs` |
|
|
| Go | `.go` |
|
|
| Swift | `.swift` |
|
|
| Kotlin | `.kt`, `.kts` |
|