„To jest taki bardzo prosty, techniczny tekst”

Lipiec, koniec warsztatu w Szkole Praktyków AI w Youniversity, na którym pokazywałem Cowork. Uczestniczce nie zapisywała się pamięć w projekcie, więc poradziłem jej po swojemu: „No to mu powiedz, żeby zapamiętał i tyle. Zapamiętaj konteksty. Coś takiego tak łopatologicznie. […] On powinien to sam robić. No ale najwyraźniej uznał, że nie.” Chwilę później po prawej stronie jej ekranu pojawił się plik CLAUDE.md, a ja skomentowałem: „To jest taki bardzo prosty, techniczny tekst. On sobie w tym momencie pisze sam instrukcję jak ma się zachowywać w Twoim […] projekcie […]”.

Mój własny CLAUDE.md, w folderze z marketingiem Szkoły Praktyków AI, wygląda tak, w całości:

Trzynaście wierszy i ani jednej komendy programisty. Bazę marketingową plik tylko wskazuje, sama leży obok, tyle że trafiła tam dopiero 16 lipca. Przez pierwsze dni ściągawka odsyłała więc Claude'a do miejsca, w którym nic nie leżało.

Gdzie położyć plik CLAUDE.md?

Ta część jest dla osoby, która to ustawia.

W folderze projektu (CLAUDE.md albo .claude/CLAUDE.md): zasady tego projektu. Jeśli folder leży w repozytorium, czyli wspólnym archiwum kolejnych wersji plików, dostaje je cały zespół.

W folderze domowym (~/.claude/CLAUDE.md): Twoje zasady do wszystkich projektów.

CLAUDE.local.md obok pliku projektu: Twoje prywatne uwagi. Jeśli folder leży w repozytorium, trzeba ten plik wyłączyć z synchronizacji (plik .gitignore).

Plik firmowy ustawiany przez dział IT: obowiązuje wszystkich w organizacji.

Claude Code czyta plik z folderu, w którym go uruchomisz, i ze wszystkich folderów wyżej. Pliki się sumują, a plik z folderu niżej wchodzi dopiero wtedy, gdy Claude tam zajrzy do pracy. Mam też plik AGENTS.md, czyli podobną instrukcję dla innych narzędzi, na przykład Codexa od OpenAI. Gdy oba leżą w tym samym folderze albo w folderach nad nim, Claude Code domyślnie czyta sam CLAUDE.md, chyba że dopiszesz w nim wiersz @AGENTS.md.

Żeby to działało, potrzebny jest Claude Code, a dostajesz go w planach Pro, Max i Ultra (stan z 1 listopada 2026, Team i Enterprise opisane są osobno). Od czego zacząć, opisuje tekst o pierwszych krokach.

Dlaczego Claude nie słucha instrukcji z CLAUDE.md?

Najpierw sprawdziłbym, czy w ogóle je dostał. Polecenie /context pokazuje pod nazwą Memory files listę plików wczytanych na starcie, a czego na niej nie ma, tego Claude nie widzi.

Jeśli plik jest na liście, szukałbym zasad, które sobie przeczą, bo z dwóch takich Claude może wybrać dowolną. Przyznam się, u mnie to samo. W plikach o stylu przez ponad trzy miesiące miałem trzy różne liczby: zdanie ma mieć zwykle 11 słów, najwyżej 25 albo najwyżej około 30. Na 30 zdecydowałem się 20 lipca, a pozostałe pliki poprawiliśmy dopiero 1 listopada, więc Claude mógł brać dowolną z nich.

Kłopot robią też ogólniki. Przy „pisz zwięźle” model, czyli samo AI, które w Claude Code czyta i pisze, ma dużo swobody, a przy „oferta ma najwyżej jedną stronę A4” już niewiele.

Co musi się stać, tego sam plik nie załatwi

Anthropic sam odsyła takie rzeczy poza plik: „If something has to happen every time, make it a hook, a deny rule, or a managed setting.” Po polsku: co ma się dziać za każdym razem, idzie do hooka, reguły zakazu albo ustawienia firmowego. Hook to małe polecenie, które Claude Code uruchamia sam w ustalonym momencie, cokolwiek postanowi model. Reguła zakazu blokuje dane działanie w każdym trybie pracy. W tym samym tekście pada, że prostych zasad, na przykład zakazu czytania pliku .env, w którym programiści trzymają zwykle hasła, Claude trzyma się prawie zawsze. Do hooka przenosiłbym więc tylko to, czego nie może pominąć ani razu.

Hook da się zlecić samemu Claude'owi zwykłym zdaniem, ale przy firmowych plikach poprosiłbym do tego kogoś, kto się na tym zna.

Prostszy jest tryb pracy, który przełączasz skrótem Shift+Tab. W trybie Manual Claude pyta o większość działań poza czytaniem, w trybie planu czyta i układa plan, a w trybie auto ryzykowne działania ocenia osobny model, zanim ruszą.

W pliku AGENTS.md mam zdanie: „Niczego nie publikuje, nie wysyła i nie wydaje budżetu bez zgody właściciela.” Dobrze, że tam jest, ale samo zdanie w pliku niczego nie blokuje.

CLAUDE.md piszesz Ty, a notatki pisze Claude

Obok CLAUDE.md Claude Code ma pamięć automatyczną, domyślnie włączoną, i do obu tych rzeczy możesz zajrzeć. Pamięć pisze sam Claude: to notatki o Twoich poprawkach i upodobaniach. U mnie jest ich dziś 92, każda w osobnym pliku, plus spis, który Claude czyta na starcie. Kiedy napisałem mu „przełączyłeś się na angielski, upewnij się, że piszesz po polsku”, powstała z tego notatka z datą i powodem. Gdybym chciał, żeby o czymś zapomniał, otworzyłbym listę poleceniem /memory i skasował wpis.

Tych notatek warto doglądać, bo Claude zapisuje je po swojemu. Raz dałem mu regułę o dwóch słowach, a pierwsza wersja notatki zakazywała więcej, niż chciałem, także zwrotu, którego normalnie używam. Tego samego dnia poprawiałem ją dwa razy, a w notatce Claude dopisał sobie: „Przy regułach językowych zapisuj dokładnie to, co powiedział, i rozszerzaj dopiero po potwierdzeniu.”

Gdy każesz Claude'owi coś zapamiętać, trafia to do pamięci automatycznej. Żeby trafiło do CLAUDE.md, trzeba mu to powiedzieć wprost, na przykład „dopisz to do CLAUDE.md”. Zasada podana tylko w rozmowie może zniknąć, gdy rozmowa zostanie skrócona (polecenie /compact), a główny plik projektu Claude wczytuje wtedy od nowa.

Co wpisać do CLAUDE.md?

Anthropic radzi dopisywać coś wtedy, gdy Claude popełnia ten sam błąd drugi raz, gdy powtarzasz tę samą poprawkę albo gdy to samo musiałaby usłyszeć nowa osoba w zespole. Zaleca też mniej niż 200 wierszy, bo dłuższy plik zajmuje więcej miejsca w rozmowie i Claude gorzej się go trzyma.

Osobno wpisałbym to, czego Claude ma nie robić. Tak radziłem w lipcu na warsztacie, przy ustawieniach aplikacji: „Ja polecam na razie sobie to zrobić, na przykład tak, żeby wpisać, czego Claude ma nie robić. Ja mam na przykład bardzo małą ilość. Emotek, bo nie lubię emotek. Ja lubię tekst.”

Na górze pliku hurtowni jest rola zespołu, bo model potrafi uczepić się jednego szczegółu i odtąd mówić już głównie o nim. Szefowa zespołu z firmy IT, uczestniczka szkolenia, które prowadziłem w lipcu, budowała asystenta (czat z zapisaną instrukcją pod jej rolę) i wspomniała modelowi, że inwestycje to jeden z jej celów. Od tej pory model rekomendował głównie to i dopytywał tak, jakby było to sedno jej pracy. Powiedziałem jej, że jest teraz smerfem marudą, czyli tym Smerfem, który na wszystko narzeka: „powiedz mu dokładnie to, co ci się nie podoba i co ma zrobić.” Chciała, żeby zrozumiał jej rolę z góry i nie pytał o konkretne zadania. Celów na ten kwartał nie wpisywałbym więc do takiego pliku, bo Claude czyta go przy każdej rozmowie.

Nie wpisywałbym też:

haseł, kluczy i danych klientów, bo plik czyta każdy, kto ma ten folder, a model dostaje go przy każdej rozmowie,

długich procedur, bo te Anthropic radzi przenosić do skilli, czyli osobnych plików wczytywanych wtedy, gdy są potrzebne,

tego, co Claude sam wyczyta z plików w folderze.

Pierwszą wersję zacząłbym od wywiadu

Polecenie /init układa pierwszą wersję pliku automatycznie: Claude przegląda kod i wypisuje, co znajdzie. Przy folderze z ofertami wiele bym się po nim nie spodziewał, bo według dokumentacji szuka w kodzie poleceń i testów, a w ofertach ich nie ma.

Zacząłbym od wywiadu, tak jak przy asystentach. Na szkoleniu z tą szefową zespołu porównałem asystenta zrobionego od razu, bez odpytania, do dobrych rad mamy, „gdy się ma lat 35. Bo ja bym na twoim miejscu zrobiła to.” Model najpierw ma Cię odpytać, a dopiero potem pisać.

Z zespołem zrobiłbym to tak: otworzyłbym Claude Code w folderze z pracą, wkleił polecenie spod tego akapitu i odpowiadał. Gdyby model uczepił się jednej sprawy, mówiłbym mu, co mi się nie podoba, aż wróci do całości. Potem przeczytałbym plik i wyrzucił każde ogólnikowe zdanie w rodzaju „pisz zwięźle”. W nowej rozmowie sprawdziłbym w /context, czy plik się wczytał, i dał prawdziwe zadanie, a przez dwa tygodnie dopisywalibyśmy tylko to, co ktoś musiał powiedzieć Claude'owi drugi raz.

Gotową wersję dałbym jeszcze komuś, kto się czepia. Sam tak robiłem w grudniu i styczniu, gdy planowałem Szkołę Praktyków AI: „Kłóciłem się z czatem.” Miałem projekt smerf maruda, który zawsze zadawał mi pytania na nie, „żebym ja zawsze był gotów na to, żeby nie tyle odpierać ataki, co […] żeby znajdowały się dziury w samym koncepcie.” Tu zrobiłbym to samo: w nowej rozmowie pokazałbym Claude'owi plik i zapytał, które zdania są sprzeczne, które za ogólne i czego zabrakłoby nowej osobie w zespole.

Jak sprawdzić, czy plik CLAUDE.md coś daje?

Sam poprawek przed i po nie liczyłem, choć notatki i dziennik zmian w projekcie mam. W zespole zapisywałbym przez te dwa tygodnie, co ludzie mówią Claude'owi po raz drugi, i patrzył, czy po dopisaniu do pliku ta sama poprawka wraca.

Moje trzy liczby o długości zdania powstały przy jednej osobie, więc przy sześciu spodziewałbym się więcej. Każda zasada dostawałaby datę: w moim AGENTS.md dwie nowsze sekcje mają dopiski w rodzaju „ustalone 30.09.2026”. Skąd się wzięła zasada sprzed pół roku, trudno bez tego zgadnąć.

A uczestniczce, której nie zapisywała się pamięć, powiedziałbym dziś jeszcze, żeby otworzyła ten plik i przeczytała, co model tam sobie napisał. No ale ja miałem za 8 minut drugie szkolenie.

Nie wiesz, czy ktoś w Twoim zespole pracuje w Claude Code, czy w zwykłym czacie, i co Claude może tam ruszyć? Popatrzmy na to przez pół godziny, bezpłatnie. (Na szkoleniu Claude Code też mogę Ci w tym pomóc.)