Konuşma uzayıp gidiyor. Bir çözüm önerisini reddedip nedenini açıklamışsınız, ama on mesaj sonra ajan yine aynı öneriyi sunuyor. İlk tepki belli: her şeyi silip baştan başlamak.

Reddedilmiş bir çözümün tekrarlanması dikkat çekici bir işarettir, ama henüz teşhis değildir. Tek bir yanıta bakarak sorunun birikmiş konuşmadan kaynaklandığını söyleyemezsiniz: çelişkili bir görev tanımı ya da ajanın yarım saat önceki dosya sürümünü kullanması da aynı görüntüyü verir.

Konuşmanın kendisiyle çalışan üç komuta bakalım: /context pencerenin nelerle dolu olduğunu gösterir, /compact geçmişi kısa bir özete indirger, /clear yeni bir konuşma başlatır. Asıl mesele komutların sözdizimi değil, hangisini seçeceğiniz: öncesinde neyi saklamalı, sonrasında neyi kontrol etmeli ve sorunun konuşmanın uzunluğuyla ilgisi olmadığını nasıl anlamalısınız?

Önce sorunu bulun

Bir şeyi sıkıştırmadan ya da temizlemeden önce dört durumu birbirinden ayırın. Dışarıdan benzer görünürler; dördünde de ajan "dinlemiyor" gibidir, ama gereken adımlar farklıdır.

  • Gerekli başlangıç bilgileri yok. Ödülün nasıl verileceğini kimse söylememiş ve okunan dosyalarda da bu bilgi yok. Konuşmayı kısaltmak, içinde hiç olmayan bilgiyi ortaya çıkarmaz; eksik bilgiyi sizin sağlamanız gerekir.
  • Bilgiler güncel değil. Konuşmada yarım saat önce okunmuş bir dosyanın içeriği var, ama dosyanın diskteki sürümü değişmiş. Çözüm sıkıştırmak değil, dosyayı yeniden okumaktır.
  • Görev tanımı çelişkili. Sohbette bir şey söylendi, kaydedilmiş görev tanımında başka bir şey yazıyor. Hangi gereksinimin geçerli olduğuna siz karar verip kaynağı düzeltin. Sırf dosyada yazıyor diye dosya kendiliğinden haklı olmaz.
  • Konuşmada gereksiz birikinti var. Reddedilmiş birçok seçenek, uzun komut çıktıları, görevle ilgisi olmayan dosyalar üzerine tartışmalar. İşte bağlamı düzenlemek burada gerçekten işe yarar.

Pencerenin dolması bu listenin beşinci maddesi ya da her hatanın açıklaması değildir. Yüksek bir yüzde, ajanın bu yüzden hata yaptığını tek başına kanıtlamaz; düşük bir yüzde de konuşmanın sorunsuz olduğunu göstermez. Kontrol sırası basit: görev tanımı, dosyaların güncelliği, çıktılardaki bilgilerin güncelliği, en son da konuşmanın durumu.

Kontrol sorusu

Claude Code'dan görevin mevcut hedefini, kısıtlarını ve önerdiği çözümün dayandığı dosyaları söylemesini isteyin. Yanıtı kendi gördüklerinizle karşılaştırın. Görevle ilgisiz bir dosya ortaya çıkarsa ya da hedef sizin tanımladığınızdan farklı görünürse, neyi düzeltmeniz gerektiğini artık biliyorsunuz; sorun konuşmanın uzunluğuyla ilgili olmayabilir. Aynı soru sıkıştırmadan sonra ve yeni bir konuşmanın başında da işinize yarar.

Pencerenin doluluğuna bakın

Yine de sorunun konuşmanın kendisinden kaynaklandığından şüpheleniyorsanız /context komutunun çıktısına bakın. Komut, pencerenin nelerle dolu olduğunu kategorilere ayırarak gösterir: sistem bölümü, proje talimatları, okunan dosyalar ve komut çıktıları, konuşma geçmişi, boş alan. Artık görev için gerekmeyen bilgilerin hangileri olduğuna siz karar verirsiniz. Komut, okunanların anlamını değerlendirmez; mesajlar için gösterilen tek toplam satır da hangi dosyanın gereksiz olduğunu söylemez.

"Şu yüzdeyi aşınca sıkıştırmak gerekir" gibi evrensel bir eşik yok; pencerenin boyutu da modele ve ayarlara bağlıdır. Yüzdeye değil, pencerenin içeriğine bakın. Şunu da unutmayın: editör sekmesini kapatmak, daha önce konuşmaya alınmış bilgileri kendiliğinden silmez.

Sıkıştırmadan sonra göreve devam edin

/compact komutu geçmişi kısa bir özete indirger, siz de aynı görevde kalırsınız. Claude Code bunu pencere doldukça kendisi de yapar. Komutu elle, zamanlamayı seçmek (örneğin yeni ve büyük bir iş bölümüne geçmeden önce) ve özette neye odaklanılacağını belirtmek istediğinizde çalıştırırsınız.

Temel kısıt şu: saklanan şey konuşmanın kendisi değil, özetidir. Özette yer almayan ayrıntıların pencerede kaldığına güvenemezsiniz. "Şu koşulları sakla" demek de özetin eksiksiz olacağını garanti etmez; bu bir istektir, mekanizma değil.

Neleri saklamalı

Komutu çalıştırmadan önce görevle ilgili kısa bir not hazırlayın: hedef, sınırlar, alınan kararlar, doğrulanmış olgular, sonraki adım. Birkaç dakika sürer. Buna karşılık notu, konuşmaya dair hatıraların aksine, dosyalarla ve kontrol çıktılarıyla karşılaştırabilirsiniz. Bunun için yeni bir dosya oluşturmanız gerekmez; mevcut görev belgesi yeterli.

Ödülün tekrar verilmesiyle ilgili örnek bir alıştırmanın mevcut durumu aşağıda; bu, yapılmış bir kontrolün raporu değil, örnektir:

Hedef: tamamlanmış bir turda ödül yalnızca bir kez verilir; yeni bir turda yeniden verilebilir.
Sınırlar: src/reward-flow.js ve mevcut ödül kontrolü; görünümü değiştirme.
Doğrulandı: ilk ödül verildikten sonra aynı turda tekrar tıklamak skoru yeniden artırıyor.
Kaynak: hatayı yeniden üretme kaydı ve başlangıç durumu TASK_SPEC.md içinde belirtilmiştir.
Reddedildi: tekrar tıklama işlemini düzeltmeden düğmeyi gizlemek.
Sonraki adım: işleyiciyi kontrol edip bir değişiklik önermek; düzeltme ve testler henüz yapılmadı.

Son satıra dikkat edin. Bir davranışın yeniden üretildiğini doğrulamakla düzeltmeyi tamamlamak farklı şeylerdir. Bu ayrım notta görünür olmalı; yoksa sıkıştırmadan sonra "kontrol ettik" kolayca "düzelttik"e dönüşür. Buradaki görev belgesi alıştırma içindir; yolu kendi dosyanızla değiştirin.

Notu kontrol ettikten sonra odağı belirterek sıkıştırabilirsiniz:

/compact Ödülün tekrar verilmesi sorununu düzeltmeye odaklan. Hedefi, TASK_SPEC.md içindeki sınırları, doğrulanmış yeniden üretim adımlarını, reddedilen çözümü ve sonraki adımı koru. Düzeltme ve testlerin henüz yapılmadığını belirt.

Sonrasında neyi kontrol etmeli

Sıkıştırmadan sonra cümlenin ortasından devam etmeyin. Önce doğru kalması gereken bilgileri konuşmaya yeniden ekleyin ve bir kontrol sorusu sorun:

TASK_SPEC.md dosyasını ve güncel src/reward-flow.js dosyasını okuyun. Kısıtı ve sonraki adımı kısaca belirtin. Özet dosyalarla uyuşmuyorsa farklılığı açıklayın. Şimdilik kodu değiştirmeyin.

Yanıtı genel izleniminize göre değil, nottaki satırlarla karşılaştırın. Örneğimizde üç şeyi kontrol ediyoruz:

  • "Sonraki adım" satırında düzeltmenin ve testlerin tamamlandığı söylenmiyor;
  • "Sınırlar" bölümünde görünümü değiştirmeme kısıtı hâlâ var;
  • "Hedef" bölümündeki yeni tur koşulu kaybolmamış.

Ajanın ifadeleri farklı olabilir, sorun değil. Bir koşul kaybolduysa değişiklik yapmadan önce kaynağından yeniden ekleyin. Burada kodu değil, konuşmanın durumunu kontrol ediyorsunuz; bu karşılaştırma bir sonraki değişikliğin doğruluğunu kanıtlamaz.

Sıkıştırma ne yapmaz?

Sıkıştırma yalnızca konuşma geçmişiyle ilgilidir. Dosyalardaki değişiklikleri geri almaz ve Git'in yerini tutmaz. Kök dizindeki CLAUDE.md yeniden yüklendiği için proje kuralları sıkıştırmadan sonra da kalır. Ancak görevin geçici durumunu oraya yazmayın: "şu anda ödül sorununu düzeltiyorum" satırı, görev bittikten sonra da kalır. Ajanın sıkıştırmadan sonra verdiği bilgiler kendiliğinden güvenilir sayılmaz. Kaynağını netleştirin: özet, yeniden okunan dosya ya da yeni bir çalıştırma.

Yeni bir göreve başlayın

/clear komutu önceki konuşma geçmişi olmadan yeni bir konuşma başlatır. Diskteki dosyalar ve proje talimatları kalır; etkin otomatik bellek de kullanılabilir. Yani buradaki "sıfırdan" ifadesi konuşma geçmişiyle ilgilidir. Önceki konuşma silinmez; /resume ile geri dönebilirsiniz.

claude --continue ile karıştırmak kolaydır, oysa ikisi zıt işler yapar. /clear, birikmiş geçmişten ayrılmak için oturum içinde yazılır. claude --continue ise başlatırken terminale yazılır ve bu klasördeki son konuşmaya tüm geçmişiyle dönmenizi sağlar. Sorun konuşmanın kendisiyse --continue sizi doğrudan yeniden o konuşmaya götürür.

Temizlemeden önce daha sonra gerekecek şeyleri saklayın: not, gerekli yollar, kontrol çıktısı. Yeni konuşmaya ima değil, açık bir görev tanımı gerekir: hedef, kısıtlar ve yollar. Bir dosyayı özellikle belirtmek için @dosya kullanabilirsiniz; ancak dosyayı anmak okumaya yön verir, diğer dosyalara erişimi kısıtlamaz.

Bir eylem seçin

Sıra kısaca şöyle: durun, kontrol sorusunu sorun, pencerenin içeriği belirsizse doluluğuna bakın, bir eylem seçin ve sonucu doğrulayın. Mesajları saymanın faydası yok; konuşmanın içeriğine ve bundan sonra ne yapacağınıza bakın.

DurumEylem ve gerekçesi
Ajan ödül kuralını almadıKuralı ve dosyayı sağlayın; sıkıştırma eksik bilgiyi tamamlamaz
Yanıt, o zamandan beri değişmiş bir dosyaya dayanıyorGüncel sürümü yeniden okumasını isteyin; sıkıştırmaya gerek yok
Sohbette bir şey kararlaştırılmış, TASK_SPEC.md içinde başka bir şey yazılmışHangi gereksinimin geçerli olduğuna karar verip kaynağı düzeltin
Aynı görev, çok sayıda reddedilmiş seçenek, pencerede az yer kaldıNot alın, odağı belirterek /compact çalıştırın ve kontrol sorusu sorun
Sıkıştırmadan sonra komşu modüle dokunmama koşulu kaybolduDeğişiklik yapmadan önce kısıtların kaynağını yeniden okuyup anlaşıldığını doğrulayın
Bağımsız bir görünüm düzenleme görevi başlıyorGerekli sonucu saklayın, /clear çalıştırın ve yeni bir görev tanımlayın

Bu, çalışma biçiminizi nasıl değiştirir?

Bu üç komut tek başına hiçbir şeyi düzeltmez. Değişen, uzun bir görevi nasıl yürüttüğünüzdür:

  • garip bir yanıt aldığınızda önce görev tanımını ve dosyaların güncelliğini, sonra konuşmayı kontrol edersiniz;
  • sıkıştırmadan ya da temizlemeden önce dosyalarla karşılaştırılmış bir notunuz olur; sıkıştırmadan sonra da yanıtı satır satır bu notla karşılaştırırsınız;
  • yeni görev, önceki konuşmadan kalanlarla değil, kendi görev tanımıyla başlar.

Farkı tek bir istekte görebilirsiniz. Önce:

Kafan karıştı, baştan alalım.

Sonra:

Şu anki görev, src/reward-flow.js içindeki ödülün tekrar verilmesi sorununu düzeltmek.
TASK_SPEC.md dosyasını okuyun, kısıtı ve sonraki adımı belirtin. Şimdilik kodu değiştirmeyin.

İkinci ifadeye doğrulanabilir bir yanıt gelir: belirtilen kısıtı ve adımı dosyalarla karşılaştırır, farklılık varsa hemen görürsünüz. İlk ifadeyi karşılaştırabileceğiniz bir şey yok.