Prompt mühendisliği temelleri
Net talep, kontrastlı örnek, success criteria, "yapma" listesi — tekrarlanabilir promptun 4 ayağı.
Öğreneceklerin
- "Yap" + "yapma" + "kabul kriteri" yapısını uygula
- Belirsizlik kaynaklarını ön-elemine et
- Promptu kısaltırken bilgiyi kaybetmeden sıkıştır
İyi prompt rastgele iyi yanıt verir. Mükemmel prompt her seferinde iyi yanıt verir. Fark: belirsizliği aktif olarak kapatmak.
4 ayak
1) Görev (action verb + nesne + sonuç)
Kötü: “Bu kodu iyileştir.” Hangi metrik? Hangi yön?
İyi: “src/auth/login.ts dosyasında çift okunan dosyaları cache’le. Hedef: aynı dosyanın 2’den fazla readFile çağrısı kaybolsun.”
2) Kapsam (sınır)
Kötü: dosya/dizin sınırı belirtmemek → Claude tüm repo’yu değiştirmeye kalkabilir.
İyi: “Sadece src/auth/ altındaki dosyalar. Test dosyalarına dokunma. Public API imzalarını koru.”
3) Success criteria (ölç)
Kötü: “Test geçsin.”
İyi: “pnpm test 0 hatayla bitsin. pnpm typecheck clean. Build size %5’ten fazla artmasın.”
4) Yapma listesi (boundary)
Pozitif kuralları sıralamak yetmez; “ne yapma”yı da söyle.
Yapma:
- Yeni dependency ekleme
- console.log bırakma
- TODO yorumu yazma
- Error mesajını String() ile sarma
Kontrastlı örnek
İki örnek (iyi/kötü) tek örneğe göre çok daha iyi. Claude doğru pattern’i kötüden ayırarak öğrenir:
İyi:
if (!user) throw new NotFoundError('user');
Kötü:
if (!user) throw new Error('not found'); // tip bilgisi kayıp
Belirsizliği kapatmak
Promptun başında 3 sorunu kontrol et:
- Hangi dosya? (path veya pattern)
- Hangi davranış? (existing vs new)
- Hangi kriter? (ne zaman bittin)
Bu üçü açık değilse Claude tahmin yürütür → tahmin yanlış olur.
Kısaltma sanatı
Uzun prompt iyi prompt değildir. Kısaltırken:
- Tekrar eden kelimeleri at (“lütfen”, “rica ediyorum”, “mümkünse”)
- Açıklayıcı sıfatları at (“temiz”, “güzel”, “modern” — anlam yok)
- Ölç edilebilir hedefe çevir
- Listele, paragraf yazma
Tipler kategorisinden 3 hızlı kazanç
- “Show your work” ile bitir → Claude akıl yürütmesini gösterir, hatasını yakalarsın
- Output format’ı şablonla → JSON, markdown table, vb. tahmin etmesin
- Persona değil rol ver → “Sen bir senior engineer…” yerine “Bu PR’da reviewer’sın, sadece güvenlik bul”
Sıradaki
İlk sub-agent kullanımı — Explore ile codebase taraması yapacağız ve sub-agent’ın izole context’inin gücünü göreceğiz.