# Compaction neyi tutar, neyi kaybeder

Compaction geçmişinizi bir özetle değiştirir, sonra birkaç şeyi kurala göre geri koyar. Hangilerini bilirseniz onu yönlendirebilir, /clear, /compact ve rewind arasında seçim yapabilirsiniz.

## Geçmişin yerini bir özet alır

Pencere sınıra yaklaşınca Claude Code compact eder. Uzun geçmiş yapılandırılmış bir özetle değiştirilir ve iş oradan devam eder. Aynısını `/compact` ile kendiniz de yapabilirsiniz.

Takas basit. Yer geri kazanırsınız, ayrıntıyı kaybedersiniz. Özet bir kararın verildiğini hatırlar. Tam hata mesajını ya da bir diff'in üçüncü satırını hatırlamayabilir.

Önemli olan, compaction'ın boş sayfa olmaması. Birkaç şey kurala göre geri konuyor, birkaçı konmuyor.

## Neler geri gelir

Compaction'dan sonra Claude Code şunları yapar:

- Yakın zamanda dokunulmuş en fazla beş dosyayı yeniden okur. 5.000 token'ı aşan dosya yalnızca yol referansı olarak gelir, yani Claude var olduğunu bilir ama içeriği için yeniden okumalıdır.
- Çağırdığınız skill'lerin gövdelerini yeniden enjekte eder: her biri en fazla 5.000, toplamda 25.000 token. Önce en eskiler düşer, kesme dosyanın üst kısmını tutar.
- Eşleyicisi `compact` olan SessionStart hook'larını yeniden çalıştırır ve çıktılarını compact edilmiş bağlama ekler.
- Arka plandaki komutları ve arka plan alt ajanlarını çalışır halde tutar, Claude'a da var olduklarını hatırlatır.

Kökteki CLAUDE.md de yerinde durur, çünkü geçmişin değil proje bağlamının parçası. Özetin içine alabileceği şey, konuşma yoluyla gelen metin, örneğin path kapsamlı kurallar.

**Question:** Compaction'dan önce 9.000 token'lık bir dosya açıktı. Sonrasında Claude'da ondan ne kalır?

- Otomatik yeniden okunmuş tam dosya
- 5.000 token'ı aştığı için yalnızca yol referansı
- Hiçbir şey
- İçeriğinin tek satırlık özeti

**Answer:** 5.000 token'ı aştığı için yalnızca yol referansı. Yakın zamanda dokunulan dosyalar yeniden okunur, ama 5.000 token üstü yol referansı olarak gelir. İçeriği gerekirse Claude'un yeniden okuması lazım.


## Yönlendirmek

Genel bir özeti kabul etmek zorunda değilsiniz. Neyin tutulacağını iki kol belirliyor.

```terminal
$ /compact keep the failing test names and the decision to avoid the new cache
* Şimdi, bu odakla özetler
# Görevin ortasında değil, doğal bir molada çalıştırın.
```

Birincisi, `/compact` sonrasına yazılan odak. Rehber, auto-compaction'ın bir işin ortasında devreye girmesini beklemek yerine doğal molalarda odakla compact etmeyi öneriyor.

İkincisi, CLAUDE.md içinde "Compact instructions" başlıklı bir bölüm. Oraya yazdığınız şey, her compaction için neyin hayatta kalması gerektiğini söyler, her seferinde yeniden yazmanız gerekmez.

> **Yeniden keşfedemeyeceğinizi yazın**
İyi compact talimatları, kodun geri veremeyeceği şeyleri adlandırır: hangi yaklaşımı neden reddettiniz, açık soru ne, sıradaki adım ne. Claude'un repodan yeniden okuyabileceği şeyleri korumaya gerek yok.


## /clear, /compact ya da rewind

Üçü benzer görünür ama değildir.

```flow
/clear: boş pencere, eski oturum /resume için durur
/compact: geçmiş özete dönüşür, iş devam eder
/rewind: daha eski bir noktaya dönülür, kod ve konuşma
```

`/clear` yeni, ilgisiz bir iş içindir. Bedava ve eski geçmişi kaldırır. `/clear name` ile ad verirseniz eski oturum `/resume` için etiketlenir. `/clear`'dan hemen sonra, siz çıkana kadar rewind menüsü bile bir `/resume <session-id> (previous session)` girişi sunar.

`/compact`, sadece büyümüş aynı iş içindir.

**Rewind** türce farklıdır. Bir turu başlatan her prompt önce dosya durumunu yakalar. `/rewind` (ya da `/checkpoint`, `/undo`, boş prompt'ta `Esc Esc`) bir menü açar: kod ve konuşmayı geri yükle, yalnızca konuşma, yalnızca kod, buradan itibaren özetle ya da buraya kadar özetle. Özetleme seçenekleri "add context" satırına yazılan yönlendirmeyi kabul eder.

## Rewind'ın sınırları var

Düzenleme araçlarının değiştirdiğini geri yükler. Üç şey dışarıda kalır:

- Yalnızca Bash ile yapılan değişiklikler izlenmez, Claude o dosyayı oturumda zaten düzenleme araçlarıyla düzenlemediyse.
- Alt ajan düzenlemeleri genellikle geri yüklenmez. Onlar için git kullanın.
- Symlink'li ve hard link'li yollar kod geri yüklemesinde uyarıyla atlanır.

Checkpoint'ler en son 100 tanesini kapsar ve son kayıttan yaklaşık 30 gün sonra temizlenir. `cleanupPeriodDays` bunu uzatır.

> **Rewind git değildir**
Son birkaç adım için bir güvenlik ağıdır, projenizin tarihçesi değil. Önemli olanı commit edin.


**Question:** Bir yaklaşımı yirmi dakika denediniz ve öncesindeki işi kaybetmeden vazgeçmek istiyorsunuz. Hangi araç en uygun?

- /clear
- Denemeden önceki noktaya /rewind
- /compact
- Yeni bir terminal açmak

**Answer:** Denemeden önceki noktaya /rewind. Rewind, kodu ve konuşmayı daha eski bir checkpoint'e döndürür. /clear iyi işi de atardı, /compact ise başarısız denemeyi bir özetin içinde tutardı.


> **Bilerek compact edin**
Gerçek bir işin sonunda, bir odak cümlesiyle `/compact` çalıştırın. Sonra Claude'a önemsediğiniz kararı ne kadar hatırladığını sorun. Eksikse, o türden bir bilgiyi "Compact instructions" bölümünüze ekleyin.
