Lekcja 8 · Kto pisze, a kto tylko czyta

Auto memory: jak Claude samo uczy się Twojego projektu

W Lekcji 1 auto memory pojawiło się jako wiersz w tabeli "co przeżywa /compact" — coś, co ładuje się zawsze, w limicie 200 linii albo 25KB. Tym razem druga strona medalu: kto to pisze, kiedy, gdzie to fizycznie leży na dysku, i jak nad tym zapanować, żeby nie stało się szumem.

Polecane źródło How Claude remembers your project — sekcja Auto memory.

CLAUDE.md kontra auto memory

CLAUDE.mdAuto memory
Kto piszeTyClaude
Co zawierainstrukcje i zasadyobserwacje i wzorce
Zasięgprojekt, user, organizacjaper repozytorium, wspólne dla worktrees
Do czegostandardy kodu, workflow, architekturakomendy builda, wnioski z debugowania, preferencje odkryte w rozmowie

Oba są kontekstem, nie wymuszoną konfiguracją — Claude stara się je stosować, ale to nie to samo co hook, który wykona się zawsze (Lekcja 5).

Kiedy Claude właściwie zapisuje

Nie w każdej sesji. Claude decyduje, czy informacja przyda się w przyszłej rozmowie — zwykle wtedy, gdy poprawiasz jego działanie ("nie, używamy pnpm, nie npm") albo mówisz wprost, żeby coś zapamiętał. Jeśli zamiast tego chcesz dopisać coś do CLAUDE.md, powiedz to wprost ("dodaj to do CLAUDE.md") albo edytuj plik sam przez /memory.

Kluczowy wniosek: auto memory jest lokalne dla maszyny, nie dla repozytorium. Katalog ~/.claude/projects/<project>/memory/ jest współdzielony między wszystkimi Twoimi worktree tego samego repo — ale nie synchronizuje się na inny komputer ani do zespołu. To różni je fundamentalnie od CLAUDE.md w Lekcji 2, które trafia do gita i dociera do wszystkich.

Gdzie to fizycznie leży

~/.claude/projects/<project>/memory/
├── MEMORY.md          # zwięzły indeks, ładowany w każdej sesji
├── debugging.md       # np. szczegółowe wzorce debugowania
├── api-conventions.md # np. decyzje projektowe API
└── ...                # inne pliki tematyczne, jakie Claude uzna za potrzebne

<project> jest wyznaczany z repozytorium git — więc katalog jest wspólny dla wszystkich podkatalogów i worktree tego samego repo, ale osobny dla każdego innego projektu. Tylko pierwsze 200 linii/25KB MEMORY.md ładuje się automatycznie; pliki tematyczne Claude doczytuje na żądanie, standardowym narzędziem do czytania plików.

Jak nad tym zapanować

Chcesz...Jak
Zobaczyć co jest zapisane/memory — przegląda i otwiera pliki
Wyłączyć auto memory dla projektu"autoMemoryEnabled": false w settings.json (Lekcja 6) albo przełącznik w /memory
Zmienić lokalizację"autoMemoryDirectory": "~/moj-katalog" w dowolnej warstwie settings.json
Poprawić błędną notatkęto zwykły markdown — edytuj albo usuń ręcznie

Zadanie praktyczne — obejrzyj (pusty) stan pamięci tego projektu

Ten workspace nie ma jeszcze żadnych notatek auto memory — sprawdziłem katalog ~/.claude/projects/<ten-projekt>/memory/ i jest pusty. To dobra okazja, żeby zobaczyć różnicę między pustym a zapełnionym stanem.

  1. Wpisz /memory i potwierdź, że katalog auto memory jest rzeczywiście pusty (brak MEMORY.md).
  2. Powiedz mi coś, co brzmi jak trwała preferencja robocza, niezwiązana z konkretną lekcją — np. "zawsze otwieraj lekcje w przeglądarce od razu po utworzeniu" albo "wolę krótsze zadania praktyczne niż te w lekcjach 5–6".
  3. Sprawdź później przez /memory, czy coś się pojawiło — i czy trafiło raczej do learning-records/ (mechanizm skilla /teach, osobny od auto memory) czy do MEMORY.md (mechanizm ogólny Claude Code, opisany w tej lekcji).

Sprawdź się

1. Kto pisze treść auto memory?

To kluczowa różnica względem CLAUDE.md: auto memory to notatki, które Claude pisze samo, na podstawie tego co uzna za przydatne na przyszłość.

2. Pracujesz nad tym samym repo na dwóch różnych komputerach. Co się stanie z auto memory?

Auto memory jest lokalne dla maszyny — katalog ~/.claude/projects/<project>/memory/ nie jest częścią repozytorium ani nie synchronizuje się między komputerami.

3. Masz dwa worktree tego samego repozytorium git. Ile mają osobnych katalogów auto memory?

jest wyznaczane z repozytorium git, więc wszystkie worktree i podkatalogi tego samego repo współdzielą jeden katalog auto memory.

4. Chcesz mieć pewność, że jakaś zasada ZAWSZE się zastosuje, niezależnie od tego, czy Claude uzna ją za istotną. Co wybierzesz zamiast liczenia na auto memory?

Auto memory, tak jak CLAUDE.md, jest kontekstem który Claude stara się stosować, ale bez gwarancji. Twarde wymuszenie wymaga hooka albo reguły permission, egzekwowanych przez klienta, nie przez decyzję modelu.

5. Ile z MEMORY.md ładuje się automatycznie na starcie każdej sesji?

To ten sam limit co w tabeli z Lekcji 1: pierwsze 200 linii lub 25KB MEMORY.md ładuje się zawsze, reszta i pliki tematyczne są doczytywane na żądanie.
Coś niejasne? Zapytaj mnie wprost — mogę pokazać zawartość realnego MEMORY.md z innego Twojego projektu (za zgodą) albo pomóc zdecydować auto memory czy CLAUDE.md dla konkretnej notatki.
← Lekcja 7: .claude/rules/ Następna lekcja: /clear, /compact, /context — utrzymywanie sesji "chudą" →