CLAUDE.md — Claude Code uchun kontekst fayli

Claude Code (Anthropic-ning rasmiy CLI-agent vositasi) har bir sessiya boshida loyiha papkasi va ota-katalogdan CLAUDE.md fayllarni qidiradi. Bu fayllar — agentning "doim ko'z oldida turadigan" qo'llanmasi. Ularda yozilgan qoidalar va kontekst har bir suhbatga avtomatik qo'shiladi.
Ushbu qo'llanmada CLAUDE.md ni qanday tuzish kerakligi va qaysi paternlar yaxshi ishlashi haqida.
Qaerdan o'qiladi?
Claude Code uch joydan CLAUDE.md ni o'qiydi (yuqoridan past tartibda):
- Global:
~/.claude/CLAUDE.md— barcha loyihalar uchun umumiy. - Loyiha:
<repo-root>/CLAUDE.md— joriy loyiha uchun. - Lokal:
<repo-root>/.claude/CLAUDE.local.md— lokal mashina uchun, git'ga qo'shilmaydi.
Yuqoridan past — har bir qatlam ustkisini to'ldiradi yoki almashtiradi.
Nima yoziladi?
CLAUDE.md ning maqsadi — har bir suhbat boshida agentga aytib o'tirmaslik. Bir marta yozasiz — har sessiya o'qiladi.
Tipik bo'limlar:
1. Loyiha haqida
Qisqa ta'rif: bu nima, qaysi til/freymvork, qanday foydalanuvchilar uchun.
# My Project
Node.js + TypeScript backend, PostgreSQL DB. B2B SaaS — buxgalterlik
avtomatlashtirilishi. Foydalanuvchilar — kichik biznes.
2. Stack va konventsiyalar
Hozir qo'llanilayotgan kutubxonalar, kod uslubi, fayl strukturasi.
## Stack
- Backend: Fastify + Prisma
- DB: Postgres 16
- Test: vitest + supertest
- Lint: ESLint + Prettier (oxirgi versiyalar)
## Konventsiyalar
- Snake_case fayllar uchun, camelCase JS-da
- Har bir endpoint uchun integration test
- DB migratsiyalari faqat `prisma migrate`
3. Komandalar
Tezkor buyruqlar — agent ularni bevosita ishlatishi mumkin.
## Komandalar
- `pnpm dev` — dev server (port 3000)
- `pnpm test` — testlar
- `pnpm db:migrate` — migratsiya
- `pnpm db:reset` — DB ni qayta yaratish (dev only!)
4. Yashil/qizil zonalar
Agent qaysi harakatlarni avtonom qiladi, qaysilari uchun ruxsat so'raydi.
## Yashil zona (avtonom)
- Kod yozish, refaktoring, testlar
- Lokal docker container restart
- Git commit (push emas)
## Qizil zona (ruxsat so'rash)
- DB ga deploy
- Production migration
- Force push, branch o'chirish
- 50 USD dan ortiq xarajat
5. Qoidalar va ogohlantirishlar
Loyiha-spetsifik xavfsizlik qoidalari.
## Qoidalar
- HECH QACHON `.env` ni commit qilmaslik
- Sezgir ma'lumotlarni log'ga yozmaslik (PII, kartalar)
- `sudo` ishlatish — faqat ruxsat bilan
- Migratsiyalar — back-up bilan
Yaxshi paternlar
Stable yuqorida, dynamic pastda
Doim o'zgaradigan ma'lumotlar (joriy sprint, vaqtinchalik dekoratsiyalar) — eng past qismda. Stable qism (stack, qoidalar) — yuqorida. Bu prompt caching ga yordam beradi.
Bo'limlarga ajratish
Markdown sarlavhalarini ishlating. Agent kontekstda kerak bo'lgan bo'limni topadi. 10 sahifalik bir blok — yomon, 10 sahifalik 8 ta bo'lim — yaxshi.
Konkret misollar
"Yaxshi kod yoz" — yomon. "Har funksiyani 30 qatordan oshmaslik kerak, uzun bo'lsa — bo'lib chiqing. Misol: ..." — yaxshi.
Qo'shimcha hujjatlar @-import bilan
CLAUDE.md ichida @docs/architecture.md yozsangiz — Claude Code shu fayl tarkibini avtomatik kontekstga qo'shadi. Katta hujjatlarni asosiy faylga aralashtirmaslik mumkin.
Yomon paternlar
| Anti-pattern | Nima uchun yomon |
|---|---|
| 50K+ token CLAUDE.md | Har sessiyada qimmat, model diqqati tarqaladi |
| O'zgaruvchan tarix yozish | Memory ni boshqa joyga (tasks/, lessons/) chiqaring |
| Sezgir ma'lumotlar | API kalitlar, parollar — hech qachon CLAUDE.md ga |
| Faqat qoidalar, misol yo'q | Model "yaxshi kod" ni o'zicha tushinadi |
Kichik harfdagi claude.md | Klient faqat aniq nomli faylni qidiradi |
Kichik shablon
Yangi loyiha uchun minimal CLAUDE.md:
# Loyiha nomi
Bir-ikki gap: nima qiladi, kim uchun, qaysi tilda yozilgan.
## Stack
- ...
## Komandalar
- `pnpm dev`
- `pnpm test`
## Qoidalar
- Test'siz kod prodakshnga chiqmaydi
- ...
## Yashil / Qizil zona
- ...
## Kontakt
- Maintainer: @username
5-10 daqiqada yoziladi, lekin har sessiyada minglab tokenlik prompt yozishni saqlaydi.