çoğu kişi claude code'u açar, bir komut yazar, cevabı bekler, başka bir komut daha yazar.
bu bir ferrari alıp sadece birinci viteste kullanmak gibi bir şey.
bazı insanların neden claude code'dan diğerlerine göre 10 kat daha fazla verim aldığını anlamak istedim. bunun üzerine her mantıklı insanın yapacağı şeyi yaptım: tüm kaynak kodunu okudum ("ben" derken tabii ki claude code'dan bahsediyorum).
11 katmanlı mimari. binlerce satır kod. terminal sohbeti kılığına girmiş bir ajan orkestrasyon platformu.
işte kaynak kodun bu şeyi gerçekten nasıl kullanacağınıza dair ortaya çıkardıkları.
1. CLAUDE.md HER TURDA YÜKLENİR. HER. TEK. TURDA.
bu yapabileceğiniz en yüksek kaldıraçlı şeydir ve neredeyse hiç kimse bunu düzgün yapmaz.
çoğu insanın ya CLAUDE.md dosyasında hiçbir şey yoktur ya da kocaman bir ansiklopedi yazmışlardır.
kaynak kodu, claude code'un CLAUDE.md dosyalarınızı HER sorgu yinelemesinde okuduğunu gösteriyor. oturum başında değil. her turda. yani her mesaj gönderdiğinizde talimatlarınızı yeniden okuyor.
koca bir hiyerarşi var:
- ~/.claude/CLAUDE.md — genel (kodlama stiliniz, tercihleriniz)
- ./CLAUDE.md — proje seviyesi (mimari kararlar, kurallar)
- .claude/rules/*.md — modüler kurallar
- CLAUDE.local.md — özel notlar (gitignore ile hariç tutulur)
40.000 karakterlik bir alanınız var. bu ÇOK FAZLA. çoğu kişi belki 200 karakter kullanıyor.
mimari kararlarınızı oraya koyun. dosya kurallarınızı. test desenlerinizi. "asla bunu yapma" kurallarınızı. model bunları her turda okuyor. işte claude code'un sıradan bir asistan olmasıyla SİZİN kod tabanınızı bilen asistanınız olması arasındaki fark bu.
bundan sonra tek bir şey yapacaksanız, bu olsun.
2. alt ajanlar önbelleği paylaşır (paralellik neredeyse bedavadır)
aklımı başımdan alan şey buydu.
claude code bir alt ajan oluşturduğunda, üst ajanın bağlamının bayt birebir kopyasını oluşturur. API bunu önbelleğe alır. yani kod tabanınızın farklı bölümleri üzerinde çalışmak üzere 5 ajan başlatmak, sırayla çalışan 1 ajandan neredeyse hiç pahalı değildir.
tekrar okuyun.
5 ajan. 1 ajanla aynı maliyet. çünkü hepsi aynı önbelleğe erişiyor.
çoğu kişi claude code'u tek bir işçi gibi kullanır. bir seferde bir görev. bitmesini bekler. sonraki görevi verir.
kaynak kodunda alt ajanlar için tam anlamıyla üç yürütme modeli var:
- fork — üst ajanın bağlamını devralır, önbellek optimize edilmiştir
- teammate — tmux veya iterm'de ayrı bir bölme, dosya tabanlı posta kutusu ile iletişim kurar
- worktree — kendi git çalışma ağacını alır, ajan başına izole dal
claude code'a 5 ajan başlatmasını söyleyebilirsiniz: biri güvenlik denetimi yapar, biri kimlik doğrulama modülünü yeniden düzenler, biri testler yazar, biri dokümantasyonu günceller, biri hataları düzeltir. hepsi aynı anda. hepsi önbelleği paylaşır.
mimari BUNUN İÇİN inşa edilmiş. tek iş parçacıklı kullanmak tam bir suç.
3. izin sistemi yapılandırılmak için tasarlanmıştır, tıklanarak geçilmek için değil
claude code her "bu işleme izin ver?" dediğinde ve siz evet dediğinizde, bu bir özellik değil, yapılandırma hatasıdır.
kaynak kodu 5 seviyeli bir ayar dizisi ortaya çıkarıyor:
1policy > flag > local > project > user
~/.claude/settings.json dosyasında her zaman izin verilenler için kalıplar belirleyebilirsiniz:
1{2 "permissions": {3 "allow": [4 "Bash(npm *)",5 "Bash(git *)",6 "Edit(src/**)",7 "Write(src/**)"8 ]9 }10}
üç izin modu vardır:
- bypass — hiçbir izin kontrolü yok (tehlikeli ama hızlı)
- allowEdits — çalışma dizininizdeki dosya düzenlemelerine otomatik izin verir
- auto (bu yeni) — her eylem için bir LLM sınıflandırıcı çalıştırır. işte en ideal nokta burası.
auto modunun yapılandırabileceğiniz kendi izin/reddetme listeleri vardır. kaynak kodu, birden çok çözümleyicinin paralel olarak yarıştığını gösterir: kullanıcı tıklaması, hook sınıflandırıcısı, köprü ve ilk yanıt veren kazanır.
"izin ver"i tıklamak için her durduğunuzda boşa harcanan zamandır. bir kere yapılandırın. bir daha asla tıklamayın.
4. 5 farklı sıkıştırma stratejisi var. bağlam baskısı gerçek bir sorun
kaynak kodunda, konuşma çok uzadığında onu sıkıştırmak için BEŞ farklı yöntem var:
- microcompact — eski araç sonuçlarının zamana dayalı temizlenmesi
- context collapse — konuşma bölümlerini özetler
- session memory — önemli bağlamı bir dosyaya çıkarır
- full compact — tüm geçmişi özetler
- PTL truncation — en eski mesaj gruplarını atar
bu size önemli bir şey söylüyor: bağlam taşması, mühendislerin ÇOK fazla zaman harcadığı merkezi bir sorundur.
bunun sizin için anlamı:
- proaktif olarak \
/compact\kullanın. sistemin otomatik sıkıştırma yapıp önemsediğiniz bağlamı kaybetmesini beklemeyin.
- varsayılan pencere 200K token'dır. ancak \
[1m]\model sonekini kullanarak 1M token'a kadar çıkabilirsiniz. çok sayıda dosyayı kapsayan büyük yeniden düzenlemeler için bu önemlidir.
- uzun oturumlar "oturum belleği" biriktirir — görev özellikleri, dosya listeleri, iş akışı durumu, hatalar ve öğrenilenlerin yapılandırılmış özetleri. bu nedenle bir oturuma devam etmek, sıfırdan başlamaktan daha iyidir.
- büyük araç sonuçları, modele yalnızca 8 KB'lık bir önizleme gönderilerek diske kaydedilir. büyük bir dosya yapıştırırsanız, modelin yalnızca bir kısmını görmesi olasıdır. girdileri odaklı tutun.
claude code'dan en iyi şekilde yararlananlar, \/compact\'ı bir video oyununda manuel kaydetme noktası gibi kullanır. önemli olanı koruyun, önemsiz olanı temizleyin, ilerlemeye devam edin.
5. hook sistemi gerçek uzantı API'sidir (25'ten fazla yaşam döngüsü olayı)
bu, neredeyse hiç kimsenin bilmediği güç kullanıcı özelliğidir.
kaynak kodu, bağlanabileceğiniz 25'ten fazla yaşam döngüsü olayını ortaya çıkarıyor:
- PreToolUse — herhangi bir araç çalıştırılmadan önce çalışır
- PostToolUse — herhangi bir araç çalıştırıldıktan sonra çalışır
- UserPromptSubmit — bir mesaj gönderdiğinizde çalışır
- SessionStart / SessionEnd — oturum yaşam döngüsü
- ve 20'den fazlası
5 tür hook ile:
- command — bir kabuk komutu çalıştırır
- prompt — LLM aracılığıyla bağlam ekler
- agent — tam bir ajan doğrulama döngüsü çalıştırır
- HTTP — bir webhook çağırır
- function — JS çalıştırır
yapabileceklerinize dair gerçek örnekler:
- her dosya yazmadan önce otomatik lint çalıştırma
- her düzenlemeden sonra testleri çalıştırma
- her komuta otomatik olarak ilgili dokümanları ekleme
- bir görev tamamlandığında slack bildirimi gönderme
- kod gönderilmeden önce güvenlik desenlerinin takip edildiğini doğrulama
\UserPromptSubmit\ hook'u özellikle çılgınca. gönderdiğiniz HER mesaja \additionalContext\ ekleyebilirsiniz. test çıktılarını, son git farklarını veya proje durumunu yazmadan her komuta otomatik olarak eklediğinizi hayal edin.
claude code'un üzerine kendi özel geliştirme ortamınızı böyle inşa edersiniz. daha iyi komut yazarak değil. sistemin kendisine bağlanarak.
6. oturumlar kalıcıdır ve devam ettirilebilir (sürekli sıfırdan başlamayı bırakın)
her konuşma şurada JSONL olarak kaydedilir:
1~/.claude/projects/{hash}/{sessionId}.jsonl
kaynak kodu şunları destekler:
- --continue — son oturumunuza devam edin
- --resume — belirli bir geçmiş oturumu seçin
- --fork-session — geçmiş bir konuşmadan dal oluşturun (şahsen bunu çok seviyorum)
oturum belleği çıkartma, sıkıştırmalar arasında önemli bağlamı korur: görev özellikleri, dosya listeleri, iş akışı durumu, hatalar ve öğrenilenler.
çoğu kişi claude code'u her açtığında yeni bir oturum başlatır. bu, IDE'nizi kapatıp her saat başı sıfırdan açmak gibidir. ne yaptığınızla, neyin başarısız olduğuyla, ne öğrendiğinizle ilgili tüm bağlam — gitti.
\--continue\ kullanın. her zaman. bağlamın birikmesine izin verin. oturum belleğinin zamanla öğrenilenleri biriktirmesine izin verin. kaynak kodu tam anlamıyla bunun için altyapıya sahip. kullanın.
7. araç sistemi, akıllı toplu işleme ile 60'tan fazla aracı çalıştırır
claude code'un 60'tan fazla yerleşik aracı vardır. ancak ilginç kısım, bunları NASIL çalıştırdığıdır.
kaynak kodu, araç çağrılarını iki kategoriye ayırır:
- eşzamanlı — salt okunur işlemler (dosya okuma, arama, globbing) paralel olarak çalışır
- seri — değiştirme işlemleri (düzenlemeler, yazmalar, bash komutları) birer birer çalışır
bu, claude code'un kod tabanınızı anlamak için 10 dosyayı okuması gerektiğinde, 10'unu da aynı anda okuduğu anlamına gelir. ancak 3 dosyayı düzenlemesi gerektiğinde, çakışmaları önlemek için bunları birer birer yapar.
yerleşik araçların üstüne, daha fazla araç ekleyen MCP sunucuları bağlayabilirsiniz. kaynak kodu, ertelenmiş yükleme kullanır. MCP araçları yalnızca ihtiyaç duyulduğunda yüklenir, bu nedenle 5 MCP sunucusu bağlamak her isteği yavaşlatmaz.
Ayrıca, ajanın henüz bilmediği araçların ertelenmiş keşfi için ToolSearch da vardır.
pratik çıkarım: iş akışınız harici sistemleri (veritabanları, bulut sağlayıcıları, CI/CD) içeriyorsa, onlar için MCP sunucuları bağlayın. mimari karmaşıklığı halleder. siz sadece daha fazla yetenek kazanırsınız.
8. akış mimarisi, müdahaleyi ucuz hale getirir
tüm işlem hattı, bireysel olaylar veren asenkron jeneratörler kullanır. Escape tuşuna basmak, önceki bağlamı kaybetmeden mevcut akışı temiz bir şekilde durdurur.
bu küçük görünebilir ancak claude code'u nasıl kullanmanız gerektiğini değiştirir.
yanlış gittiğini bildiğiniz bir yanıtı beklemeyin. hemen müdahale edin ve yönlendirin. kaynak kodu bunun için tasarlanmıştır. önceki bağlamınız korunur. kesintiye uğrayan yanıt temiz bir şekilde atılır. sıfır ceza.
bunu bir çift programlama gibi düşünün. eşiniz yanlış yola sapmaya başlarsa, bitirmesini beklemezsiniz. "aslında, şu yöne git" dersiniz. aynı enerji.
9. yeniden deneme sistemi düşündüğünüzden daha karmaşıktır
kaynak kodu şunları ortaya çıkarıyor:
- 500ms tabanlı üstel geri çekilme ve rastgele dalgalanma ile 10 yeniden deneme
- 401/403'te otomatik OAuth token yenileme
- model yedekleme: Opus 529 hatasıyla 3 kez başarısız olursa, otomatik olarak Sonnet'e düşer
- akışlarda 90 saniyelik boşta bekçi — akış durursa, akışsız moda düşer
- kalıcı modda, maksimum 5 dakika geri çekilme ile sonsuz yeniden deneme
bu, claude code'un çalışmaya devam edecek şekilde tasarlandığı anlamına gelir. API aksaklıklarını, hız sınırlamalarını ve kesintileri zarif bir şekilde halleder. ona bakıcılık yapmanız gerekmez. arka planda çalışmasına izin verin ve sonuçları görmek için geri gelin.
kısacası: kaynak kodundan en yüksek kaldıraçlı eylemler:
• gerçek bir CLAUDE.md dosyası yazın → her turda yüklenir. 40K karakter. en yüksek kaldıraçlı yapılandırma.
• alt ajanlarla paralelleştirin → fork modeli önbelleği paylaşır. 5 ajan ≈ 1 ajan maliyeti.
• settings.json'da izinleri yapılandırın → tıklama yorgunluğunu sonsuza kadar ortadan kaldırın.
• proaktif olarak /compact kullanın → 5 sıkıştırma stratejisi vardır çünkü bağlam baskısı gerçektir.
• hook'lar kurun → 25'ten fazla olay, 5 tür. gerçek uzantı API'si budur.
• oturumlara her zaman --continue ile devam edin → JSONL kalıcılığı + oturum belleği = birikmiş bağlam.
• MCP sunucuları bağlayın → ertelenmiş yükleme, kullanılana kadar sıfır maliyet anlamına gelir.
• özgürce müdahale edin → asenkron jeneratörler, yönlendirme için sıfır ceza anlamına gelir.
alt satır: claude code, terminal kullanıcı arayüzü giymiş bir ajan orkestrasyon platformudur.
ondan 10 kat daha fazla çıktı alanlar daha iyi komut yazanlar değil. onu yapılandırdılar. paralelleştirdiler. ona bağlandılar. bağlamın oturumlar boyunca birikmesine izin verdiler.
kaynak kodu bunu apaçık ortaya koyuyor. artık perde arkasında gerçekte ne yaptığını biliyorsunuz.
faydalı bulduysanız rt'leyin 🫶





