Thariq Shihipar z zespołu Claude Code w Anthropic napisał w kwietniu w artykule o zarządzaniu sesjami zdanie, które zmienia sposób, w jaki patrzę na /compact w Claude Code: „due to context rot, the model is at its least intelligent point when compacting”. Model jest najmniej bystry dokładnie wtedy, gdy streszcza rozmowę. A Claude Code robi to sam, kiedy okno kontekstu się zapełnia.

Sprawdziłem, co z tego wynika w praktyce. Na kopii mojej prawdziwej, długiej sesji pracy samo /compact zgubiło 5 z 40 rzeczy, które były mi potrzebne po przerwie. Instrukcja wpisana w pole polecenia nie poprawiła wyniku. Pomogła dopiero zmiana kolejności: najpierw podsumowanie, potem /compact ostatnią wiadomość przepisz w całości. W tym tekście opisuję wszystkie sześć testów, co wpisać w pole /compact i kiedy zamiast niego lepiej zrobić /clear.

0 z 40rzeczy zostało po samym /compact na mojej długiej sesji (test 2, 4.11.2026)
0 z 40z instrukcją w polu polecenia: tyle samo
0 z 5przebiegów, w których podsumowanie przeszło przez /compact słowo w słowo
0 → 23 tys.tokenów w kontekście przed i po streszczeniu w teście przy 76% zapełnienia (odczyt z pliku zapisu)

Co robi /compact w Claude Code

/compact zamienia całą dotychczasową rozmowę na streszczenie i od tej chwili Claude pracuje na nim, a nie na pełnej historii. Cal Rueb z Anthropic opisał to na konferencji Code w/ Claude prostym obrazem: Claude dostaje wiadomość w stylu „muszę streścić wszystko, co robiliśmy, bo przekazuję to innemu programiście, który przejmie robotę”. Tym następcą jest sam Claude. Pełną historię rozmowy zastępuje mu ta notatka, uzupełniona o kilka rzeczy, które opisuję niżej.

Film z YouTube. Klikając „Odtwórz”, zgadzasz się na połączenie z serwerami Google i zapisanie przez nie danych w Twojej przeglądarce (polityka prywatności). Obejrzyj na YouTube ↗

Zajrzałem do plików zapisu rozmów (~/.claude/projects/…/*.jsonl), żeby zobaczyć, co naprawdę zostaje. W Claude Code 2.1.318 streszczenie miało w każdym moim przebiegu te same dziewięć sekcji: prośba i cel, pojęcia techniczne, pliki i fragmenty kodu, błędy i poprawki, rozwiązane problemy, wszystkie wiadomości użytkownika, zadania do zrobienia, bieżąca praca i następny krok. Na mojej sesji było to ok. 19 tys. znaków.

Poza streszczeniem zostały jeszcze trzy rzeczy, o których mało kto wie:

  • ostatnia odpowiedź Claude, słowo w słowo, jako osobna wiadomość po streszczeniu (streszczenie pisze się bez niej, plik zapisu mówi wprost: „The summary was written without seeing them”). Tak było we wszystkich moich przebiegach, ale dokumentacja tego nie obiecuje, mówi tylko o wiadomościach, których streszczenie nie objęło;
  • ścieżka do pełnego zapisu starej rozmowy, więc Claude może do niej zajrzeć, jeśli potrzebuje szczegółu;
  • część rzeczy z dysku, które Claude Code wczytuje od nowa.

Tę ostatnią listę podaje dokumentacja Claude Code o oknie kontekstu. Wraca CLAUDE.md z głównego katalogu projektu, pamięć automatyczna, plan z trybu planowania, lista skilli i do pięciu ostatnio zmienianych plików, przy czym plik większy niż 5000 tokenów wraca tylko jako ścieżka. Nie wraca cała rozmowa ani kontekst, który dodały wcześniej hooki. Jeśli chcesz, żeby coś wracało po każdym streszczeniu, możesz to dopiąć hookiem, czyli skryptem, który Claude Code uruchamia sam przy wybranym zdarzeniu (tu SessionStart z dopasowaniem compact); jak działają takie bramki, opisałem w tekście o hookach w Claude Code.

Kiedy Claude Code streszcza rozmowę sam

Nie musisz wpisywać /compact, żeby streszczenie się wydarzyło. Są dwa automatyczne momenty:

  • przy zapełnionym oknie: modele z oknem miliona tokenów (Fable, Sonnet 5 i nowsze, Haiku 5.5, Opus 4.7 i nowsze) streszczają rozmowę „at about 967K tokens by default” (dokumentacja modeli); próg możesz obniżyć poleceniem /autocompact, np. /autocompact 500k;
  • po przerwie: od przełomu września i października Claude Code streszcza długą sesję (od 200 tys. tokenów), gdy odejdziesz od komputera na mniej więcej godzinę, a komputer w tym czasie nie uśnie. Warunki są jeszcze dwa: włączone automatyczne streszczanie i godzinna pamięć podręczna rozmowy (prompt cache), a próg 200 tys. można zmienić (opis ustawienia). Lydia Hallie z zespołu Claude Code napisała o tym wprost: „Claude continues from a summary instead of your full context”. Wyłączasz to ustawieniem "idleCompaction": false w settings.json.

To ważne dla dalszej części: streszczenie może przyjść wtedy, kiedy nie patrzysz. Dlatego sposób na dobre streszczenie nie może zależeć od tego, że pamiętasz o nim w ostatniej chwili.

Mój test: co ginie po samym /compact

Najpierw krótka rozmowa (ok. 51 tys. tokenów): mały kalkulator rat, jedno ustalenie z księgową, hasło kontrolne i następny krok. Po /compact wszystkie sześć punktów kontrolnych było w streszczeniu, w każdym z trzech wariantów: bez instrukcji, z instrukcją w polu i z sekcją w CLAUDE.md. Krótka rozmowa niczego nie rozstrzyga, bo streszczenie nie musi niczego pomijać.

Potem prawdziwy test. Wziąłem swoją sesję pracy z kilku dni (ok. 603 tys. tokenów, model Fable 5.1) i zrobiłem jej trzy kopie poleceniem claude --resume <sesja> --fork-session, żeby oryginał został nietknięty. Na pierwszej kopii poprosiłem o podsumowanie tak, jak robię to od miesięcy: co zostało zrobione, co jest w toku, co dalej, na jakim etapie jest praca i gdzie co leży. Z tego podsumowania zrobiłem listę 40 konkretnych rzeczy i sprawdziłem, ile z nich zostaje po streszczeniu.

WariantIle z 40 rzeczy zostałoCzego zabrakło
samo /compact35kwota zamówienia, dwa plany „na później”, numer powiązanego zadania, folder z gotowymi plikami
/compact z instrukcją w polu („zachowaj: co zrobione, co w toku, co dalej, gdzie są pliki”)35podobnie, a streszczenie wyszło o 30% krótsze
podsumowanie, /compact, wklejenie podsumowania40nic

Zgubione rzeczy mają wspólny mianownik: to plany na później i drobne liczby. Wyjaśnienie znalazłem w samym poleceniu, którym Claude Code prosi model o streszczenie (jest w kodzie programu). Sekcja zadań obejmuje tylko to, o co „explicitly been asked”, a następny krok ma być „DIRECTLY in line with the user's most recent explicit requests”. To, co było ustalone mimochodem trzy godziny wcześniej, łatwo wypada. To moja interpretacja, ale pasuje do każdego z pięciu braków.

Jedna dobra wiadomość: wszystkie pięć brakujących rzeczy leżało w pliku z następnymi krokami na dysku, a streszczenie wskazywało ten plik. Wrócę do tego na końcu.

Co wpisać w pole /compact

Po /compact i spacji Claude Code pokazuje podpowiedź <optional custom summarization instructions>. Dokumentacja radzi wpisać tam, na czym streszczenie ma się skupić, np. /compact focus on the auth bug fix. W moim teście na długiej sesji to nie dodało ani jednej z brakujących rzeczy. Instrukcja zmienia akcent, ale nie sprawia, że model przypomni sobie coś, co uznał za mało ważne.

To samo dotyczy stałej sekcji ## Compact Instructions w CLAUDE.md, którą dokumentacja Claude Code poleca do sterowania streszczeniem. Ma jedną przewagę: działa też przy streszczeniu automatycznym i po przerwie, czyli wtedy, gdy niczego nie wpisujesz. Warto ją mieć, ale nie zastąpi dobrej notatki.

Zadziałało polecenie innego rodzaju. Zamiast mówić modelowi, co ma streścić, poprosiłem, żeby niczego nie streszczał po swojemu, tylko zachował notatkę napisaną wcześniej:

  1. Poproś o podsumowanie, zanim rozmowa się zapełni

    Na przykład: „napisz podsumowanie: co zrobione, na jakim jest etapie, co dalej i gdzie są pliki, bo chcę skompaktować rozmowę”. Najlepiej przy 60–70% zapełnienia, a nie w ostatniej chwili.

  2. Przeczytaj podsumowanie i popraw braki

    To jedyny moment, w którym widzisz, co przejdzie dalej. Jeśli czegoś brakuje, dopisz to w kolejnej wiadomości i poproś o poprawioną wersję.

  3. Wpisz /compact z poleceniem przepisania

    /compact ostatnią wiadomość przepisz w całości

W moich pięciu przebiegach na Claude Code 2.1.318 (dwóch kopiach mojej długiej sesji, samej tej sesji i dwóch nagraniach, w tym przy 76% zapełnienia) podsumowanie przeszło przez streszczenie w całości, słowo w słowo. Bez polecenia przepisania model przepisał to samo podsumowanie własnymi słowami: z 30 zdań ani jedno nie zostało dosłownie, a z 40 rzeczy zostało 37.

Ciekawostka z plików zapisu: notatka przechodzi dwiema drogami. Jeśli podsumowanie jest ostatnią odpowiedzią Claude, Claude Code i tak zachowuje je dosłownie po streszczeniu. Jeśli po nim przyszło coś jeszcze (u mnie hook dopisuje krótką turę po każdej odpowiedzi), polecenie przepisania sprawia, że model wkleja podsumowanie do streszczenia. W obu przypadkach wynik był ten sam: po /compact Claude miał przed sobą całą notatkę. To nie jest gwarancja na każdą wersję programu, a polecenie przepisania nie zrobi notatki pełniejszej, niż ją napisano. Dlatego krok 2, czyli przeczytanie podsumowania przed streszczeniem, jest tu najważniejszy.

/compact czy /clear

Skoro i tak piszesz podsumowanie, możesz je skopiować, wyczyścić rozmowę poleceniem /clear i wkleić. Tak radzi wiele osób na Reddicie i tak opisuje /clear sam Thariq: „you write down what matters (...) and start clean”. /clear nie kasuje starej rozmowy, wrócisz do niej poleceniem /resume. Różnica jest w tym, co zostaje poza Twoją notatką:

Po…Twoja notatkaStreszczenie Claude (pliki, kod, Twoje wcześniejsze polecenia, błędy)Pliki wczytane od nowaCLAUDE.md i pamięćŚcieżka do starej rozmowy
podsumowaniu i /compact z poleceniem przepisaniatak, w moich testach słowo w słowotakdo 5 plikówtaktak
/clear i wklejeniutak, słowo w słowonienietaknie

Sprawdziłem, czy to robi różnicę w dalszej pracy. Na Haiku 5.5, żeby było taniej, zrobiłem sesję z trzema ustaleniami tylko w rozmowie: nowa funkcja w nowym pliku, testy w konkretnym miejscu i zasada księgowej, że ostatnia rata wyrównuje sumę. Potem podsumowanie i dwie drogi z tego samego stanu plików. Obie dokończyły pracę na 5 z 5 punktów, które sprawdzał skrypt, a testy przeszły. W tej próbie /clear z wklejeniem był ok. 4 razy tańszy (0,014 USD wobec 0,057 USD). Liczyłem koszt od chwili po podsumowaniu: przy /compact to streszczenie (0,019 USD) i dokończenie pracy (0,038 USD), przy /clear samo dokończenie pracy. Odpadł więc koszt streszczenia, ale także samo dokończenie pracy kosztowało mniej, prawdopodobnie dlatego, że po /clear w kontekście była tylko krótka notatka. To jedna krótka sesja, więc traktuj to jako sygnał, nie regułę.

Moja praktyka wygląda więc tak:

  • ta sama praca idzie dalej: podsumowanie i /compact ostatnią wiadomość przepisz w całości. Zostaje i notatka, i to, co Claude wie o plikach i kodzie;
  • zaczynam coś nowego: /clear, a wklejam tylko to, co ma przejść do nowego zadania. Dokumentacja dobrych praktyk mówi wprost: „/clear between tasks is still worth doing”.

Anthropic zestawia te opcje podobnie: /compact w trakcie zadania („Claude decides what mattered”), /clear przy nowym („you control exactly what carries forward”). Gdy w rozmowie jest jedna nieudana próba, jest jeszcze /rewind i „Summarize from here”, które streszcza tylko kawałek. Więcej o tym, którą powierzchnię Claude do czego wybrać, piszę w tekście gdzie używać Claude.

Przy dłuższych projektach: notatka także w pliku

Streszczenie żyje w jednej sesji. Gdy projekt trwa tydzień, podsumowanie każę dopisać także do pliku z następnymi krokami w repozytorium. Wtedy przetrwa nie tylko /compact, ale też zamknięcie terminala i zmianę komputera. W moim teście wszystkie rzeczy zgubione przez samo /compact leżały właśnie w takim pliku.

Jedno ograniczenie: Claude Code po streszczeniu wczytuje sam do pięciu ostatnio zmienianych plików i tylko takie, które mają mniej niż 5000 tokenów. Mój plik z następnymi krokami rozrósł się do 56 tys. znaków, więc wracała tylko jego ścieżka. Dlatego krótki stan bieżący trzymaj w osobnym, małym pliku, a historię w drugim. Nawet wtedy plik może nie wrócić sam, więc w podsumowaniu warto podać jego ścieżkę.

Co robi /compact w Claude Code?

Zamienia całą dotychczasową rozmowę na streszczenie i od tej chwili Claude pracuje na nim. W testowanej przeze mnie wersji 2.1.318 streszczenie miało dziewięć sekcji. W moich przebiegach ostatnia odpowiedź zostawała dosłownie, a pełny zapis starej rozmowy zostaje na dysku.

Co wpisać w pole /compact?

Instrukcja skupienia, np. „focus on…”, w moim teście nie dodała brakujących rzeczy. Najlepiej zadziałało podsumowanie napisane przed streszczeniem i polecenie „/compact ostatnią wiadomość przepisz w całości”.

Kiedy Claude Code streszcza rozmowę sam?

Przy ok. 967 tys. tokenów w modelach z oknem miliona tokenów oraz po mniej więcej godzinie przerwy w sesji powyżej 200 tys. tokenów, jeśli automatyczne streszczanie jest włączone, rozmowa ma godzinną pamięć podręczną (prompt cache), a komputer nie uśnie. Drugie wyłączasz ustawieniem "idleCompaction": false.

/compact czy /clear?

/compact, gdy ta sama praca idzie dalej, bo zostaje też to, co Claude wie o plikach i kodzie. /clear, gdy zaczynasz nowe zadanie; wklej wtedy tylko to, co ma przejść dalej.

Jeśli korzystasz z Claude Code na co dzień, zajrzyj też do tekstu o modach w Claude Code. Mod może na przykład pokazywać nad polem wpisywania, ile kontekstu zostało, więc wiesz, kiedy poprosić o podsumowanie.