Herhangi bir hata, test başarısızlığı veya beklenmeyen davranışla karşılaştığınızda, çözüm önerisi sunmadan önce kullanın.
cd ~/.claude/skills
git clone https://github.com/obra/superpowers.git superpowers mkdir -p ~/.claude/skills/systematic-debugging
curl -fsSL https://raw.githubusercontent.com/obra/superpowers/HEAD/skills/systematic-debugging/SKILL.md \
-o ~/.claude/skills/systematic-debugging/SKILL.md Rastgele düzeltmeler zaman harcatır ve yeni hatalar yaratır. Hızlı yamalar temel sorunları gizler.
Temel ilke: Düzeltme denememeden ÖNCE her zaman kök nedeni bulun. Semptom düzeltmeleri başarısızlıktır.
Bu işlemin harf anlamını ihlal etmek, hata ayıklamanın ruhunu ihlal etmektir.
KÖK NEDEN ARAŞTIRMASI YAPILMADAN HİÇBİR DÜZELTME YOK
Eğer Aşama 1'i tamamlamadıysanız, düzeltme öneremezsiniz.
Herhangi bir teknik sorun için kullanın:
ÖZELLIKLE bu durumlarda kullanın:
Atlamayın çünkü:
Her aşamayı tamamlamanız gerekir, sonra bir sonrakine geçin.
Herhangi bir düzeltme denememeden ÖNCE:
Hata Mesajlarını Dikkatlice Okuyun
Tutarlı Şekilde Yeniden Üretin
Son Değişiklikleri Kontrol Edin
Multi-Bileşen Sistemlerde Kanıt Toplayın
Sistem birden fazla bileşene sahip olduğunda (CI → derleme → imzalama, API → servis → veritabanı):
Düzeltme önermeden önce, tanısal enstrümantasyon ekleyin:
Her bileşen sınırı için:
- Bileşene giren verileri kaydet
- Bileşenden çıkan verileri kaydet
- Ortam/config yayılmasını doğrula
- Her katmandaki durumu kontrol et
NEREDE kırıldığını gösteren kanıt toplamak için bir kez çalıştır
SONRA kırılan bileşeni belirlemek için kanıtı analiz et
SONRA o spesifik bileşeni araştır
Örnek (çok katmanlı sistem):
# Katman 1: Workflow
echo "=== Workflow'da mevcut olan Secrets: ==="
echo "IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}"
# Katman 2: Build script
echo "=== Build script'teki env vars: ==="
env | grep IDENTITY || echo "IDENTITY ortamda yok"
# Katman 3: İmzalama script
echo "=== Keychain durumu: ==="
security list-keychains
security find-identity -v
# Katman 4: Gerçek imzalama
codesign --sign "$IDENTITY" --verbose=4 "$APP"
Bu ortaya çıkarır: Hangi katman başarısız olur (secrets → workflow ✓, workflow → build ✗)
Veri Akışını İzleyin
Hata call stack'in derininde olduğunda:
Bu dizindeki root-cause-tracing.md dosyasına bakın, komple geri doğru izleme tekniği için.
Hızlı versiyon:
Düzeltmeden önce deseni bulun:
Çalışan Örnekleri Bulun
Referanslara Karşı Karşılaştırın
Farklılıkları Belirleyin
Bağımlılıkları Anlayın
Bilimsel yöntem:
Tek Hipotez Oluşturun
Minimal Test Edin
Devam Etmeden Doğrulayın
Bilmediğinizde
Semptomda değil, kök nedeni düzelt:
Başarısız Test Vakası Oluşturun
superpowers:test-driven-development yeteneğini kullanınTek Düzeltme Uygulayın
Düzeltmeyi Doğrulayın
Eğer Düzeltme Işe Yaramazsa
Eğer 3+ Düzeltme Başarısız Olduysa: Mimarisini Sorgulaştır
Mimari sorun gösteren model:
DURUN ve temelleri sorgulaşturun:
Daha fazla düzeltme denemesinden önce insan ortağınızla tartışın
Bu başarısız bir hipotez DEĞİL - bu yanlış bir mimaridir.
Kendinizi şöyle düşünürken yakalarsanız:
Bunların TÜMü şu anlama gelir: DURUN. Aşama 1'e dönün.
Eğer 3+ düzeltme başarısız olduysa: Mimarisini sorgulaştır (bkz. Aşama 4.5)
Bu yeniden yönlendirmeleri izleyin:
Bunları gördüğünüzde: DURUN. Aşama 1'e dönün.
| Bahane | Gerçeklik |
|---|---|
| "Sorun basit, işleme ihtiyaç yok" | Basit sorunların da kök nedenleri vardır. İşlem basit hatalar için hızlıdır. |
| "Acil durum, işlem için zaman yok" | Sistematik hata ayıklama tahmin-ve-kontrol karmaşasından DAHA HIZLIDIR. |
| "Önce bunu deneyelim, sonra araştıralım" | İlk düzeltme deseni belirler. Baştan itibaren doğru yapın. |
| "Test başladıktan sonra yazarım" | Test edilmemiş düzeltmeler kalmaz. Test önce bunu kanıtlar. |
| "Birden fazla düzeltme aynı anda zaman kazandırır" | Hangi düzeltmenin işe yaradığı belirlenemez. Yeni hatalar yaratır. |
| "Referans çok uzun, deseni adapte edeceğim" | Kısmi anlayış garantili hatadır. Tamamen okuyun. |
| "Sorunu görüyorum, düzeltelim" | Semptom görmek ≠ kök nedeni anlamak. |
| "Bir daha daha düzeltme denemesi" (2+ başarısızlıktan sonra) | 3+ başarısızlık = mimari sorun. Yeniden deneyin, tekrar düzeltmeyin. |
| Aşama | Anahtar Faaliyetler | Başarı Kriterleri |
|---|---|---|
| 1. Kök Neden | Hataları oku, yeniden üret, değişiklikleri kontrol et, kanıt topla | NE ve NEDEN'i anla |
| 2. Model | Çalışan örnekleri bul, karşılaştır | Farklılıkları belirle |
| 3. Hipotez | Teori oluştur, minimal test et | Onaylandı veya yeni hipotez |
| 4. Uygulama | Test oluştur, düzelt, doğrula | Hata çözüldü, testler geçiyor |
Sistematik araştırma sorunun gerçekten çevresel, zamanlama-bağımlı veya dış olduğunu ortaya çıkarırsa:
Ama: "Kök neden yok" durumlarının %95'i eksik araştırmadır.
Bu teknikler sistematik hata ayıklamanın parçası ve bu dizinde mevcuttur:
root-cause-tracing.md - Hataları call stack'ten geri izleyerek orijinal tetikleyiciyi bulundefense-in-depth.md - Kök neden bulunduktan sonra birden fazla katmanda doğrulama ekleyincondition-based-waiting.md - Keyfi timeout'ları condition polling ile değiştirinİlgili yetkinlikler:
Hata ayıklama oturumlarından:
2 veya daha fazla bağımsız görevin paralel olarak yürütülebileceği ve aralarında state paylaşımı ya da sıralı bağımlılık olmadığı durumlarda kullanın.
Ayrı bir oturumda inceleme kontrol noktaları ile yürütülecek yazılı bir uygulama planınız olduğunda kullanın.
Mevcut oturumda bağımsız görevlerle uygulama planlarını yürütürken kullanın
Herhangi bir feature ya da bugfix uygulamaya başlamadan önce kullanın.
Yeni beceriler oluştururken, mevcut becerileri düzenlerken veya dağıtımdan önce becerileri doğrularken kullanın.
Claude API / Anthropic SDK için referans — model kimlikleri, fiyatlandırma, parametreler, streaming, tool use, MCP, agents, caching, token sayma ve model migration hakkında bilgiler içerir. ÖNEMLİ — hedef dosyayı açmadan önce okuyun; Claude/Anthropic ile ilgili herhangi bir isim geçtiğinde (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*` vb.) bu referansı atlayın.