Geçen hafta üçüncü kez aynı soruyla karşılaştım. “Skill yazdım, Claude tutarsız davranıyor. Neden?” Cevap hep aynı yerde saklı. Ama kimse sormak istemiyor çünkü soru biraz utandırıcı: O skill’de gerçekten çalışan bir şey var mı?
Şunu bir düşün. Birine “araba sürmesini öğret” diyorsun. Adam sana bir A4 kağıdı uzatıyor. Üzerinde şunlar yazıyor:
- Direksiyonu dengeli tut
- Hız sınırına dikkat et
- Ani fren yapma
Kağıdı okudun. Arabaya bindin. Kaza yaptın.
Adam “ama skill verdim sana” diyor.
Bu tam olarak şu an yapay zeka dünyasında olan şey.
Skill ile Kural Listesi Arasındaki Fark
SKILL.md açıyorsun. İçinde “şunu yap bunu yapma” var. Bunun adı skill değil, kural listesi. Farkı şu: kural listesi LLM’in ne yapması gerektiğini söyler. Skill ise LLM’in yapamayacağı şeyleri onun yerine yapar.
LLM probabilistik bir sistem. Bu teknik bir şikayet değil, mimarinin kendisi. Aynı prompt’u iki kez çalıştır, farklı output alabilirsin. GPU üzerindeki floating-point işlemler associative değil. Batch size değişiyor, infrastructure değişiyor, output değişiyor. temperature=0 versen bile tam deterministik davranış garanti değil.
Bunu bilerek kuruyorsan sistem farklı görünür.
Somut Örnek: Docx Üretmek
Elinde bir docx üretme işi var. İki yol:
Birinci yol: Markdown umut
SKILL.md’ye yazıyorsun: “python-docx kullan, heading hierarchy’ye dikkat et, table of contents ekle.” LLM okuyor, anlıyor, üretiyor. Bazen doğru. Bazen heading’leri karıştırıyor. Bazen TOC eksik çıkıyor. Sen her seferinde kontrol ediyorsun. Bu iş sana kaldı.
İkinci yol: Script gerçeklik
scripts/build_document.py var. LLM sadece içeriği hazırlıyor, dosyayı script üretiyor. scripts/validate_structure.py var, üretilen dosyayı kontrol ediyor. Hata varsa net error dönüyor. LLM “belki çalışmıştır” modunda değil, “çalıştı mı çalışmadı mı” belli.
İkinci yolda LLM orkestrasyon yapıyor. Keman çalıyor. Davul başka biri çalıyor.
Skill’ini Test Etmenin Tek Yolu
Skill’indeki LLM’i kafandan çıkar. Geriye ne kaldı?
Çalışan bir şey kaldıysa skill var. Sadece markdown kaldıysa niyet var.
Her Şeyi Script’e Bağlamak da Saçmalık
Karşı argümanı da söyleyeyim, çünkü dengeli bakmak lazım.
“Bize özel tonla yaz” için script gerekmez. “Bu template’i takip et” için script gerekmez. Bunlar zaten esnek olması gereken şeyler, LLM’in yorumlaması beklenen şeyler.
Ama dosya üretiyorsan, API’ye çağrı yapıyorsan, veri dönüştürüyorsan, validation bekliyorsan: script olmalı. Çünkü bu işlerde “büyük ihtimalle doğrudur” yeterli değil.
| İş Türü | Markdown Yeterli mi? | Script Gerekli mi? |
|---|---|---|
| Ton ve üslup belirleme | Evet | Hayır |
| Template takibi | Evet | Hayır |
| Dosya üretimi (docx, pdf, csv) | Hayır | Evet |
| API entegrasyonu | Hayır | Evet |
| Veri dönüştürme ve validation | Hayır | Evet |
| Deterministik output gerektiren işler | Hayır | Evet |
Asıl Problem: “Yazdım” ile “Kurdum” Arasındaki Uçurum
Herkes skill ekosisteminin büyüdüğünü görüyor, heyecanlanıyor, kendi skill’ini yazıyor. Ama “skill yazdım” ile “skill kurdum” arasındaki farkı ölçmüyor kimse.
200 tane markdown dosyası koyup “sistemim güçlü” demek, 200 tane yapılacaklar listesi yazıp “çok üretkenim” demek gibi bir şey.
Liste yazmak iş değil. Script çalıştırmak iş.
Peki Ne Yapmalı?
Eğer bir skill ekosistemi kuruyorsan, şu üç soruyu sor:
- LLM’i çıkarsam geriye ne kalıyor? Eğer sadece .md dosyaları kalıyorsa, bir skill sistemi değil, bir dilek listesi kurmuşsun.
- Output’u kim doğruluyor? LLM kendi output’unu doğrulayamaz. Validation script’in yoksa her çıktı “muhtemelen doğru” kategorisinde kalır.
- Tekrarlanabilir mi? Aynı input’u 10 kez ver. 10’unda da aynı sonucu alıyor musun? Almıyorsan deterministik kısmı script’e taşı.
Türkiye İçin Pratik Çıkarımlar
Bu mesele sadece Silicon Valley’deki prompt mühendislerini ilgilendirmiyor. Türkiye’de de yapay zeka projelerinin sayısı hızla artıyor. Ama çoğu proje hâlâ “prompt yazıp dua et” aşamasında.
Eğer bir SaaS kuruyorsan, bir otomasyon inşa ediyorsan, bir müşteriye yapay zeka çözümü satıyorsan: müşterinin parasını markdown’a değil, çalışan koda yatır.
Prompt mühendisliği önemli. Ama mühendislik kelimesinin içinde mühendisin olması lazım.
Skill’inizde tek bir .py veya .sh var mı?
Yoksa hâlâ umut mu satıyoruz?