Claude Code Kaynak Kodunu Sizin Yerine İnceledim

@mal_shaik
İNGILIZCE4 ay önce · 31 Mar 2026
1.7M
2.3K
334
54
6.0K

TL;DR

Bu makale, Anthropic'in Claude Code CLI aracının iç mimarisini parçalara ayırarak CLAUDE.md dosyasını nasıl optimize edeceğinizi, paralel alt aracıları ücretsiz nasıl kullanacağınızı ve özel kancalarla iş akışlarını nasıl otomatize edeceğinizi ortaya koyuyor.

ç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:

text
1policy > flag > local > project > user

~/.claude/settings.json dosyasında her zaman izin verilenler için kalıplar belirleyebilirsiniz:

json
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:

  1. microcompact — eski araç sonuçlarının zamana dayalı temizlenmesi
  1. context collapse — konuşma bölümlerini özetler
  1. session memory — önemli bağlamı bir dosyaya çıkarır
  1. full compact — tüm geçmişi özetler
  1. 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:

text
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 🫶

YouMind’da yeniden üret

Turn one viral article into a full content workflow

Collect the source, decode the pattern, create assets, draft the story, and distribute from one AI workspace.

Explore YouMind
Üreticiler için

Markdown'ınızı temiz bir 𝕏 makalesine dönüştürün

Kendi uzun yazılarınızı yayımlarken görselleri, tabloları ve kod bloklarını 𝕏 için biçimlendirmek zahmetlidir. YouMind, eksiksiz bir Markdown taslağını temiz ve hemen paylaşılabilir bir 𝕏 makalesine dönüştürür.

Markdown'dan 𝕏'e deneyin

Çözülecek daha fazla kalıp

Son viral makaleler

Daha fazla viral makale keşfet