· kaynak dev.to (home feed)
Deney, hangi CLAUDE.md dosyalarının Claude Code'a ulaştığını ve her birinin token maliyetini haritaladı
Bir dev.to deneyi altı CLAUDE.md dosyasını kod kelimeleriyle etiketleyip sonucu ölçtü: üçü başlangıçta yaklaşık 1.600 token maliyetiyle yükleniyor, alt dizin dosyaları yalnızca bir Read sonrasında geliyor ve bir --add-dir dosyası için ortam değişkeni gerekiyor.

Deney ne yaptı
dev.to'da yayımlanan bir deney, çoğu Claude Code kullanıcısının muhtemelen merak ettiği bir soruya yanıt aradı: bir makinenin zamanla biriktirdiği çeşitli CLAUDE.md dosyalarından hangileri gerçekten modele ulaşıyor, ne zaman geliyor ve her biri neye mal oluyor?
Yazar, altı konumda altı bellek dosyası içeren bir test laboratuvarı kurdu: çalışma dizininin üstündeki bir üst dizin, çalışma dizininin kendisi (hem CLAUDE.md hem CLAUDE.local.md barındırıyordu), iki iç içe alt dizin ve yalnızca --add-dir üzerinden erişilebilen bir kardeş dizin. Her dosya, CW-PARENT-4417 veya CW-SUBDIR-6621 gibi benzersiz bir kod kelime taşıyordu ve her dosya 4.543 ile 4.669 bayt aralığına düşecek şekilde dolgu malzemesiyle şişirilmişti. Eşit boyutlar, token sayılarındaki herhangi bir farkın dosya boyutunu değil, yükleme davranışını yansıttığı anlamına geliyordu.
Tüm çalıştırmalar 2026-09-16 tarihinde Claude Code v2.1.273 ile aynı model üzerinde, mktemp -d ile oluşturulmuş tek kullanımlık bir dizinde yapıldı. Sonda prompt'u, modelden araç çağırmadan bağlamında görünen her CW- dizisini listelemesini istedi. Yazar yalnızca modelin yanıtlarına güvenmedi; Claude Code'un ~/.claude/projects/ altına yazdığı transkriptlerdeki istek başına token kullanımını ve ek kayıtlarını da okudu.
Üç dosya girdi, ikisi bedava
Başlangıçta altı dosyadan üçü modele şu sırayla teslim edildi: üst dizindeki CLAUDE.md, proje CLAUDE.md, ardından CLAUDE.local.md. Bu sıralama dosya sistemi kökünden çalışma dizinine doğru ilerliyor; yerel varyant ise aynı dizindeki normal dosyanın sonuna ekleniyor.
dev.to yazısına göre sayılar şöyle: hiçbir yerde CLAUDE.md bulunmayan bir temel oturum ilk istekte 18.442 input token tüketmişti. Proje CLAUDE.md'sini eklemek bunu 1.638 token artırdı; CLAUDE.local.md 1.559 daha ekledi; üst dizin dosyası 1.594 ekledi. İki alt dizin dosyasını eklemekse toplamı tam olarak sıfır değiştirdi.
Dikkat çekici bir ayrıntı: üst dizin dosyası deponun git kökünün üstünde durmasına rağmen transkript onu, deponun kendi dosyasıyla aynı şekilde Project olarak sınıflandırdı. Dizin gezintisi depo sınırında durmuyor ve ekin içinde o dosyanın deponun dışından geldiğini gösteren hiçbir şey yok.
CLAUDE.local.md'nin kapatılabilir olduğu da ortaya çıktı. --setting-sources değeri user,project olarak ayarlanarak çalıştırıldığında ilk istek 21.674 token'a düştü — tam olarak yerel dosyanın malolduğu 1.559 token.
Alt dizin dosyaları yalnızca istek üzerine yüklenir
Alt dizin dosyalarını tetiklemek için yazar, modelin tek bir Read çağrısı yapmasını sağlayacak şekilde prompt'u değiştirdi. Çalışma dizinindeki bir kontrol dosyasını okumak ikinci isteği yalnızca 154 token büyüttü; bu, araç çağrısının ve tek satırlık sonucunun maliyeti. sub/data.txt okumaksa onu 1.787 token büyüttü; transkript, sub/CLAUMD.md'nin nested_memory eki olarak geldiğini gösteriyordu — dosyanın kendisi için net yaklaşık 1.630 token, yani aynı boyuttaki üst dizin dosyasının başlangıçtaki maliyetinden yaklaşık 40 token fazla; yazar bu farkı açıklamadı.
sub/deep/ içindeki bir dosyayı okumak sırayla iki kayıt yükledi — önce sub/CLAUDE.md, sonra sub/deep/CLAUDE.md — ve toplam büyüme 3.380 token oldu. Başka bir deyişle, birkaç seviye aşağıda yapılan tek bir okuma, yalnızca en yakın dosyayı değil, çalışma dizini ile hedef dosya arasındaki her CLAUDE.md'yi içine çekiyor.
Hiç gelmeyen dosya
Yalnızca --add-dir üzerinden erişilebilen ekstra dizindeki bellek dosyası modele hiçbir zaman ulaşmadı — model o dizinin içindeki bir dosyayı okuduktan sonra bile — ta ki yazar buna izin veren bir ortam değişkeni ayarlayana kadar. Bu durum Claude Code dokümantasyonuyla tutarlı; dokümantasyon, --add-dir dizinlerinden gelen CLAUDE.md dosyalarının varsayılan olarak yüklenmediğini belirtiyor.
Ölçüm gürültüsü ve nasıl giderildiği
İlk on çalıştırma bir ölçüm tuzağını ortaya çıkardı: özdeş iki yapılandırma 23.624 ve 24.410 input token döndürdü. Transkriptlerdeki tek fark, uzak bir bağlayıcının araç listesiydi; görünüşe göre yazarın tam olarak doğrulamadığı bir başlangıç yarışıydı bu. --strict-mcp-config eklemek ve ayar geçersiz kılmayla her çalıştırma için hook'ları devre dışı bırakmak, sonraki tüm çalıştırma çiftlerinin tam olarak eşleşmesini sağladı. Erken çalıştırmalar çıkarıldı ve 28 temiz çalıştırma kaldı.
Neden önemli
Başlangıçta yüklenen her CLAUDE.md dosyası, bir oturumun yaptığı her istekte yaklaşık 1.600 token'a mal oluyor; dolayısıyla üst dizin, proje ve yerel bellek dosyalarıyla yığılmış projeler bu yükü sürekli ödüyor — ve deponuzun üstündeki bir dizinde başıboş duran bir CLAUDE.md sessizce bağlama katılıp proje belleği olarak sınıflandırılıyor. Öbür yüzü monorepo kullanıcıları için iyi haber: alt dizin belleği, altındaki bir dosya gerçekten okunana kadar bedava; ancak derin okumalar aradaki her dosyayı bir anda zincirleme içine çekiyor. Ve bellek dosyalarının gelmesi için --add-dir dizinlerine bel bağlayanlar, varsayılan olarak onları hiç almıyor.
- #claude-code
- #anthropic
- #llm
- #developer-tools
- #context-management