TypeScript, JavaScript, Python, Go, Swift, Kotlin, C#, .NET, Java, C, C++, Rust, Ruby, PHP ve Dart/Flutter için otomatik code review aracı. PR'ları karmaşıklık ve risk açısından analiz eder, kod kalitesini SOLID ihlalleri ve code smell'leri kontrol ederek değerlendirir, review raporları üretir. Pull request incelemelerinde, kod kalitesi analizinde, sorun tespitinde ve review checklist'leri oluştururken kullanılır.
cd ~/.claude/skills
git clone https://github.com/alirezarezvani/claude-skills.git claude-skills mkdir -p ~/.claude/skills/code-reviewer
curl -fsSL https://raw.githubusercontent.com/alirezarezvani/claude-skills/HEAD/.gemini/skills/code-reviewer/SKILL.md \
-o ~/.claude/skills/code-reviewer/SKILL.md Pull request'leri analiz etmek, kod kalitesi sorunlarını tespit etmek ve inceleme raporları oluşturmak için otomatik kod inceleme araçları.
code-reviewer/
SKILL.md ← buradasınız (araçlar + dispatch tablosu)
rules/
universal.md ← güvenlik, async, kaynaklar, istisnalar, performans — tüm diller
languages/
python.md ← Python'a özel kurallar + diyomlar
typescript.md ← TypeScript / JavaScript'e özel kurallar + diyomlar
go.md ← Go'ya özel kurallar + diyomlar
swift.md ← Swift'e özel kurallar + diyomlar
kotlin.md ← Kotlin'e özel kurallar + diyomlar
csharp.md ← C# / .NET'e özel kurallar + diyomlar
java.md ← Java'ya özel kurallar + diyomlar
c.md ← C'ye özel kurallar + diyomlar
cpp.md ← C++'a özel kurallar + diyomlar
rust.md ← Rust'a özel kurallar + diyomlar
ruby.md ← Ruby'ye özel kurallar + diyomlar
php.md ← PHP'ye özel kurallar + diyomlar
dart.md ← Dart / Flutter'a özel kurallar + diyomlar
SKILL.md) — araçlar ve eşiklerrules/universal.md — her dil için her zamanlanguages/*.md — aşağıdaki uzantı tablosuna göre bir dosyaBu her zaman tam olarak 2 ek dosyadır, kapsam ne olursa olsun.
| Uzantı(lar) | Yükle |
|---|---|
.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 |
Branch'ler arasındaki git diff'i analiz ederek inceleme karmaşıklığını değerlendirir ve riskleri tanımlar.
# Geçerli branch'i main'e karşı analiz et
python scripts/pr_analyzer.py /path/to/repo
# Belirli branch'leri karşılaştır
python scripts/pr_analyzer.py . --base main --head feature-branch
# İntegrasyon için JSON çıktısı
python scripts/pr_analyzer.py /path/to/repo --json
Tespit ettikleri (universal — dile özel sinyaller için dil dosyasına da bakınız):
Dile özel tespitler her languages/*.md dosyasında tanımlanır.
Çıktı şunları içerir:
Kaynak kodu yapısal sorunlar, kod kokuları ve SOLID ihlalleri açısından analiz eder.
# Bir dizini analiz et
python scripts/code_quality_checker.py /path/to/code
# Belirli dili analiz et
# Geçerli değerler: python, typescript, javascript, go, swift, kotlin, csharp, java, c, cpp, rust, ruby, php, dart
python scripts/code_quality_checker.py . --language java
# JSON çıktısı
python scripts/code_quality_checker.py /path/to/code --json
Universal eşikler:
| Sorun | Eşik |
|---|---|
| Uzun fonksiyon | >50 satır |
| Büyük dosya | >500 satır |
| God sınıfı | >20 metod |
| Çok fazla parametre | >5 |
| Derin yuvalama | >4 seviye |
| Yüksek karmaşıklık | >10 branch |
Dile özel kontroller her languages/*.md dosyasında tanımlanır.
PR analizini ve kod kalitesi bulgularını yapılandırılmış inceleme raporlarında birleştirir.
# Geçerli repo için rapor oluştur
python scripts/review_report_generator.py /path/to/repo
# Markdown çıktısı
python scripts/review_report_generator.py . --format markdown --output review.md
# Önceden hesaplanmış analizleri kullan
python scripts/review_report_generator.py . \
--pr-analysis pr_results.json \
--quality-analysis quality_results.json
Kararlar:
| Puan | Karar |
|---|---|
| 90+ ve yüksek sorun yok | Onayla |
| 75+ ve ≤2 yüksek sorun | Önerilerle onayla |
| 50-74 | Değişiklik iste |
| <50 veya kritik sorunlar | Engelle |
İnceleyici rehberi (gerekli):
languages/<name>.md oluştur — şu bölümlere sahip olmalı: PR Analyzer Signals, Code Quality Checks, Security, Async, Resource Management, Exception Handling, Performance, Idioms.Bu, agent tarafından yönetilen inceleme için gerekli olan tüm şeydir.
Deterministik analyzer desteği (isteğe bağlı, önerilen): paket içindeki scriptler
sadece açıkça bildiği dilleri işaretler. code_quality_checker.py'nin
yeni dili skorlaması için:
LANGUAGE_EXTENSIONS'a ekle (bu aynı zamanda --language seçeneğini de ekler).function / class / method regex girdileri ekle; aksi takdirde Python desenleri kullanılır.check_<name>_specific_smells(...) detektörü ekle (C#, Java ve C olanlarına bakınız) ve analyze_file'dan çağır.assets/sample_<name>_smells.<ext> + _clean fixture'larını ve beklenen --json çıktısını expected_outputs/ altında kaydet ve regresyon kontrolü olarak commit et.Etiketlenmiş fixture'lar assets/ içinde canlı olup, committed --json çıktıları
expected_outputs/ içinde (C#, Java ve C). Committed JSON'dan sapma analyzer'da
davranış değişikliğine işaret eder:
python scripts/code_quality_checker.py assets/sample_java_smells.java --json \
| diff - expected_outputs/sample_java_smells_quality.json
Herhangi bir yaratıcı çalışmaya başlamadan önce bunu mutlaka kullanın - feature oluştururken, component inşa ederken, functionality eklerken veya davranış değiştirirken. Kullanıcı niyetini, gereksinimleri ve tasarımı implementation öncesinde araştırır.
Uygulama tamamlandığında, tüm testler geçtiğinde ve çalışmanızı nasıl entegre edeceğinize karar vermeniz gerektiğinde kullanın - merge, PR veya cleanup seçeneklerini sunarak geliştirme sürecinin tamamlanmasını rehberlik eder.
Kod incelemesi geri bildirimi alırken, önerileri uygulamadan önce kullanın; özellikle geri bildirim belirsiz veya teknik olarak şüpheli görünüyorsa - performatif anlaşmadan veya körü körüne uygulamadan ziyade teknik titizlik ve doğrulama gerekir.
Görevleri tamamlarken, büyük özellikleri hayata geçirirken veya merge etmeden önce çalışmanın gereksinimleri karşıladığını doğrulamak için kullanın.
Yeni bir feature üzerinde çalışmaya başlarken veya implementasyon planını yürütmeden önce kullanın - native araçlar veya git worktree fallback aracılığıyla izole edilmiş bir workspace sağlar.
Herhangi bir konuşma başlatırken kullanın - skill'lerin nasıl bulunacağını ve kullanılacağını belirler, clarification soruları da dahil olmak üzere HERHANGİ bir yanıt vermeden önce skill invocation gerektirir.