Vibe coding best practice'lari: qanday qilib izchil natijalarga erishish mumkin
Vibe coding tartibsiz va beqaror natijalar berishi mumkin. Ishonchli kodni tezroq ship qilish uchun ushbu 10 ta vibe coding best practice'ini o'rganing.
Muallif: Ekene Eze
Siz AI coding vositangizni ochib, prompt yozadigan, oxirigacha "accept" tugmasini bosib chiqadigan va bir zumda ishlaydigan feature'ni tayyorlab qo'yadigan vibe coder'siz. Natija ishonarli ko'rinadi, ammo kodni ko'rib chiqishni boshlaganingizda yoriqlar ko'zga tashlana boshlaydi. Qo'lingizda review qilish qiyin, vulnerability'larga ega bo'lishi mumkin bo'lgan, uslubi ham, natijasi ham izchil bo'lmagan AI yaratgan kod qoladi.
Tezroq bo'lishi kerak bo'lgan yondashuv bottleneck'ka aylanadi. Muammo vositada emas, undan qanday foydalanishingizda. Vibe coding bilan siz aniq ko'rsatmalar beradigan va izchil natijalarga erishishga yordam beradigan ish modelini yo'lga qo'yadigan nazoratchi rolini o'z zimmangizga olishingiz kerak. Aks holda kodni tuzatishga ko'proq vaqt sarflayotganingizni, token'larni behuda sovurayotganingizni va session o'rtasida usage limit'larga urilib qolayotganingizni sezasiz.
Ushbu qo'llanmada beqaror natijalardan ishonchli natijalarga o'tishingizga yordam beradigan 10 ta best practice ko'rib chiqiladi. Misollarda Claude Code ishlatilgan bo'lsa-da, ularning asosidagi amaliyotlar Cursor, Windsurf, Gemini CLI, Codex yoki boshqa istalgan AI coding vositasidan foydalanayotganingizdan qat'i nazar qo'llaniladi.
TL;DR
Quyidagi jadvaldan vibe coding session'ingizdan oldin va uning davomida checklist sifatida foydalaning:
| # | Best practice | Nima qilish kerak |
|---|---|---|
| 1 | Context config faylingizni ixcham va dolzarb saqlang. | CLAUDE.md, GEMINI.md, .cursorrules yoki ularning muqobilidan eskirgan kontentni olib tashlang |
| 2 | Feature'lar orasida context'ni reset qiling. | Har bir session'da bitta feature bo'lsin. Vositangizning reset buyrug'idan foydalaning. |
| 3 | Har bir feature'dan oldin reja tuzing. | Biror kod yozilishidan oldin reja so'rang. |
| 4 | Ko'lami aniq belgilangan, cheklovli prompt'lar yozing. | Maqsadni ayting, cheklovlarni sanab o'ting, nimaga tegmaslik kerakligini ko'rsating. |
| 5 | AI'ga namuna fayl bering. | Mavhum tavsiflar o'rniga kod misollarini taqdim eting. |
| 6 | Qabul qilishdan oldin har bir diff'ni ko'rib chiqing. | O'chirishlar, API o'zgarishlari, yangi dependency'lar va off-limits fayllarni tekshiring. |
| 7 | Qabul qilingan har bir o'zgarishdan keyin testlarni ishga tushiring. | Har safar typecheck + test + lint bajaring. |
| 8 | Off-limits zonalarni e'lon qiling. | Sensitive ma'lumotlar qayerda joylashganini config faylingizda va tegishli prompt'larda hujjatlashtiring. |
| 9 | Migration rejalarini talab qiling. | Kod yaratishdan oldin schema o'zgarishlari va rollback bo'yicha xulosani o'qing. |
| 10 | Takrorlanuvchi vazifalar uchun skill'lar yarating. | Eng yaxshi prompt pattern'larini saqlang, qayta ishlating, natijalardagi tafovutni yo'qoting. |
Vibe coding lifecycle'i
Vibe coding — dasturiy ta'minot yaratish uchun tabiiy tildan foydalanish demakdir. Siz kerakli funksionallikni tasvirlab berasiz, AI esa kod yaratadi, fayllarni boshqaradi, testlarni ishga tushiradi, bug'larni tuzatadi va refactoring qiladi, shu bilan birga natijani iterativ tarzda takomillashtirib borish imkonini beradi.
Bu yondashuv an'anaviy software development lifecycle'ni takrorlasa-da, katta farq shundaki, kodni AI yozadi, siz esa natija arxitektura yo'nalishiga mos kelishini ta'minlaysiz.
Natijada nosozliklarning aniq zanjiri yuzaga kelishi mumkin. Agar AI session'ni eskirgan context bilan boshlasa, uning rejasi noto'g'ri taxminlarga asoslanadi. Yomon reja maqsadga mos kelmaydigan kodni keltirib chiqaradi. Puxta ko'rib chiqilmagan bunday kod bug'lar va xavfsizlikdagi bo'shliqlarni olib kiradi. Takrorlanadigan workflow'lar bo'lmasa esa session'lar bo'ylab beqaror natijalarga ega bo'lasiz.
Vibe coding takrorlanadigan workflow'ga amal qiladi:
-
Context'ni toza va maqsadli saqlang.
-
Prompt'larni rejalashtiring.
-
Natijani ko'rib chiqing.
-
Muhim kodga keraksiz o'zgarishlar kiritilishining oldini oling.
-
Scale qilish uchun workflow'larni standartlashtiring.
Keling, har bir bosqichni va natijangizni izchil saqlaydigan amaliyotlarni ko'rib chiqamiz.
1. Context'ni boshqaring
AI yaratgan koddagi nosozliklarning aksariyati eskirgan yoki haddan tashqari yuklangan context'dan kelib chiqadi. AI vositasining context window'i tez to'ladi va suhbat kengaygani sari natija sifati pasayadi. Session'lar uzaygani sari AI qayta ishlashi kerak bo'lgan xabarlar, fayllar va buyruq output'lari ko'payadi. Bu oldingi ko'rsatmalarni yoddan chiqarib qo'yishni osonlashtiradi. Quyidagi amaliyotlar context'ni yaxshiroq boshqarishga va session'laringizni aniq hamda maqsadli saqlashga yordam beradi.
1-amaliyot: Context config faylingizni ixcham va dolzarb saqlang
Har bir yirik AI coding vositasi har bir session boshida loyiha konfiguratsiya faylini o'qiydi. Bu yangi pair programmer'ga beriladigan texnik context'ga teng: unga stack, convention'lar hamda funksional kodning qaysi qismlariga tegish mumkin yoki mumkin emasligi kiradi. Config fayl nomi vositadan vositaga farq qiladi:
-
Claude Code: CLAUDE.md
-
Gemini CLI: GEMINI.md
-
Cursor: .cursor/rules/ (.mdc rule fayllarini shu papkaga joylashtiring)
-
Windsurf: .windsurfrules
-
OpenAI Codex: AGENTS.md
Dasturchilar yo'l qo'yayotganini ko'radigan keng tarqalgan xatolardan biri — config faylga hujjat sifatida qarash. Unda har qanday ehtimoliy qaror uchun ko'rsatmalar bo'lmasligi kerak; aksincha, unda aynan shu session'ga tegishli ko'rsatmalar bo'lishi kerak.
Quyidagi jadvalda nimani qoldirish va nimani olib tashlash kerakligi ko'rsatilgan:
| Config faylingizda qoldiring | Config faylingizdan olib tashlang |
|---|---|
| Build va run buyruqlari | O'tgan haftadagi session'dan qolgan bug context'i |
| Papka tuzilmasining umumiy ko'rinishi | Vaqtinchalik deadline yoki sprint qaydlari |
| Nomlash va uslub convention'lari | Yaqinda olib tashlamoqchi bo'lgan tajribalaringiz |
| Off-limits fayllar va papkalar | Bekor qilingan qarorlar |
| Testing freymvorki va testlarni qanday ishga tushirish | Qarorlar nima uchun qabul qilingani haqidagi uzun tushuntirishlar |
Bu qoidalarga amal qilmaslik AI'ning eskirgan yoki qarama-qarshi context bilan ish boshlashini anglatadi, bu esa noto'g'ri implementation'larga olib keladi.
Config faylga oid muammolarning aksariyati uning nazoratsiz o'sib ketishiga yo'l qo'yishdan kelib chiqadi. Masalan, men CLAUDE.md fayllarining 200+ qatorgacha shishib ketganini ko'rganman. Claude bularning hammasini o'qib chiqqunicha to'g'ri ko'rsatmalarni ustuvor qilib ajratishga qiynaladi. Iloji bo'lsa, uni 50 qatordan kam saqlang.

TypeScript loyihasi uchun ixcham va foydali CLAUDE.md quyidagicha ko'rinadi:
# my-app
## Stack
- Node 20 + TypeScript (strict mode)
- pnpm, Vite, Vitest
- PostgreSQL via Prisma
## Run commands
- pnpm dev # start local server
- pnpm test # run all tests
- pnpm lint # ESLint + Prettier
- pnpm typecheck # tsc --noEmit
## Conventions
- Prefer small, pure functions over classes
- No clever abstractions — clarity over brevity
- All new features need a Vitest test file
## Off-limits (never touch without explicit instruction)
- /src/auth/** (authentication flows)
- /src/payments/** (payment processing)
- Any schema migration — propose a plan first
## If unsure
- Propose 2 options and ask me to choose
- Never rename public APIs without asking
2-amaliyot: Context'ni reset qiling va aniqlashtiring
Context bleed — AI coding workflow'laridagi ko'zga tashlanmaydigan bug'larning eng keng tarqalgan sabablaridan biri va u ko'pincha sezilmay qoladi. U bitta uzun session'da bir nechta feature ustida ishlaganingizda yuzaga keladi. AI oldingi suhbatlardagi context'ni keyingilariga olib o'tadi va avvalgi pattern'larga ergashishga hamda ilgari ustida ishlangan fayllarga murojaat qilishga moyil bo'ladi. Natija bir qarashda to'g'ri ko'rinishi mumkin, ammo unda noto'g'ri taxminlar bo'ladi.
Claude Code'da context bleed'ni boshqarishga uchta buyruq yordam beradi:
/clear: Context window'ni reset qiladi. Buni har bir alohida vazifadan keyin doim ishga tushirishingiz kerak./clearni ishga tushirganingizdan keyin Claude oldingi session'dan biror narsani eslab qolgan deb o'ylamang. Unga faqat maqsad, faylning joriy holati va cheklovlarni qayta bering.
> Goal: Add email notifications when a task is marked complete.
Constraints: Follow CLAUDE.md. Touch only the notification
module and the task completion handler. No schema changes.
Start by proposing a plan. Do not write code yet.
-
/compact: Muhim kod va qarorlarni saqlab qolgan holda joy bo'shatish uchun suhbat tarixini qisqacha xulosaga aylantiradi. Context deyarli to'lgan, ammo sizga hali ham uzluksizlik kerak bo'lganda undan foydalaning./compactni ishga tushirganingizdan keyin davom etishdan oldin xulosani ko'zdan kechirib chiqing va noto'g'ri yoki tushib qolgan narsa bor-yo'qligini qidiring. -
/rewind: Oldingi checkpoint'ga qaytaradi. Claude so'nggi bir necha qadamda noto'g'ri yo'lga burilib ketgan va siz uning o'zgarishlarini bekor qilmoqchi bo'lganingizda undan foydalaning./rewindbuyrug'i rewind ro'yxatini ochadi, unda session'dagi har bir prompt'ingiz ko'rsatiladi. Ustida ishlamoqchi bo'lgan nuqtani tanlang, so'ngra amalni tanlang. Kod va suhbatni tiklash, suhbatni tiklash, kodni tiklash, suhbatni xulosalash yoki hech narsani o'zgartirmasdan qaytish kabi amallarni bajarishingiz mumkin.
/rewind /clear'ning o'rnini bosmaydi. /rewind amallarni bekor qiladi, /clear esa context'ni reset qiladi. Rewind qilish uchun Esc'ni ikki marta bosishingiz ham mumkin.
Gemini CLI'da /clear va /rewind xuddi shunday ishlaydi, chat context'ini xulosalash uchun esa /compress dan foydalaning. Cursor va Windsurf'da har bir yangi feature uchun yangi chat boshlash tavsiya etiladi.
2. Prompt'larni rejalashtiring
Yomon prompt'lar AI natijalari beqaror bo'lishining asosiy sabablaridan biri. Dasturchilar orasida keng tarqalgan muammo — noaniq prompt'lar yozish.
AI assistant'ga noaniq ko'rsatmalar berganingizda u yetishmayotgan tafsilotlarni siz nimani xohlashingiz mumkinligi haqidagi o'z talqini bilan to'ldirishga moyil bo'ladi va bu talqin noto'g'ri bo'lishi mumkin. Quyidagi amaliyotlar ko'rib chiqish oson bo'lgan, izchil kod beradigan prompt'lar yozishga va tartibsiz natijalarga olib keladigan pattern'lardan qochishga yordam beradi.
3-amaliyot: Har bir yangi feature uchun Plan Mode'dan foydalaning
Rejani ko'rmasdan va tasdiqlamasdan turib AI'ga kod yaratishiga yo'l qo'ymang. Bu birgina odat menga ushbu ro'yxatdagi boshqa har qanday amaliyotdan ko'ra ko'proq vaqtni tejagan. Men uni hech qachon o'tkazib yubormayman.
G'oya shundan iboratki, biror kod yozilishidan oldin AI codebase'ingizni o'qib chiqadi va nimani yaratish yoki o'zgartirish niyatida ekanini qisqacha bayon qiladi. Aksariyat AI coding vositalarida u nimani qurmoqchi ekanini ko'rib chiqish imkonini beradigan plan mode'lar mavjud. Rejasiz ular implementation o'rtasida arxitekturaviy qarorlar qabul qilishi, yondashuvlar yoki naming convention'larni o'zgartirishi va bir nechta keraksiz fayllar yaratishi mumkin. Oxir-oqibat qo'lingizda noto'g'ri implementation jarayoni hamda shishib ketgan, izchil bo'lmagan codebase qoladi.
Claude Code uchun ideal Plan Mode workflow'i quyidagicha:
-
Plan Mode'ga kirish uchun
Shift + Tabni ikki marta bosing yoki/planslash command'idan foydalaning. -
Feature'larni tasvirlab bering va Claude'dan quyidagilarni bayon qilishni so'rang: qaysi fayllarni yaratadi yoki tahrirlaydi, qaysi function signature'larni kiritadi hamda qanday edge case'lar va error handling bo'ladi. Masalan:
> I want to add email/password authentication.
Propose: the files you’ll create or modify, the session
strategy you’ll use, how you’ll store credentials, and
how you’ll handle password resets. List any assumptions.
-
Rejani ko'rib chiqing va savollar bering. Agar rejada siz kutmagan faylga tegish ko'zda tutilgan bo'lsa, tasdiqlashdan oldin buning sababini so'rang.
-
Qoniqqaningizdan so'ng Plan Mode'dan chiqing va Claude'dan rejani amalga oshirishni so'rang.
> Implement the OAuth flow from your plan. Write tests for critical components, run the test suite, and fix any failures.
- Implementation'dan keyin Claude'dan tushunarli xabar bilan commit qilishni va pull request yaratishni so'rang.
> commit with a descriptive message and open a PR

Reja uchun prompt yozayotganda har doim “List any assumptions” iborasini qo'shishni unutmang. Nomuvofiqliklar aynan Claude'ning taxminlarida yuzaga keladi, shuning uchun u kod yaratishidan oldin ulardan xabardor bo'lgan ma'qul.
4-amaliyot: Ko'lami aniq belgilangan va cheklovli prompt'lar yozing
Har bir prompt'da maqsad, cheklovlar ro'yxati va muvaffaqiyatni tekshirish bo'yicha ko'rsatmalar bo'lishi kerak. “Ilovamga error handling qo'shing” kabi chegarasi ochiq qolgan prompt'lardan qoching. Bunday prompt'lar ko'pincha AI'ni loyihangiz bo'ylab ko'zda tutilmagan o'zgarishlar kiritishga, masalan, hamma joyga error handling qo'shishga olib keladi.
Hech qachon so'ramagan o'zgarishlarni ko'rib chiqishga ortiqcha vaqt va token sarflamaslik uchun ko'lami belgilangan va cheklovlari aniq ko'rsatilgan prompt'lar yozing. Bu Claude natijasi bir nechta fayl va dasturlash tillari bo'ylab zanjir kabi tarqalishi mumkin bo'lgan murakkab loyihalarda muhim.
Mana yaxshi prompt'ga misol:
> Goal: Add input validation to POST /api/tasks.
Constraints:
- Follow CLAUDE.md conventions
- Only modify src/routes/tasks.ts and src/validators/
- No changes to code test unless currently failing
- Do not touch: ./env/
Process:
1. Propose your approach and list the files you'll edit
2. Wait for my approval
3. Implement
4. Run: npm run dev
5. Summarize: what changed, any risks, how to revert
5-amaliyot: Claude'ga moslashishi uchun namuna fayl bering
AI kod yozish uslubingizga mos keladigan kodni samarali yaratishi uchun unga namuna sifatida aniq bir faylni ko'rsatishingiz kerak. Bitta yaxshi namuna fayl uslub haqidagi yuz so'zlik tavsifdan yaxshiroq, chunki u AI'ga kerakli funksionallik context ichida aynan qanday ko'rinishini ko'rsatadi.
“Har doim try…catch ishlating, async/await'ni afzal ko'ring” degan ko'rsatma o'rniga namuna faylga quyidagicha murojaat qiling:
> Before writing any code, read src/routes/users.ts.
That file shows the pattern I use for all routes:
error handling, validation, response format.
Match that pattern exactly when building the tasks route.
Shu tariqa siz Claude'ga kod yozish pattern'laringizni aks ettiradigan faylni ko'rsatdingiz va u bu pattern'larni session'lar bo'ylab takrorlay oladi.
Bu, ayniqsa, Tailwind CSS kabi UI freymvorklari bilan ishlaganda samarali ekanini aniqladim — ularda butun codebase bo'ylab class'lardan izchil foydalanish va component tuzilmasi muhim ahamiyatga ega.
3. Natijani ko'rib chiqing
Vibe coding vositalari chalg'ituvchi yoki noto'g'ri kod yaratishi mumkinligi sababli, kodni repository'ingizga kirishidan oldin ko'rib chiqing. Quyidagi amaliyotlar nimaga e'tibor berish kerakligini va review bottleneck'ka aylanmasligi uchun uni qanday tashkil qilishni tushunishga yordam beradi.
6-amaliyot: Qabul qilishdan oldin har doim diff'ni ko'rib chiqing
Har bir kod generatsiyasidan keyin uni junior developer'ning pull request'ini ko'rib chiqqandek tekshirib chiqing: o'qing, test qiling va nima o'zgargani hamda nima uchun o'zgarganini tushungandagina merge qiling.
AI coding vositalari ko'pincha o'zgarishlarni xavfsiz deb hisoblaydi va ularni keng qo'llaydi. Agar ular biror faylni ortiqcha deb hisoblasa, uni o'chirib yuborishi mumkin, yoki API endpoint signature'i o'zgarishi kerak deb o'ylasa, uni hamma joyda o'zgartirib chiqadi. Men Claude'ni public API endpoint'larini jimgina qayta nomlayotgan holda bir necha marta ushlab qolganman. Agar diff'ni tekshirmaganimda, bu o'zgarishlar barcha client'larni ishdan chiqargan bo'lardi.
AI natijasini diff'ni ko'rib chiqmasdan qabul qilish o'z mulohazangizdan ko'ra AI'ning mulohazasiga tayanayotganingizni anglatadi va bu xavfli.
Diff'da har doim e'tibor berishingiz kerak bo'lgan asosiy o'zgarish toifalari mavjud:
-
Fayl o'chirishlar: O'chirilgan bo'lishi mumkin bo'lgan har qanday faylni tekshiring. Fayl AI skanerlagan doiradan tashqaridagi biror joyda import qilingan bo'lishi yoki siz ataylab saqlab qo'ygan muhim hujjatlar yoxud pattern'larni o'z ichiga olishi mumkin.
-
Public API o'zgarishlari: Qayta nomlangan funksiyalar, o'zgargan signature'lar va yangi import'larni sinchiklab tekshiring. Bu, ayniqsa, API endpoint o'zgarishi ilova oqimini buzishi mumkin bo'lgan veb-ilovalarda juda muhim.
-
Off-limits fayllar: Agar AI context config faylingizda off-limits deb e'lon qilingan faylga tekkan bo'lsa, o'zgarishni rad eting va uni diff'da qabul qilishdan oldin buning sababini o'rganing.
-
Yangi dependency'lar va API key'lar:
package.jsonfaylingizdagi har bir yangi yozuvni tekshiring. Shuningdek, source kodingizda hard-code qilingan API key'lar yoki credential'lar bor-yo'qligini ham tekshiring. -
Schema o'zgarishlari: Migration fayli, ORM model yoki database schema'ga kiritilgan har bir o'zgartirishni sinchiklab ko'rib chiqing. Bu production'dagi ilova ma'lumotlaringiz xavfsizligi uchun juda muhim.
Shuningdek, yangi data source'lar, model xatti-harakatidagi o'zgarishlar yoki jimgina qayta yozilgan business logic'ni ham kuzatib boring. Ularni tezkor ko'zdan kechirishda o'tkazib yuborish oson, ammo ular ilovangizga jiddiy ta'sir ko'rsatishi mumkin.
Implementation'dan keyin, qabul qilishdan oldin aniq risk review o'tkazishni so'rang:
> Before I accept this:
summarize the changes you made, list any files you deleted,
note any new dependencies you added,
and flag anything that could break existing functionality I haven't tested yet.
Bu diff'ni tezkor ko'zdan kechirishda o'tkazib yuborilishi mumkin bo'lgan muammolarni aniqlashga yordam beradi.
7-amaliyot: Qabul qilingan har bir o'zgarishdan keyin testlar va type check'larni ishga tushiring
Claude natijasini qabul qilganingizdan keyin darhol test suite'ingiz va type check'larni ishga tushiring. Claude to'g'ri ko'rinadigan, ammo runtime'da xato beradigan yoki qo'shni funksionallikni buzadigan kod yaratishi mumkin. Qabul qilingan o'zgarishlar bilan testlarni ishga tushirish orasidagi vaqt qanchalik uzoq bo'lsa, qaysi o'zgarish nosozlikka sabab bo'lganini aniqlash shunchalik qiyinlashadi.
Qabul qilingan har bir natijadan keyin testlar va type check'larni har doim quyidagicha ishga tushiring:
pnpm typecheck # run TypeScript type checks
pnpm test # run the full test suite
pnpm lint # catch style and rule violations
Agar ulardan birortasi muvaffaqiyatsiz tugasa, davom etmang. Keyingi prompt'ingizdan oldin /rewind'dan foydalaning yoki muammoni tuzating.
4. Codebase'ni himoya qiling
Vibe coding vositalari user authentication, input validation va access control tekshiruvlarida xavfsizlik vulnerability'larini keltirib chiqarishi mumkin. AI model'lari katta hajmdagi ochiq kod, jumladan, xavfsiz bo'lmasligi mumkin bo'lgan kod pattern'lari asosida o'qitilgan.
Cloud Security Alliance va yetakchi xavfsizlik mutaxassislari AI yaratgan kod ham inson yozgan kod kabi qat'iy security review'ni, ba'zan esa undan ham ko'prog'ini talab qilishini doimiy ravishda ta'kidlab keladi.
Quyidagi amaliyotlar yuqori xavfli kodingizni so'ralmagan o'zgarishlardan himoya qiladigan cheklovlarni qanday yaratishni o'rgatadi.
8-amaliyot: CLAUDE.md'da off-limits zonalarni e'lon qiling
Kodingizning sensitive qismlari CLAUDE.md faylingizda “off-limits” sifatida aniq sanab o'tilishi va har bir tegishli prompt'da takrorlanishi kerak. Bu, ayniqsa, sensitive ma'lumotlar va environment variable'lar bilan bog'liq security best practice'lari uchun muhim.
Claude Code'da ularni CLAUDE.md faylingizda quyidagicha belgilang:
## Off-limits
- /src/auth/**
- /src/payments/**
- /src/middleware/rbac.ts
- Any file ending in .migration.ts
- .env and any file that handles environment variables
## For off-limits areas, always:
- Propose a plan and get explicit approval before touching
- Include a rollback strategy in the plan
- Require test coverage for any change
Xuddi shu pattern GEMINI.md'da yoki vositangiz uchun istalgan muqobil config faylda ham ishlaydi. Tajribamdan kelib chiqib aytsam, off-limits hududlarni e'lon qilish zarur, ammo yetarli emas. Buni prompt'da ham takrorlashingiz kerak, ayniqsa o'sha fayllar yaqinida ishlayotganingizda:
> Add a 'last seen' timestamp to the user profile.
Constraints: Modify only src/models/user.ts and the profile
update handler. Do NOT touch src/auth/ — user authentication.
logic is off-limits.
Off-limits kod bo'yicha muhim eslatmalar
Foydalanuvchi input'larini qayta ishlaydigan, rate limiting'ni amalga oshiradigan yoki API key'larni boshqaradigan AI yaratgan kodga har doim alohida e'tibor bering. Bu sohalar xavfsizlik vulnerability'lariga, jumladan, injection attack'lar va sensitive ma'lumotlarning ochilib qolishiga moyil.
Shuningdek, input'larni validate qilishni va AI yaratgan barcha access control logic'ini qabul qilishdan oldin ko'rib chiqishni unutmang.
9-amaliyot: Har qanday schema o'zgarishidan oldin migration rejasini talab qiling
Har qanday schema o'zgarishidan oldin migration rejasi zarur. Avval migration'ning o'zi, rollback yo'li va to'g'rilikni tekshiradigan testlarni o'z ichiga olgan yozma reja tuzmasdan turib AI'ga schema migration yozishiga yo'l qo'ymang.
Odatda reja quyidagilarni belgilashi kerak:
-
Oldinga yo'nalgan o'zgarish (up SQL)
-
Ortga qaytarish yo'li (down SQL)
-
Yangi schema'ni qo'llab-quvvatlash uchun zarur bo'lgan ilova kodi yangilanishlari
-
Production'da biror narsa ishdan chiqsa, qo'llaniladigan rollback strategiyasi
Boshqa biror kod yozilishidan oldin ushbu rejani tasdiqlash o'zgarishning ongli, ortga qaytariladigan va xavfsiz bo'lishini ta'minlaydi hamda ma'lumotlar buzilishi xavfini kamaytiradi.
Migration rejasini so'rash uchun prompt'ni quyidagicha yozing:
> I need to add a 'priority' column to the tasks table.
Enter Plan Mode. Before writing anything, produce:
1. The migration SQL (up and down)
2. The Prisma schema change
3. Any application code that needs updating
4. The rollback steps if this migration fails in production
Wait for my approval before writing any code.
Up va down migration'ni oldindan talab qilish ma'lumotlaringizga tegilishidan oldin uning mavjud bo'lishi va ko'rib chiqilishini ta'minlaydi.
5. Takrorlanadigan workflow'lar bilan scale qiling
Samarali ishlaydigan vibe coder'lar har bir session'da bir xil prompt pattern'larini qayta-qayta yozib o'tirmaydi; buning o'rniga ular eng ko'p ishlatiladigan workflow'larini qayta ishlatiladigan maxsus fayllarga aylantiradi. Bu yo'lga qo'yilgach, sizga endi har safar testing prompt'i, security review prompt'i yoki migration prompt'ini yozish shart bo'lmaydi.
10-amaliyot: Takrorlanuvchi, mas'uliyati yuqori vazifalar uchun skill'lar yarating
Skill'lar — takrorlanuvchi vazifa uchun izchil natijani ta'minlash maqsadida markdown fayl sifatida saqlangan, qayta ishlatiladigan prompt pattern'lari. Skill'lar Claude Code'dan kelib chiqqan, ammo o'shandan beri turli AI platformalari va vositalari bilan mos keladigan open standard'ga aylangan. Ular Claude Code, Gemini CLI, Codex CLI va tobora ko'payib borayotgan agent'lar tomonidan native tarzda qo'llab-quvvatlanadi. Cursor va Windsurf'da esa unga teng tushuncha config fayllarda joylashgan.
Skill'lar, ayniqsa, unit test'lar yaratish, security review'lar o'tkazish, xavfsiz refactoring'larni bajarish, migration'lar bilan ishlash va release checklist'larini tuzish uchun foydali. Bular AI'ga prompt berish usulingizdagi kichik o'zgarishlar ham yaratilgan kod sifatiga ta'sir qiladigan vazifalardir. Kuchli skill'lar workflow'ingizni yanada izchil va takrorlanadigan qiladi.
Claude Code'da .claude/skills/ papkasiga SKILL.md fayli bo'lgan papka qo'shish orqali skill yarating:
# .claude/skills/write-tests/SKILL.md
---
name: write-tests
description: Writes tests for a module following project Vitest
conventions. Use when asked to write unit tests.
---
When asked to write tests for a module:
1. Read the module and identify all exported functions
2. For each function, write tests that cover:
- Happy path with valid input
- Edge cases (empty input, null values, boundaries)
- Error cases (invalid input, missing dependencies)
3. Use Vitest. Follow the pattern in tests/example.test.ts
4. Run pnpm test when done and report results
5. Do not modify the module under test
Skill'lar GitHub issue'ni tuzatish yoki kodni review qilish kabi takrorlanadigan workflow'ni ham belgilashi mumkin:
# .claude/skills/review-code/SKILL.md
---
name: review-code
description: Review code for quality and issues
disable-model-invocation: true
---
When asked to review code:
1. Read and understand the code
2. Check for bugs or logical errors
3. Identify performance issues
4. Suggest improvements for readability
5. Check for security concerns
6. Ensure coding standards are followed
7. Summarize findings clearly
Skill'laringizni bevosita Claude Code'da /skill-name orqali, masalan, /write-tests, /review-code kabi ishga tushirishingiz mumkin. Context buni o'rinli qilganda u skill'ni avtomatik ravishda ham yuklashi mumkin.
Loyihalaringizda yaratishingiz kerak bo'lgan to'rtta muhim skill bor:
-
Unit test'lar yaratish: Loyihangiz freymvorki va convention'lariga mos keladigan test kodini yaratadi. Shuningdek, edge case'lar va xato holatlarini ham qamrab oladi. Undan har bir pull request'dan oldin foydalaning.
-
Security review bosqichi: Ochiq qolgan sensitive ma'lumotlar, validate qilinmagan foydalanuvchi input'i, yetishmayotgan access control tekshiruvlari, injection attack'lar hamda API key'lar va environment variable'lar atrofidagi xavfli kod pattern'larini tekshiradi. Undan API'lar, authentication yoki foydalanuvchi input'iga oid kodni merge qilishdan oldin foydalaning.
-
Xavfsiz refactor: Public API'ni saqlab qoladi, butun codebase bo'ylab uni chaqiradigan joylarni yangilaydi, changelog'ga yozuv qo'shadi va testlarni ishga tushiradi. Undan mavjud kodni qayta tuzayotganda foydalaning.
-
Xavfsiz migration yaratish: Kod yaratishdan oldin up SQL, down SQL, schema o'zgarishlari, ilova kodi yangilanishlari va rollback rejasini talab qiladi. Undan har bir schema o'zgarishidan oldin foydalaning.
Skill'lar bo'yicha muhim eslatmalar
Skill'lar bilan ishlaganda quyidagi maslahatlarni yodda tuting:
-
Skill'larni bir xil prompt pattern'ini uch-to'rt marta ishga tushirib, eng yaxshi natija aslida qanday ko'rinishini bilib olganingizdan keyin yarating.
-
Eng yaxshi prompt pattern'laringiz jamoa a'zolaringiz va murakkabroq workflow'lardagi sub-agent'lar uchun hamda oldingi ish ustiga quriladigan follow-up prompt'lar uchun mavjud bo'lishi uchun skills papkangizni GitHub kabi version control'ga commit qiling.

Xulosa
AI coding vositangiz — software development workflow'ingizning bir qismi, sizning mulohazangiz va tajribangizning o'rnini bosuvchi narsa emas. Bu vositalarning qaysi biri bilan ishlamang, arxitektor ham, reviewer ham, qaror qabul qiluvchi ham sizsiz. AI ishingizni kuchaytiradigan tezkor va qobiliyatli hamkor vazifasini bajaradi. Undan eng yaxshi natijani olish uchun aniq topshiriqlar, tor ko'lam va halol fikr-mulohaza kerak.
Ushbu vibe coding best practice'larini izchil qo'llang va siz qisqaroq session'lar, kichikroq diff'lar, tezroq debugging va yanada izchil natijalarni ko'rasiz. Agar mustahkam poydevor qurmoqchi bo'lsangiz, vibe coding va Claude Code bo'yicha roadmap'larimizga amal qiling va aqlliroq vibe coding tajribasini qurishni boshlang.