QO‘LLANMA · 6 DAQIQA O‘QISH

Claude'da xotira bilan qanday ishlash kerak

Claude'ga bir narsani beshinchi marta tushuntirding, u esa yana o'zicha qildi. Bugun uning xotirasi qanday tuzilganini va qoidalaring nega ishlamasligini ko'rib chiqamiz.

Har bir sessiya bo'sh oyna bilan boshlanadi. Claude kechagi kunni eslamaydi, sening loyihangda o'rganmaydi va ishga tushirishlar orasida hech narsa saqlamaydi. Keyingisiga faqat fayllar o'tadi. Qoidalarni sen yozasan, xotirani esa u o'zi uchun yuritadi.

Va darhol yoqimsiz narsa. Qoidalar unga oddiy xabar bo'lib keladi, xuddi ularni chatga o'zing yozganday. Bu qat'iy konfiguratsiya emas. U o'qiydi va rioya qilishga harakat qiladi. Bajarilish kafolati yo'q.

Diskda bu shunday yotadi: ~/.claude/ ├── CLAUDE.md — hamma joydagi odatlar ├── rules/ — shaxsiy qoidalar └── projects/ — avtoxotira my-app/ ├── CLAUDE.md — loyiha qoidalari ├── CLAUDE.local.md — sening, gitignore'da └── .claude/ ├── rules/ — mavzular bo'yicha qoidalar ├── skills/ — protseduralar └── settings.json — huklar

Ikkita .claude papkasi

Nomi bir xil, xatti-harakati har xil. Uy papkasidagisi kompyuterdagi barcha loyihalarda ishlaydi. Loyiha ichidagisi — faqat uning ichida.

Eng ko'p shuni so'rashadi. Agar bir loyihada burchak yumaloqligi yuz foiz, boshqasida qirq bo'lsa — dizayn-tizim loyiha ichida yotadi. Qo'shnisi u haqida bilmaydi.

CLAUDE.md

Uy papkasida — sening odatlaring: javoblar tili, paket menejeri, hech qachon nima qilmaslik.

Loyiha ildizida — ishga tushirish va test buyruqlari, uslub, arxitektura qarorlari va «tirmalar». Gitga ketadi, butun jamoaga keladi. Yonida CLAUDE.local.md — xuddi o'sha, lekin faqat seniki: portlar, test foydalanuvchisi, stendga havola.

CLAUDE.md namunasi: # Mening loyiham ## Buyruqlar npm run dev — server 5173 portda npm run build — dist'ga yig'ish npm run typecheck — tiplarni tekshirish ## Taqiqlar So'ramasdan bog'liqlik qo'shma. Migratsiyalar papkasiga tegma. ## Tirmalar 6006 porti boshqa loyiha bilan band, Storybook'ni 6007 da ko'tar.

«Tirmalar» — eng qimmatli qismi. Buyruqlarni Claude package.json'ni o'qib taxmin qiladi; band portni esa hech qachon taxmin qilmaydi va har sessiyada unga qoqiladi.

Fayllar bir-biriga yopishtiriladi. Agar ikkitasi qarama-qarshi ko'rsatma bersa — Claude istalganini tanlaydi. Jimgina.

Bu yerda ikki yuz qator — tavsiya, lekin to'rt yuz qatorli fayl yomonroq ishlaydi: qoidalar shovqinda cho'kadi. Har bir qatorni «olib tashlasam, u xato qila boshlaydimi?» degan savol bilan tekshir. Yo'q — kes.

Mavzular bo'yicha qoidalar

Asosiy faylni shishiradigan hamma narsani .claude/rules ga chiqar. Dizayn-tizimga alohida fayl, baza bilan ishlashga alohida, testlarga alohida.

Qoidaga niqob yozib qo'yish mumkin: faqat komponentlar papkasidagi fayl ochilganda yuklash. Buni Claude'ning o'zi hal qiladi — qaysi fayl ochiq ekaniga qaraydi va qoida matnini qo'shib qo'yadi.

Niqob fayl sarlavhasida, qoida matnidan oldin yashaydi. Yulduzchalar shunday o'qiladi: ikkitasi — istalgancha ichma-ich papka, bittasi — fayl nomida istalgan narsa.

.claude/rules/layout.md namunasi: --- name: layout description: Sahifa qoidalari paths: - "src/**/*.tsx" - "**/*.stories.tsx" --- # Sahifa qoidalari Keyin qoidaning o'z matni.

Trigger — aynan faylni o'qish. Claude yangi komponentni noldan yasaydi, hech narsani ochmaydi, va dizayn-tizimingiz unga yetib kelmaydi. Shuning uchun fayl yaratishda kerak bo'ladigan qoidalarni umuman niqobsiz tut.

Skillar

Ichida SKILL.md fayli bo'lgan papka. Ishga tushganda kontekstga faqat nomi va tavsifi tushadi, tanasi esa kerak bo'lganda o'qiladi.

skills/deploy/SKILL.md namunasi: --- name: deploy description: Relizni prodga chiqarish. Deploy qilish, chiqarish yoki versiyani orqaga qaytarish so'ralganda ishlatilsin --- # Relizni chiqarish Keyin protsedura qadamlari.

Mana bu yerda endi model hal qiladi. U tavsifni ko'radi va ichiga kirish-kirmaslikni o'zi tanlaydi. Demak, tavsif — bu trigger, uni aniq yozish kerak, o'zing so'raydigan so'zlar bilan. «Relizlar haqida» degan tavsif bo'yicha model ichiga kirmaydi.

Skillar — protseduralar uchun. Deploy, insidentni tahlil qilish, relizni yig'ish. Fayl turiga bog'lanmagan narsalar.

Huklar

Yuqoridagi hamma narsani Claude e'tiborsiz qoldirishi mumkin. Hukni — yo'q.

Bu hodisa yuz berganda modelning ishtirokisiz o'zi bajariladigan buyruq. Har bir tuzatishdan keyin linterni yurgizish, fayl hajmini o'lchash, migratsiyalar papkasiga yozishni bloklash.

.claude/settings.json namunasi: { "hooks": { "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/lint.sh" } ] } ] } }

Shunday o'qiladi: PostToolUse — asbob ishlab bo'lgandan keyingi payt. Matcher — qaysi asboblarda ishga tushish, bu yerda faylni yozish va tahrirlashda. Command — nima bajarish. Ichida o'zing yozadigan oddiy shell-skript yotadi.

Skriptga yo'l o'zgaruvchi orqali beriladi, va bu muhim: $CLAUDE_PROJECT_DIR — loyiha ildizi, hukning o'zi esa joriy papkada bajariladi. Ular mos kelishi shart emas, va unda nisbiy yo'l noto'g'ri joyni ko'rsatadi.

Avtoxotira

U o'zi uchun yuritadigan fayllar. Yozib qo'yish uchun chatda shunchaki ayt: testlar lokal redis talab qilishini eslab qol.

Bu yerda 200 qator — endi qat'iy chegara. Chegaradan tashqaridagisi umuman yuklanmaydi. To'rt yuz qatorli fayl yarmigacha mavjud emas.

Noldan tartib

/init ni ishga tushir — loyiha faylining qoralamasini olasan. Uni «olib tashlasam — xato qila boshlaydi» qoidasi bo'yicha qisqart. Kod bazasining bir qismiga tegishli hamma narsani rules ga chiqar. Protsedura bo'lgan hamma narsani — skillarga. Temirdek bajarilishi kerak bo'lgan hamma narsani — huklarga. Shaxsiysini — local ga.

Keyin /context. U sessiyaga haqiqatda nima yuklanganini ko'rsatadi. U yerda fayl yo'q — demak, Claude uni ko'rmaydi, va bundan keyin taxmin qilish ma'nosiz.

Va bir qator qoidasi: ikkinchi marta tushuntirganingni yozib qo'y. Birinchisini emas. Birinchi marta tasodif bo'lishi mumkin.

KEYINGI QADAM

Bilimni amaliyotga aylantiring

Maqolada — g‘oya. Kursda esa video, tayyor promptlar va qadamma-qadam topshiriqlar bilan o‘zingiz qurasiz.