Error Recovery Skill
Bu skill, Anthropic'in tool use best practices'lerine göre hata durumlarından kurtarma stratejileri sağlar.
Yaygın Hatalar ve Çözümleri
1. NPM/Node Hataları
ENOENT: no such file or directory, package.json
# Çözüm: Doğru dizinde misin?
pwd
ls -la package.json
# Yoksa proje kökünü bul
find . -name "package.json" -type f 2>/dev/null | head -5
npm ERR! ERESOLVE
# Çözüm: Dependency conflict
npm install --legacy-peer-deps
# veya
rm -rf node_modules package-lock.json && npm install
MODULE_NOT_FOUND
# Çözüm
npm install
# veya spesifik modül
npm install <modül-adı>
2. Git Hataları
fatal: not a git repository
# Çözüm: Git repo değil veya yanlış dizin
git init
# veya doğru dizine git
cd <proje-kökü>
error: Your local changes would be overwritten
# Çözüm: Değişiklikleri sakla
git stash
git pull
git stash pop
CONFLICT (content): Merge conflict
# Çözüm: Conflict'leri göster
git diff --name-only --diff-filter=U
# Manuel çözüm gerekli - kullanıcıya sor
3. TypeScript/Build Hataları
Cannot find module (import)
# Çözüm: Path kontrolü
# 1. Dosya var mı?
ls -la <dosya-yolu>
# 2. tsconfig paths doğru mu?
cat tsconfig.json | grep -A5 "paths"
# 3. Index export var mı?
cat <modül>/index.ts
Property does not exist on type
# Çözüm: Type tanımını bul
grep -rn "interface\|type" --include="*.ts" src/ | grep <TypeAdı>
4. Database Hataları
Connection refused (PostgreSQL/MySQL)
# Çözüm: Service çalışıyor mu?
# macOS
brew services list | grep postgres
# Linux
systemctl status postgresql
# Docker
docker ps | grep postgres
relation does not exist
# Çözüm: Migration çalıştır
npm run db:migrate
# veya
npx prisma migrate dev
5. Docker Hataları
Cannot connect to Docker daemon
# Çözüm: Docker çalışıyor mu?
docker info
# macOS: Docker Desktop açık mı?
open -a Docker
port is already allocated
# Çözüm: Portu kullanan process'i bul ve durdur
lsof -i :3000
kill -9 <PID>
6. Permission Hataları
EACCES: permission denied
# Çözüm: Dosya izinlerini kontrol et
ls -la <dosya>
# Düzelt (dikkatli ol!)
chmod 644 <dosya> # Dosya için
chmod 755 <dizin> # Dizin için
sudo required
⚠️ DİKKAT: sudo kullanmak tehlikeli olabilir.
Kullanıcıya danış ve alternatif ara.
Alternatifler:
- nvm/pyenv kullan (global yerine local)
- Docker container içinde çalış
- .local dizinine yükle
Error Recovery Süreci
1. HATA TESPİT
↓
2. HATA TİPİNİ BELİRLE
- Build error?
- Runtime error?
- Permission error?
- Network error?
↓
3. CONTEXT TOPLA
- Hangi komut çalıştı?
- Hangi dizindeyiz?
- Son ne değişti?
↓
4. ÇÖZÜM UYGULA
- Basit fix dene
- Başarısızsa alternatif dene
- Hala başarısızsa kullanıcıya sor
↓
5. DOĞRULA
- Aynı komutu tekrar çalıştır
- Hata devam ediyor mu?
Error Logging
Hatalar otomatik olarak loglanır:
~/.claude/error-log.txt
Log formatı:
[2025-01-26 10:30:45] TOOL FAILURE: Bash - npm test failed
Context: /Users/x/project
Last command: npm test
Error: Jest has detected the following 1 open handle
Resolution: Added --forceExit flag
Kullanıcıya Ne Zaman Danış
Aşağıdaki durumlarda kullanıcıya sor:
- Veri kaybı riski:
rm,DROP,TRUNCATE - Credential gerekli: API key, password
- Belirsiz çözüm: Birden fazla olası fix var
- Tekrarlayan hata: 3+ denemede başarısız
- Production etkisi: Deploy, migration
Recovery Rapor Formatı
## 🔧 Error Recovery Report
**Hata:** [error message]
**Komut:** [failed command]
**Dizin:** [working directory]
### Analiz
[Hatanın nedeni]
### Denenen Çözümler
1. ❌ [çözüm 1] - [neden başarısız]
2. ✅ [çözüm 2] - Başarılı
### Önlem
[Bu hatanın tekrarını önlemek için öneri]
Anti-Patterns
❌ Yapma:
- Hatayı ignore etme
- sudo ile zorla çöz
- Rastgele komut dene
- Kullanıcıya sormadan kritik değişiklik yap
✅ Yap:
- Hatayı anla, sonra çöz
- En az invaziv çözümü dene
- Değişiklikleri logla
- Belirsizlikte sor