48 markdown fajlova. Nastali tokom implementacije, ne posle.
Svaki doc je nastao tako što sam objašnjavao AI-ju šta gradimo. AI je to formatirao u dokumentaciju. Ja sam pregledao i dopunio.
Ali ta dokumentacija nije samo za AI. Postala je najvredniji resurs projekta — i za mene, i za budućeg sebe koji se vraća posle nedelju dana i ne seća se kako nešto radi.
Šta je CLAUDE.md
CLAUDE.md je fajl u root-u projekta koji objašnjava Claude Code alatu sve što treba da zna o vašem kodu. Kada Claude Code otvori projekat, prvo čita ovaj fajl. Odmah razume strukturu, komande, i gde da traži detalje.
# CLAUDE.md
## Komande
pnpm install # Instaliraj zavisnosti
pnpm dev # Pokreni razvoj
pnpm test # Pokreni testove
## Arhitektura
apps/
├── studenti-theme/ # WordPress tema
├── studenti-plugin/ # WordPress plagin
├── studenti-node-api/ # Node.js API
├── studenti-emails/ # React Email šabloni
└── e2e/ # Playwright testovi
## Dokumentacija
| Tema | Fajl |
|------|------|
| Upload pipeline | docs/upload-pipeline.md |
| Članstvo | docs/membership.md |
| Infrastruktura | docs/infrastructure.md |
Šest nivoa memorije — od organizacije do mašinskog učenja
Anthropic je dizajnirao sistem u kome instrukcije dolaze iz šest izvora, organizovanih po specifičnosti. Što je specifičnije, to ima veći prioritet:
┌─ 1. Organizaciona pravila ──── IT/DevOps (svi korisnici)
│
├─ 2. Projekat CLAUDE.md ─────── Tim (deljeno kroz Git)
│
├─ 3. .claude/rules/*.md ─────── Tim (modularna pravila)
│
├─ 4. Lični ~/.claude/CLAUDE.md ─ Samo vi (svi projekti)
│
├─ 5. CLAUDE.local.md ─────────── Samo vi (ovaj projekat)
│
└─ 6. Auto-memorija ──────────── Claude uči sam
Nivo 1: Organizaciona pravila — IT tim postavi pravila za celu firmu. Svi koji koriste Claude Code u organizaciji dobijaju iste instrukcije.
Nivo 2: Projekat CLAUDE.md — Fajl u root-u repozitorijuma. Ide u Git, vidljiv celom timu. Ovo je najvažniji nivo za većinu projekata.
Nivo 3: Modularna pravila — Umesto jednog ogromnog fajla, pravila razdvojena po temama u .claude/rules/ direktorijumu. Svaki fajl može imati uslov kada se primenjuje.
Nivo 4: Lični CLAUDE.md — ~/.claude/CLAUDE.md važi za SVE vaše projekte. Idealno za lična pravila poput "nikada ne koristi git za komitovanje."
Nivo 5: CLAUDE.local.md — Privatna projektna podešavanja. Automatski dodat u .gitignore. Za stvari kao što su lokalni URL-ovi, testni podaci, lični tokovi rada.
Nivo 6: Auto-memorija — Claude sam beleži obrasce koje nauči tokom rada. Čuva ih u ~/.claude/projects/<projekat>/memory/. Indeks fajl MEMORY.md (prvih 200 linija) se učitava na startu svake sesije.
Modularna pravila: .claude/rules/
Umesto jednog dugačkog CLAUDE.md, pravila se mogu razdvojiti u fokusirane fajlove:
.claude/
├── CLAUDE.md
└── rules/
├── php-style.md # PHP konvencije
├── testing.md # Pravila za testove
└── api/
└── node-api.md # Pravila za Node API
Ključna mogućnost: uslovna primena po putanji. Pravila se aktiviraju samo kada Claude radi sa fajlovima koji odgovaraju šablonu:
---
paths:
- "apps/studenti-node-api/**/*.ts"
- "apps/studenti-node-api/**/*.tsx"
---
# Node API pravila
- Koristi Hono framework konvencije
- Svaki endpoint mora imati validaciju ulaza
- Testovi uz svaki handler
Pravilo o Node API-ju se učitava samo kada Claude radi sa TypeScript fajlovima u Node API direktorijumu. PHP pravila se ne mešaju.
Granice poverenja
Najvažniji deo CLAUDE.md za solo developera: eksplicitne granice šta AI sme, a šta ne sme.
## Git pravila
Nikada ne koristi git za add/commit/push/pull/rebase.
Obavesti korisnika kada je potrebna git interakcija.
Dozvoljene su samo read-only operacije (status, log, diff).
Zašto? Jer:
- Kontrola. Ja odlučujem kada se nešto komituje.
- Pregled. Vidim sve promene pre nego što odu u repo.
- Sigurnost.
git push --forcena main u 2 ujutru nije dobra ideja.
AI može da pročita git istoriju. Ne može da je menja. To je granica poverenja.
Pomoćne funkcije: Najkorisniji deo
Bez ovog: AI piše sirove SQL upite za proveru PRO statusa.
Sa ovim: AI koristi studenti_user_has_pro().
## Pomoćne funkcije
studenti_user_has_pro($user_id) // Proveri PRO status
studenti_can_download($user_id, $post_id) // Proveri pravo preuzimanja
studenti_consume_download($user_id, $post_id) // Potroši kredit
studenti_get_cta_state($user_id, $post_id) // CTA tekst za sve UI pozicije
AI ne zna da ove funkcije postoje osim ako mu ne kažete. Lista pomoćnih funkcija u CLAUDE.md sprečava ponavljanje implementacije koja već postoji.
Piši dokumentaciju prvo, implementiraj posle
Zvuči naopako. Ali radi.
Kada napišete doc pre implementacije:
- Morate da razmislite o arhitekturi
- Morate da razmislite o graničnim slučajevima
- Morate da razmislite o API-ju
Doc postaje specifikacija. AI prati specifikaciju bolje nego improvizaciju.
Primer: Membership sistem
- Napisao doc: 6 tabela, model prava pristupa, potrošnja kvote
- AI pregledao: "Šta ako nastane konflikt istovremenih zahteva?"
- Ažuriran doc: Atomski SQL za potrošnju
- Implementacija: Pratili doc
- Finalni doc: Dodate pomoćne funkcije, primeri
48 markdown fajlova je nastalo ovim procesom. Upload pipeline (750+ linija), membership sistem (700+ linija), infrastruktura (470+ linija), institucije (730+ linija)…
Auto-memorija: Claude uči sam
Tokom rada, Claude beleži obrasce koje primeti:
- Komande za build i testiranje
- Rešenja za česte greške
- Arhitekturalne napomene
- Vaše preferencije
Ovo se čuva u ~/.claude/projects/<projekat>/memory/. Indeks fajl MEMORY.md (prvih 200 linija) se učitava na početku svake sesije. Možete i ručno dodavati beleške komandom /memory.
Za naš projekat, auto-memorija pamti: verziju baze (migracija 11), da webhook handler mora biti idempotentan, da E2E testovi zahtevaju e2e- prefiks u email adresama.
Pattern koji radi za bilo koji AI alat
CLAUDE.md je Claude Code koncept. Ali princip važi za sve AI alate:
Cursor: .cursorrules fajl sa sličnom strukturom
GitHub Copilot: Instrukcije u .github/copilot-instructions.md
Windsurf: .windsurfrules fajl
Suština je ista: dajte AI-ju strukturiran kontekst o projektu. Bez konteksta, AI generiše generički kod. Sa kontekstom, AI generiše kod koji se uklapa u VAŠ projekat.
Praktični saveti
1. Držite CLAUDE.md ažurnim. Zastareo doc je gori od nikakvog.
2. CLAUDE.md je indeks, ne enciklopedija. Linkujte na detaljne dokove umesto da sve trpate u jedan fajl.
3. Budite eksplicitni o konvencijama. "Koristi pnpm, ne npm" je korisnije nego "koristi pravi alat."
4. Kažite šta NE raditi. Ponekad je važnije zabraniti anti-pattern nego objasniti ispravan pristup.
5. Koristite .claude/rules/ za fokusirana pravila. Jedno pravilo po fajlu, opisna imena (testiranje.md, api-dizajn.md).
Dokumentacija koju pišete za AI postaje dokumentacija koja pomaže i vama.
48 markdown fajlova nisu nastali kao poseban zadatak dokumentacije. Nastali su kao kontekst za AI koji se pokazao koristan za sve — uključujući budućeg sebe koji se vraća na projekat posle pauze.
Šest nivoa memorije znači da svaki nivo radi ono što radi najbolje: organizacija postavlja široka pravila, tim deli konvencije projekta, vi dodajete lične preferencije, a Claude sam uči obrasce.