Lekcja 8 · Kto pisze, a kto tylko czyta
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.
| CLAUDE.md | Auto memory | |
|---|---|---|
| Kto pisze | Ty | Claude |
| Co zawiera | instrukcje i zasady | obserwacje i wzorce |
| Zasięg | projekt, user, organizacja | per repozytorium, wspólne dla worktrees |
| Do czego | standardy kodu, workflow, architektura | komendy 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).
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.
~/.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.
~/.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.
| 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 |
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.
/memory i potwierdź, że katalog auto memory jest rzeczywiście pusty (brak MEMORY.md)./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).1. Kto pisze treść auto memory?
2. Pracujesz nad tym samym repo na dwóch różnych komputerach. Co się stanie z auto memory?
3. Masz dwa worktree tego samego repozytorium git. Ile mają osobnych katalogów 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?
5. Ile z MEMORY.md ładuje się automatycznie na starcie każdej sesji?