Moduł 4 25 min Zaawansowany

CLAUDE.md - konfiguracja projektu i pamięć

Czego się nauczysz
  • Rozumiesz, czym jest CLAUDE.md i jak działa hierarchia plików
  • Potrafisz napisać CLAUDE.md dla swojego projektu
  • Znasz system Auto Memory i wiesz, jak nim zarządzać
  • Stosujesz best practices z oficjalnej dokumentacji

Czym jest CLAUDE.md

CLAUDE.md to plik konfiguracyjny, który mówi Claude Code, jak pracować z Twoim projektem. Analogia: jeśli README.md to instrukcja dla ludzi, to CLAUDE.md to instrukcja dla AI.

Claude Code automatycznie czyta CLAUDE.md na początku każdej sesji.

Hierarchia plików

Claude Code używa kilku poziomów konfiguracji (od ogólnego do szczegółowego):

~/.claude/CLAUDE.md          ← Globalny (wszystkie projekty)

projekt/CLAUDE.md             ← Projekt (root, commitowany)

projekt/src/CLAUDE.md         ← Podkatalog (per moduł)

.claude/rules/*.md            ← Reguły warunkowe (glob pattern)

CLAUDE.local.md               ← Lokalne preferencje (NIE commitowane)

Bardziej szczegółowy plik nadpisuje ogólniejszy w przypadku konfliktu.

PlikLokalizacjaCelGit?
~/.claude/CLAUDE.mdHOMEGlobalne preferencjeNIE
CLAUDE.mdRoot projektuKonwencje zespołoweTAK
CLAUDE.mdPodkatalogiInstrukcje per-modułTAK
CLAUDE.local.mdRoot projektuOsobiste preferencjeNIE
.claude/settings.jsonRoot projektuPermissions, MCPTAK
.claude/rules/*.mdProjektReguły warunkoweTAK

Co wpisywać - szablony

Globalny ~/.claude/CLAUDE.md (~100 linii max)

# Globalne preferencje

## Styl kodu
- TypeScript: strict mode
- Python: type hints
- Komentarze po angielsku

## Workflow
- Commituj często, małe zmiany
- Conventional commits
- Testuj przed każdym commitem

Projektowy CLAUDE.md (root repozytorium)

# Nazwa Projektu

## Opis
Aplikacja webowa do zarządzania zadaniami (Next.js + Prisma)

## Struktura
- src/app/ -- strony Next.js (App Router)
- src/components/ -- komponenty React
- src/lib/ -- utils i helpery
- prisma/ -- schemat bazy danych

## Technologie
- Next.js 15 z App Router
- TypeScript (strict)
- Prisma ORM, TailwindCSS
- Jest + React Testing Library

## Konwencje
- Komponenty: PascalCase
- Pliki: kebab-case
- Hooki: useNazwa
- Testy: *.test.ts obok testowanego pliku

## Ważne pliki
- prisma/schema.prisma -- schemat bazy
- .env.example -- zmienne środowiskowe
- src/lib/auth.ts -- logika autentykacji

## Komendy
- npm run dev -- uruchom lokalnie
- npm run build -- zbuduj produkcję
- npm run test -- uruchom testy

Reguły warunkowe (.claude/rules/*.md)

Aktywowane na podstawie glob pattern:

# .claude/rules/testing.md
---
globs: "**/*.test.ts"
---
Gdy piszesz testy:
- Używaj describe/it pattern
- Mockuj zależności zewnętrzne
- Testuj edge cases
- Minimum 80% coverage

Auto Memory

Dzięki Auto Memory Claude Code akumuluje wiedzę między sesjami automatycznie.

Co zapisuje:

  • Komendy, które działają
  • Wnioski z debugowania
  • Notatki architektoniczne
  • Preferencje stylu kodu

Jak działa:

  • Dane w ~/.claude/memory/MEMORY.md (globalne) i .claude/memory/MEMORY.md (projektowe)
  • Pierwsze 200 linii MEMORY.md ładowane na początku każdej sesji
  • Treść ponad 200 linii NIE jest ładowana automatycznie

Zarządzanie: /memory w sesji Claude Code.

Do zapamiętania: CLAUDE.md = stabilny kontekst (architektura, konwencje). Auto Memory = dynamiczny kontekst (preferencje, odkrycia). Nie powielaj informacji.

Mój pierwszy CLAUDE.md miał ponad 400 linii - wrzuciłem tam dosłownie wszystko: styl kodu, listę plików, instrukcje deploy, historię commitów. Claude ignorował połowę. Skróciłem do 150 linii, zostawiając tylko to, co Claude naprawdę musiał wiedzieć - i nagle zaczął stosować się do konwencji.

Best practices

Rób:

  • Pisz zwięźle - max ~200-300 linii projektowy CLAUDE.md
  • Używaj formatowania Markdown (nagłówki, listy, tabele)
  • Aktualizuj regularnie - nieaktualne instrukcje są gorsze niż brak instrukcji
  • Commituj CLAUDE.md do repozytorium
  • Testuj efektywność - jeśli Claude ignoruje instrukcje, przeformułuj je

Nie rób:

  • NIE wpisuj sekretów (hasła, klucze API, tokeny)
  • NIE pisz zbyt długo - globalny max ~100 linii
  • NIE powtarzaj oczywistości - Claude sam rozpozna TypeScript/React
  • NIE dawaj sprzecznych instrukcji między plikami
  • NIE wstawiaj całych plików - linkuj zamiast tego

Ćwiczenie praktyczne: Utwórz CLAUDE.md dla istniejącego projektu:

  1. Uruchom claude /init w katalogu projektu (jeśli dostępne) LUB stwórz ręcznie
  2. Wypełnij sekcje: Opis, Struktura, Technologie, Konwencje, Ważne pliki, Komendy
  3. Przetestuj: zapytaj Claude Code "Jaki jest stack tego projektu?" - czy odpowiada poprawnie?
  4. Iteruj: jeśli Claude ignoruje jakąś konwencję, doprecyzuj ją w CLAUDE.md

Co dalej

W następnej lekcji poznasz codzienne komendy i workflow - slash commands, flagi, pipe.