Lekcja 1 · Fundament

Model mentalny okna kontekstu

Zanim zaczniesz świadomie dobierać CLAUDE.md, skille, subagentów i hooki — potrzebujesz jednego obrazu w głowie: czym w ogóle jest okno kontekstu i co je zapełnia. Każda decyzja o oszczędzaniu tokenów i każda decyzja o tym, której funkcji użyć, sprowadza się do tego modelu.

Polecane źródło Interaktywna symulacja sesji z konkretnymi liczbami tokenów: Explore the context window — Claude Code Docs. Warto przejść ją samodzielnie po tej lekcji — pokazuje krok po kroku, co dzieje się z każdym Twoim promptem.

Kontekst to budżet, nie pamięć

Okno kontekstu to nie "pamięć długoterminowa" — to wszystko, co model widzi w danym momencie: instrukcje systemowe, Twoje pliki CLAUDE.md, notatki auto memory, opisy dostępnych skilli i narzędzi MCP, cała dotychczasowa rozmowa i treść każdego przeczytanego pliku. Im pełniejsze okno, tym gorsza jakość odpowiedzi — model zaczyna "zapominać" wcześniejsze instrukcje i popełniać więcej błędów.

Dlatego każdy mechanizm w Claude Code, o którym będziesz się uczyć w kolejnych lekcjach — CLAUDE.md, skille, subagenci, hooki — to w gruncie rzeczy różne strategie zarządzania tym samym budżetem. Różnią się tylko tym, kiedy płacisz.

Dwie kategorie kosztu

Wszystko, co ląduje w kontekście, dzieli się na dwie grupy:

Mechanizm Kiedy się ładuje Przeżywa /compact?
System prompt zawsze, jako pierwszy tak — nie jest częścią historii
CLAUDE.md (root projektu) zawsze, każda sesja tak — wczytywany ponownie z dysku
Auto memory (MEMORY.md) zawsze, pierwsze 200 linii / 25KB tak — wczytywany ponownie z dysku
Opisy skilli zawsze (chyba że disable-model-invocation) nie — tylko realnie użyte skille wracają
Nazwy narzędzi MCP zawsze; pełne schematy dopiero na żądanie tak, jako lista nazw
Reguła z paths: w .claude/rules/ na żądanie, przy pasującym pliku nie — do ponownego wyzwolenia
Zagnieżdżony CLAUDE.md w podkatalogu na żądanie, przy odczycie pliku w tym katalogu nie — do ponownego wyzwolenia
Treść przeczytanego pliku / output komendy na żądanie nie — tylko jako skrót w podsumowaniu
Praca subagenta w ogóle nie dotyka Twojego okna nie dotyczy — osobne okno

Dokładne liczby tokenów są ilustracyjne i zależą od rozmiaru Twojego CLAUDE.md, liczby serwerów MCP i długości plików — sprawdzaj realny podział komendą /context.

Kluczowy wniosek: największą codzienną dźwignią, jaką masz, jest niedopuszczanie do tego, żeby Claude czytał więcej niż potrzeba — i delegowanie dużych odczytów (logi, wyniki testów, eksploracja kodu) do subagenta, żeby ich treść w ogóle nie trafiła do Twojego okna.

Co dzieje się przy /compact

Gdy kontekst się zapełnia, Claude Code automatycznie (albo na Twoje żądanie) zastępuje historię rozmowy strukturalnym podsumowaniem. Część rzeczy wraca automatycznie (system prompt, CLAUDE.md z roota, auto memory), część — nie (reguły ścieżkowe, zagnieżdżone CLAUDE.md, opisy niewywołanych skilli). Jeśli po /compact Claude "zapomina" jakąś instrukcję, sprawdź w tabeli wyżej, czy w ogóle miała przetrwać.

Zadanie praktyczne

W dowolnej swojej sesji Claude Code (może być ta, w której czytasz tę lekcję) uruchom komendę:

/context

Zidentyfikuj: która kategoria zajmuje najwięcej miejsca? Czy to Cię zaskoczyło? Jeśli największym konsumentem jest CLAUDE.md lub skille — to sygnał do lekcji o CLAUDE.md. Jeśli to historia rozmowy z odczytami plików — to sygnał do lekcji o subagentach.

Sprawdź się

1. Co ładuje się do kontekstu na starcie każdej sesji, niezależnie od tego czy tego użyjesz?

CLAUDE.md i opisy skilli (nie ich pełna treść) ładują się zawsze. Pliki repo ładują się dopiero gdy Claude je czyta, poprzednia sesja nie wraca automatycznie, a pełne schematy MCP zostają odroczone.

2. Dlaczego pełne schematy narzędzi MCP zwykle nie wchodzą do kontekstu od razu?

Domyślnie ładują się tylko nazwy narzędzi MCP; pełne schematy doczytywane są na żądanie (tool search), gdy zadanie faktycznie tego wymaga.

3. Co dokładnie oznacza limit "pierwsze 200 linii lub 25KB" dla MEMORY.md?

Tylko ten początkowy fragment MEMORY.md ładuje się automatycznie na starcie sesji. Reszta (i pliki tematyczne) jest dostępna, ale Claude musi je świadomie doczytać. CLAUDE.md nie ma takiego limitu — ładuje się w całości niezależnie od długości.

4. Subagent kończy pracę i wraca do głównej rozmowy. Co trafia do Twojego okna kontekstu?

Wraca tylko finalne podsumowanie subagenta plus mały trailer z metadanymi (liczba tokenów, czas trwania). Wszystkie odczyty plików zostają w osobnym, odrzucanym potem oknie subagenta — na tym polega oszczędność kontekstu.

5. Chcesz, żeby instrukcja przetrwała /compact niezależnie od wszystkiego. Gdzie ją umieścisz?

Tylko CLAUDE.md z roota projektu (i reguły bez frontmatteru paths) są re-injektowane automatycznie po compact. Reguły ścieżkowe i zagnieżdżone CLAUDE.md wracają dopiero gdy Claude ponownie odczyta pasujący plik, a instrukcja podana tylko w rozmowie ginie w podsumowaniu.
Coś niejasne? Zapytaj mnie wprost w tej rozmowie — jestem Twoim nauczycielem w tym temacie i mogę rozwinąć każdy punkt, pokazać to na Twoim własnym projekcie, albo od razu przejść do następnej lekcji.
← Glosariusz pojęć Następna lekcja: CLAUDE.md pod lupą →