image
Muhammed Fatih BAĞCIVAN 01.11.2026 27

Claude ile Geliştirilen Büyük Projelerde Token İsrafı Nasıl Önlenir?

Yapay zekâ destekli yazılım geliştirme araçları, geliştiricilerin çalışma biçimini önemli ölçüde değiştiriyor. Özellikle Anthropic tarafından geliştirilen Claude Code, büyük kod tabanlarını analiz edebilmesi, dosyalar üzerinde işlem yapabilmesi ve karmaşık geliştirme süreçlerini yönetebilmesiyle dikkat çekiyor.

Ancak küçük projelerde fark edilmeyen bir problem, proje büyüdükçe ciddi bir verimlilik sorununa dönüşebiliyor: Gereksiz token tüketimi.

Binlerce satır kod, uzun proje talimatları, çok sayıda MCP aracı, geçmiş konuşmalar ve sürekli tekrar okunan dokümantasyonlar... Bunların tamamı Claude'un çalışma bağlamını etkiliyor.

Peki büyük projelerde Claude Code kullanırken token israfı nasıl önlenebilir? Daha az bağlamla daha verimli sonuçlar almak mümkün mü?

Token Tüketimi Neden Artar?

Claude Code ile çalışırken yalnızca yazdığınız prompt token tüketmez. Modelin değerlendirdiği konuşma geçmişi, okunan dosyalar, proje talimatları ve araçlardan gelen çıktılar da context window içerisinde yer alır.

Örneğin büyük bir Laravel projesinde çalıştığınızı düşünelim. Claude'a bir API hatasını çözmesini istediniz. Bu süreçte model:

  • Projenin ana talimat dosyasını okur.

  • İlgili Controller ve Service dosyalarını inceler.

  • Model ve Migration yapılarını araştırır.

  • Terminal komutları çalıştırır.

  • Test sonuçlarını değerlendirir.

  • Kod üzerinde değişiklikler gerçekleştirir.

Bunların sonucunda oluşan içerik, konuşma bağlamının bir parçası haline gelir. Uzun süren oturumlarda ilgisiz görevlerden kalan içerikler de yeni işlemlerin bağlamını gereksiz yere büyütebilir.

Burada önemli bir ayrıntı bulunuyor: Token tüketimi ile context window kullanımı aynı şey değildir. Prompt caching gibi mekanizmalar tekrar gönderilen içeriklerin maliyetini azaltabilir ancak bu içerikler yine de bağlam alanında yer kaplar.

1. CLAUDE.md Dosyasını Gereksiz Bilgilerle Doldurmayın

Büyük projelerde karşılaşılan en yaygın sorunlardan biri, CLAUDE.md dosyasının zamanla kontrolsüz biçimde büyümesidir.

Başlangıçta birkaç temel kural içeren dosya, zamanla mimari açıklamalar, veritabanı şemaları, API dokümantasyonları, geliştirme notları ve geçmiş görevlerden kalan talimatlarla onlarca sayfaya ulaşabilir.

Oysa CLAUDE.md dosyasının amacı projenin bütün dokümantasyonunu barındırmak değildir. Claude'a projeyi doğru şekilde geliştirebilmesi için ihtiyaç duyduğu temel bilgileri sağlamaktır.

Daha sağlıklı bir yapı şu şekilde oluşturulabilir:

project/
│
├── CLAUDE.md
│
├── .claude/
│   ├── docs/
│   │   ├── architecture.md
│   │   ├── database.md
│   │   ├── api.md
│   │   ├── frontend.md
│   │   └── testing.md
│   │
│   ├── rules/
│   │   ├── backend.md
│   │   └── frontend.md
│   │
│   └── skills/
│       ├── code-review/
│       │   └── SKILL.md
│       └── api-development/
│           └── SKILL.md
│
└── app/

Ana CLAUDE.md dosyasında şu bilgiler bulunabilir:

  • Projenin genel amacı ve teknoloji altyapısı

  • Temel klasör yapısı

  • Önemli geliştirme kuralları

  • Sık kullanılan terminal komutları

  • Ayrıntılı dokümantasyon dosyalarının konumları

Veritabanı ilişkileri, API detayları ve mimari açıklamalar gibi kapsamlı bilgiler ise ihtiyaç duyulduğunda okunabilecek ayrı dosyalarda tutulabilir.

Temel yaklaşım: Her şeyi başlangıçta yüklemek yerine, yalnızca ihtiyaç duyulan bilgiyi ihtiyaç duyulduğunda Claude'a sunmak.

2. Context Window Yönetimini Öğrenin

Context window, Claude'un bir işlem sırasında değerlendirebildiği toplam bağlam alanını ifade eder.

Birçok geliştirici, uzun bir oturum boyunca aynı konuşma üzerinden farklı görevleri yürütmeye devam eder. İlk başta mantıklı görünen bu yaklaşım, zamanla verimliliği düşürebilir.

Örneğin aynı oturumda:

  • Kullanıcı giriş sistemindeki bir hatayı çözmek,

  • Yeni bir veritabanı tablosu oluşturmak,

  • Yönetim paneline yeni bir modül eklemek,

  • SEO düzenlemeleri yapmak

birbirinden farklı bağlamlar gerektirir.

Her yeni görevde önceki işlemlerden kalan bütün bilgiler gerekli değildir.

Claude Code içerisinde bu noktada kullanılabilecek iki önemli komut bulunur:

/clear

Mevcut konuşma geçmişini temizleyerek yeni bir oturum başlatır. Proje dosyaları ve CLAUDE.md gibi kalıcı talimatlar silinmez.

Birbirinden bağımsız görevlere geçerken kullanılması oldukça faydalıdır.

/compact

Mevcut konuşmayı özetleyerek bağlam alanını rahatlatır. Devam eden bir görevi tamamen baştan başlatmak yerine önemli bilgileri koruyarak çalışmayı sürdürmek için kullanılabilir.

Basit bir kural uygulayabilirsiniz:

  • Yeni ve bağımsız görev: /clear

  • Devam eden uzun görev: /compact

  • Mevcut bağlamı inceleme: /context

Özellikle /context komutu, oturumda hangi bilgilerin yer kapladığını anlamak açısından önemlidir.

3. MCP Araçlarını Kontrolsüz Şekilde Çoğaltmayın

MCP (Model Context Protocol), Claude'un harici araçlar ve sistemlerle iletişim kurmasını sağlayan bir protokoldür.

GitHub, veritabanları, dosya sistemleri ve çeşitli API servisleri MCP aracılığıyla Claude Code'a bağlanabilir.

Ancak her yeni entegrasyonun beraberinde getirdiği araç tanımları ve açıklamaları da bağlam üzerinde yer kaplayabilir.

Örneğin projenizde yalnızca GitHub üzerinden Pull Request incelemesi yapmanız gerekiyorsa, bu işlemle ilgisi olmayan çok sayıda MCP aracını aynı anda kullanıma açmak gereksiz olabilir.

Bunun için:

  • Gerçekten ihtiyaç duyduğunuz MCP sunucularını kullanın.

  • Kullanılmayan entegrasyonları devre dışı bırakın.

  • Aynı işi yapan birden fazla araç bulundurmayın.

  • Büyük araç çıktılarının tamamını ana konuşmaya taşımaktan kaçının.

  • Mümkün olduğunda gereksiz çıktıları filtreleyin.

Burada amaç MCP kullanımını tamamen azaltmak değil, doğru araçları doğru görevlerde kullanmaktır.

4. Skills ile Tekrarlanan Talimatları Düzenleyin

Her projede tekrar tekrar verilen talimatlar zamanla hem prompt karmaşasına hem de gereksiz bağlam kullanımına neden olabilir.

Örneğin her API geliştirme işleminde Claude'a şu kuralları yeniden açıklamak zorunda kalabilirsiniz:

  • Request validation nasıl yapılmalı?

  • API response formatı nasıl olmalı?

  • Hata yönetimi nasıl gerçekleştirilmeli?

  • Testler hangi standartlara göre yazılmalı?

Bu tür tekrar eden iş akışları için Claude Code Skills kullanılabilir.

Skills, belirli görevler için hazırlanmış talimat ve yardımcı dosya paketleridir.

Örneğin:

.claude/
└── skills/
    ├── api-development/
    │   └── SKILL.md
    │
    ├── code-review/
    │   └── SKILL.md
    │
    ├── database-optimization/
    │   └── SKILL.md
    │
    └── deployment/
        └── SKILL.md

Böylece API geliştirme talimatları her görevde ana proje dosyasına eklenmek yerine, ilgili Skill kullanıldığında devreye girebilir.

Burada önemli nokta, Skills dosyalarını da gereksiz yere uzatmamak ve yalnızca belirli bir iş akışına hizmet eden talimatları burada tutmaktır.

5. Subagent Kullanarak Büyük Görevleri Bölün

Büyük projelerde tek bir Claude oturumuna her şeyi yaptırmak her zaman en verimli yaklaşım değildir.

Örneğin bir e-ticaret projesinde ödeme sistemini incelemek, güvenlik açıklarını araştırmak ve testleri değerlendirmek istediğinizi düşünelim.

Bütün işlemleri ana oturumda gerçekleştirmek yerine, görevleri bağımsız alt ajanlara (Subagent) bölebilirsiniz.

Örnek görev dağılımı:

Subagent Sorumluluk
Code Reviewer Kod kalitesini inceler
Security Analyst Güvenlik risklerini araştırır
Test Agent Testleri çalıştırır ve sonuçları değerlendirir
Database Analyst Veritabanı performansını inceler

Subagent'lar kendi bağlamlarında çalışarak ana oturuma daha odaklı sonuçlar döndürebilir.

Bu yaklaşım özellikle büyük kod tabanlarında faydalıdır. Ancak her görevi alt ajanlara bölmek de doğru değildir. Çok sayıda ajan çalıştırmak toplam token tüketimini artırabilir.

Bu nedenle Subagent kullanımını gerçekten bağımsız ve kapsamlı görevlerle sınırlandırmak gerekir.

6. Terminal Çıktılarını Kontrol Altında Tutun

Token israfının önemli kaynaklarından biri de gereğinden fazla terminal çıktısıdır.

Örneğin yüzlerce satırlık log dosyasını doğrudan Claude'a okutmak yerine yalnızca hatalı kayıtları filtrelemek daha mantıklıdır.

Laravel projelerinde:

tail -n 100 storage/logs/laravel.log

Tüm log dosyasını incelemek yerine son 100 satırı kontrol edebilirsiniz.

Belirli bir hata mesajını aramak için:

grep -i "error" storage/logs/laravel.log | tail -n 30

Benzer şekilde test işlemlerinde yalnızca başarısız sonuçları incelemek, büyük JSON çıktılarından gerekli alanları ayıklamak ve gereksiz debug mesajlarını kaldırmak faydalıdır.

Unutmayın: Claude'un ihtiyaç duymadığı binlerce satırlık çıktı, ona daha fazla bilgi vermek anlamına gelmez.

7. Her Görev İçin Ayrı Oturum Açın

Büyük projelerde düzenli oturum yönetimi, token optimizasyonunun en basit ama en etkili yöntemlerinden biridir.

Bir görev tamamlandığında yeni bir işe geçmeden önce oturumun mevcut durumunu değerlendirin.

Örneğin:

Oturum 1: Kullanıcı yönetimi modülü

Oturum 2: Ödeme sistemi entegrasyonu

Oturum 3: Veritabanı performans optimizasyonu

Oturum 4: Yönetim paneli arayüz düzenlemeleri

Bu yaklaşım, birbirinden bağımsız görevlerin geçmiş konuşmalarını sürekli yeni işlemlere taşımayı önler.

Ancak oturumları ayırırken önemli proje kararlarını kaybetmemek gerekir. Devam edecek görevler için gerekli teknik bilgileri kısa ve düzenli notlar halinde saklamak daha doğru bir yöntemdir.

8. Büyük Dosyaları Parçalara Ayırın

Sadece CLAUDE.md değil, projedeki diğer dokümantasyon dosyaları da kontrolsüz biçimde büyüyebilir.

Örneğin 2.000 satırlık tek bir mimari doküman yerine aşağıdaki gibi bir yapı oluşturmak daha verimli olabilir:

.claude/docs/
├── architecture.md
├── database.md
├── authentication.md
├── payment.md
├── api.md
└── deployment.md

Böylece ödeme sistemi üzerinde çalışırken bütün proje dokümantasyonunu değil, yalnızca ilgili bölümleri incelemek mümkün olur.

Burada dikkat edilmesi gereken bir detay var: Dosyaları bölmek tek başına yeterli değildir. Claude'un hangi dosyanın hangi bilgiyi içerdiğini anlayabilmesi için ana talimat dosyasında kısa bir dokümantasyon indeksi bulunmalıdır.

Sonuç: Daha Fazla Token Değil, Daha Doğru Bağlam

Claude Code ile büyük projeler geliştirmek, yalnızca güçlü bir yapay zekâ modeline sahip olmakla ilgili değildir. Modelin hangi bilgilere eriştiğini, hangi araçları kullandığını ve geçmiş konuşmalardan neleri taşıdığını yönetmek de en az kod kalitesi kadar önemlidir.

Özellikle büyük projelerde şu alışkanlıklar ciddi fark yaratabilir:

  1. CLAUDE.md dosyasını kısa ve amaca yönelik tutun.

  2. Ayrıntılı dokümantasyonu ayrı dosyalara bölün.

  3. Bağımsız görevlerde /clear kullanın.

  4. Uzun süren görevlerde /compact ile bağlamı düzenleyin.

  5. MCP araçlarını ihtiyaçlarınıza göre sınırlandırın.

  6. Tekrarlanan iş akışlarını Skills ile yönetin.

  7. Büyük ve bağımsız görevlerde Subagent kullanın.

  8. Terminal çıktılarından yalnızca gerekli bilgileri aktarın.

Unutmayın: Yapay zekâ ile verimli yazılım geliştirmenin sırrı, modele mümkün olduğunca fazla bilgi vermek değil, doğru zamanda doğru bilgiyi sunmaktır.

Büyük bir projede binlerce satırlık talimat dosyası oluşturmak yerine, iyi organize edilmiş bir proje hafızası ve doğru bağlam yönetimiyle çok daha sürdürülebilir bir geliştirme süreci oluşturabilirsiniz.

Paylaş: