| name | code-review |
| description | Systematic code review skill covering both requesting a review (pre-commit checklist) and receiving and responding to review feedback. Checks code quality, security, test coverage, architectural alignment, and documentation before any code is committed.
|
Code Review Skill
İki Mod
Bu skill iki farklı durumda devreye girer:
| Mod | Ne Zaman | Ne Yapar |
|---|
| A — Pre-Commit Review | Commit öncesi, kendi kendinle | Checklist çalıştır, commit'e hazır mı karar ver |
| B — Feedback Response | Başkası review yaptı, feedback geldi | Her yorumu sınıflandır, yanıtla, düzelt |
MOD A: Pre-Commit Review (Kendi Kendine)
1. Diff'i Çek ve Analiz Et
git diff HEAD
git diff --staged
git diff main...HEAD
Her değişen dosyayı gözden geçir. PR'da yorum almak istemediğin şeyleri şimdi düzelt.
2. Checklist — Sırayla Uygula
🔴 Kritik (bunlar varsa commit yok)
🟡 Önemli (bunlar varsa ya düzelt ya bilinçli geç)
🔵 Kalite (mükemmel kod için)
3. Review Kartı Oluştur
Commit mesajının yanına veya PR açıklamasına eklemek için:
## Self-Review Özeti
**Değişiklik:** <ne yaptım, neden>
**Test Durumu:** ✅ Tüm testler geçiyor / ⚠️ X test skip edildi (gerekçe: ...)
**Checklist:**
- 🔴 Kritik: Temiz
- 🟡 Önemli: [varsa not]
- 🔵 Kalite: [varsa not]
**Özellikle dikkat çekilmek istenen:**
- <reviewer'ın bakmasını istediğin yer>
**Bilinçli atlanan kısayollar (deliberate shortcuts):**
- <varsa gerekçesiyle>
MOD B: Feedback Response (Başkasının Review'ı)
1. Her Yorumu Sınıflandır
Gelen her review yorumu için:
[KRITIK] → Blokerlik eder, merge edilemez — hemen düzelt
[ÖNEMLI] → Güçlü öneri, iyi gerekçen yoksa uygula
[ÖNERI] → Takdire bağlı, açık tartışma gerekebilir
[SORU] → Bilgi isteği — açıkla veya kod ile düzelt
[NIT] → Küçük stil/isimlendirme, senin tercihine bağlı
2. Her Yorumu Yanıtla
Hiçbir yorum cevapsız bırakılmaz.
Yorum: "Bu fonksiyonun timeout'u yok, servis yanıt vermezse ne olur?"
→ Sınıf: [KRİTİK]
→ Cevap: "Haklısın. 5 saniyelik timeout + retry ekledim. T3 commit'inde görebilirsin."
→ Aksiyon: Düzeltildi ✅
Yorum: "Belki burada Map yerine Set kullanabilirsin"
→ Sınıf: [ÖNERİ]
→ Cevap: "Set burada doğru olur, key'e ihtiyacımız yok. Değiştirdim."
→ Aksiyon: Düzeltildi ✅
Yorum: "Bu isimlendirme bana semantik gelmiyor"
→ Sınıf: [NIT]
→ Cevap: "Anladım mantığını ama `processUserData` yerine `normalizeUserInput` daha açıklayıcı — değiştirdim."
→ Aksiyon: Düzeltildi ✅
3. Düzeltmeleri Grupla ve Commit At
Her düzeltme grubunu ayrı bir commit olarak at (github skill commit standardına göre):
git commit -m "fix: add timeout and retry to userService.fetchProfile"
git commit -m "refactor: use Set instead of Map in deduplication logic"
git commit -m "refactor: rename processUserData to normalizeUserInput"
4. Re-Review İste
Tüm düzeltmeler tamamlandığında review'ı güncelle:
## Düzeltme Özeti
Toplam yorum: 8
- Düzeltildi: 7
- Reddedildi (gerekçeyle): 1 → "NIT yorumu: mevcut isimlendirme proje konvansiyonuyla uyumlu"
Önemli değişiklikler:
- Timeout + retry mekanizması eklendi (güvenlik açısından kritik)
- 2 refactor (netlik için)
Re-review için hazır.
Kurallar
- Kırmızı item varsa commit yok. İstisna yok.
- "Sonra düzeltilir" yasak. Ya şimdi düzelt ya da ticket aç, ticket numarasını koda ekle.
- Her review yorumu yanıtlanır. "Tamam" veya sessizlik kabul edilmez — ya "düzelttim" ya "katılmıyorum, çünkü..."
- Review kendini kandırmak için değil, kodu korumak için. Checklist'i hızlıca geçiştirme.
- Gelen feedback kişisel değil. Yorum koda yapılıyor, sana değil.