Blog

Claude Code’ni tiklash: xavfsiz rejim, /cd va zaxira modeli

Markdown

Claude Code’ni xavfsiz rejim, /cd buyrug‘i, zaxira modellar va sozlamalarni tiklash yordamida tashxislash. Tekshiruvlar tartibi va dastlabki cheklovlar.

Maqolani to‘liq o‘qish

Agentlar bilan ishlash bo‘yicha amaliy materiallar: Ailoot hujjatlari.

2026-yil iyunida Claude Code’da nimalar o‘zgardi?

Asosiy xulosa

2026-yil 8-iyunda Claude Code v2.1.169’da Anthropic --safe-mode bayrog‘i va /cd buyrug‘ini qo‘shdi. Ikki kun oldin v2.1.166’da zanjirda ko‘pi bilan 3 ta modeldan foydalanish imkonini beruvchi zaxira modellar joriy etilgan edi. Bu uchta funksiya vibe coderlar uchun eng ko‘p uchraydigan muammoni hal qiladi: “hammasi ishdan chiqdi, kim aybdorligini bilmayman va qayta o‘rnatishga bir soat sarflashni xohlamayman”.

Avvallari Claude Code g‘alati ishlay boshlasa — yuklanish belgisi cheksiz aylanib qolsa, ishga tushishda ishdan chiqsa, agent CLAUDE.md dagi qoidalarni e’tiborsiz qoldirsa yoki hook indamay ishlamay qolsa — bundan chiqishning faqat bitta yo‘li bor edi: .claude/settings.json bo‘limlariga qo‘lda izoh qo‘shish, MCP serverlarini birma-bir o‘chirish yoki eng yomon holatda ~/.claude ni o‘chirib, qayta o‘rnatish. Tasvirlangan bir holatda ~/.claude o‘chirildi va bir yarim soat yig‘ilgan MCP serverlari sozlamalari yo‘qoldi. Keyin aybdor CLAUDE.md dagi bitta satr ekani va uni 10 soniyada topish mumkinligi ma’lum bo‘ldi — ammo bu faqat hammasi to‘liq tiklangandan keyin ayon bo‘ldi.

2026-yil iyunida Anthropic bu holatni o‘zgartiradigan uchta mexanizmni joriy qildi. Qisqacha, nimalar va qachon paydo bo‘ldi:

VersiyaSanaNima qo‘shildi
2.1.1662026-yil 6-iyunfallbackModel sozlamasi + interaktiv seanslar uchun --fallback-model bayrog‘i
2.1.1692026-yil 8-iyun--safe-mode bayrog‘i va CLAUDE_CODE_SAFE_MODE muhit o‘zgaruvchisi, /cd buyrug‘i
2.1.1762026-yil 12-iyunTuzatish: /cd va worktree almashtirishda eski git tarmog‘i ko‘rinishi to‘xtadi

Quyida har bir mexanizm bosqichma-bosqich tushuntiriladi, shuningdek Claude Code seansi izdan chiqqanda ularni qaysi tartibda qo‘llash ko‘rsatiladi.

Claude Code’da ko‘pincha nimalar ishdan chiqadi?

Asosiy xulosa

Tasvirlangan tajribaga ko‘ra, Claude Code vibe coderlar uchun odatda to‘rtta sababga ko‘ra buziladi: qarama-qarshi qoidalarga ega, haddan tashqari kattalashgan CLAUDE.md, noto‘g‘ri chiqish kodiga ega hook, indamay ishlamay qoladigan MCP serveri va settings.json ning uchta darajasidagi ustma-ust sozlamalar. Bitta aybdor bo‘ladi, tashxisga bir necha daqiqa ketadi, vahima esa odamlarni darhol rm -rf ishlatishga undaydi.

Tasvirlangan misolda CLAUDE.md dastlab 80 qatordan iborat qilib tuzilgan va bir oy ishlagan. Ikkinchi oyda Claude haftasiga bir marta o‘rnatilgan barcha qoidalarni buzishi sezila boshladi: .env ga tegish, git push --force ni ishga tushirish, node_modules ni titkilash. Ataylab emas — shunchaki unutib qo‘yardi. Bir safar .gitignore o‘chirildi va buning sababi darhol tushunarsiz bo‘ldi. Bu holat CLAUDE.md bo‘yicha qo‘llanmada batafsilroq yoritilgan.

CLAUDE.md 400+ qatorga yetganda, u indamay muammo tug‘dira boshlaydi: seans ishga tushganda kontekst oynasining sezilarli qismini egallaydi va muhim ko‘rsatmalarni ikkinchi darajali ko‘rsatmalar orasida suyultirib yuboradi. Claude faylni baribir rasman o‘qiydi, shuning uchun tashqaridan “qoidalar bor, ammo ishlamayapti” degandek ko‘rinadi — bu haddan tashqari kattalashgan kelishuvning odatiy belgisidir.

Hooklar muammolarning ikkinchi keng tarqalgan manbaidir. Claude Code hooks ning Anthropic alohida ta’kidlamaydigan bir nozik jihati bor.

Ya’ni Python hookidagi sys.exit(1) (yoki Unix’dagi odatiy “xato bilan yakunlandi” kodi) Claude’ni to‘xtatmaydi. Faqat 2 kodi bloklaydi. Tasvirlangan holatda hook “qat’iy taqiq” deb hisoblangan, ammo amalda shikoyatni qayd etib, amalni bajarishga ruxsat bergan.

MCP serverlari uchinchi qatlam bo‘lib, ular ham o‘ziga xos tarzda ishdan chiqadi.

Alomat ko‘pincha bir xil bo‘ladi: MCP buyruqlari mavjud, ammo traceback’siz failed natijasini qaytaradi. MCP’ni sozlash va claude mcp add yordamida server qo‘shish haqida batafsil ma’lumot uchun alohida qo‘llanmaga qarang.

To‘rtinchi manba — settings.json ning uch darajali iyerarxiyasi. Sizda ~/.claude/settings.json (foydalanuvchi darajasi), loyiha ildizidagi .claude/settings.json (loyiha), .claude/settings.local.json (mahalliy) va ixtiyoriy ravishda korporativ administrator boshqaradigan sozlamalar bo‘lishi mumkin. Ular ustuvorlik qoidalariga muvofiq birlashtiriladi. Kimdir loyiha darajasida MCP serverini qo‘shsa-yu, foydalanuvchi darajasida ishga tushirish sozlamasi boshqacha bo‘lgan o‘xshash yozuv mavjud bo‘lsa, indamasdan ziddiyat yuzaga keladi va bu “Claude Code buzilgan” degandek ko‘rinadi.

--safe-mode qanday ishlaydi va u nimalarni o‘chiradi?

Asosiy xulosa

claude --safe-mode Claude Code’ni barcha maxsus sozlashlar o‘chirilgan holda ishga tushiradi: CLAUDE.md, plaginlar, ko‘nikmalar, hooklar, MCP serverlari, foydalanuvchi buyruqlari, agentlar, chiqish uslublari, ish jarayonlari va tugmalar birikmalari. Avtorizatsiya, model tanlovi, ichki vositalar va ruxsatlar saqlanib qoladi. Bu tashxis vositasi: xavfsiz rejimda muammo yo‘qolsa, sabab siz qo‘shgan qatlamlardan birida.

Anthropic’ning v2.1.169 o‘zgarishlar jurnalidagi asl ifodasi:

Diagnostika uchun Claude Code’ni maxsus sozlashlarsiz (CLAUDE.md, plaginlar, ko‘nikmalar, hooklar, MCP serverlari) ishga tushiradigan --safe-mode bayrog‘i (va CLAUDE_CODE_SAFE_MODE) qo‘shildi.

— Anthropic Claude Code Changelog, https://code.claude.com/docs/en/changelog

Anthropic model konfiguratsiyasi haqidagi hujjatlarda aniqlik kiritadi:

Muammoga maxsus sozlashlar sabab bo‘layotganini tekshirish uchun claude --safe-mode bilan seansni boshlang; bunda CLAUDE.md, ko‘nikmalar, MCP serverlari va hooklar o‘chiriladi. Git holati va katalog nomlari maxsus sozlash hisoblanmaydi va mavjud bo‘lib qoladi.

— Anthropic Docs - Model configuration, https://code.claude.com/docs/en/model-config

Bu tashxis vositasi, “toza muhit” emas. Xavfsiz rejim bitta savolga javob berishga yordam beradi: muammo Claude Code’ning standart xatti-harakatidami yoki qo‘shilgan maxsus sozlashlardami? Bu kontekst muhandisligining bir qismi — Claude muayyan paytda nimani ko‘rishi va nimani ko‘rmasligini boshqarish. Xavfsiz rejimda hammasi ishlasa, qatlamlarni ikkiga bo‘lib tekshirish kerakligi ayon bo‘ladi. Ishlamasa, muammo o‘rnatish, avtorizatsiya, tarmoq yoki infratuzilmada bo‘ladi; bunday holda claude doctor va jurnallarni tekshirish ma’qul.

Xavfsiz rejim nimalarni o‘chiradi (Anthropic’ning rasmiy ro‘yxatidagi 5 asosiy qatlam):

  • Barcha darajadagi CLAUDE.md (foydalanuvchi / loyiha)
  • Plaginlar
  • Ko‘nikmalar
  • Hooklar
  • MCP serverlari

Ishlashda davom etadigan narsalar:

  • Avtorizatsiya (OAuth seansingiz yoki API kalitingiz)
  • Model tanlovi (--model sonnet, --model opus)
  • Ichki vositalar (Read, Write, Bash, Grep va boshqalar)
  • Ruxsatlar
  • Git holati
  • Katalog nomlari

Muhim jihat: xavfsiz rejim korporativ administratorning boshqariladigan/siyosat sozlamalarini o‘chirmaydi. Bedrock GovCloud yoki MDM konfiguratsiyasi jamoangiz uchun availableModels ni belgilasa, bu cheklovlar saqlanadi — xavfsiz rejim faqat sizning maxsus sozlashlaringizni o‘chiradi, korporativ siyosatlarni emas.

Qatlamni ajratib, aybdorni 60 soniyada qanday topish mumkin?

Asosiy xulosa

1-qadam: muammo yuz bergan papkaning o‘zida claude --safe-mode ni ishga tushiring. Ishlasa, muammo maxsus sozlashlaringizda; ularni birma-bir yoqing: CLAUDE.md -> hooklar -> MCP -> ko‘nikmalar. Xavfsiz rejimda ham ishlamasa, muammo avtorizatsiya, versiya, tarmoq yoki operatsion tizimda. Bunday holda, rm -rf ga tegmasdan avtomatik tashxis uchun claude doctor ni ishga tushiring.

Claude Code “quloq solmay qo‘ygan” holat uchun tashxis ssenariysi. Quyidagi buyruqlarning barchasi uchun eng kam versiya — Claude Code v2.1.169. Sizdagi versiya eskiroq bo‘lsa, avval yangilang (npm update -g @anthropic-ai/claude-code yoki Anthropic’ning mahalliy o‘rnatuvchisi orqali).

  1. Muammo yuz bergan papkani oching.
  2. claude --safe-mode ni ishga tushiring.
  3. Toza ishga tushsa, dastlabki so‘rovingizni tekshiring. Ishladimi? Demak, qatlamlardan biri aybdor. 4-qadamga o‘ting.
  4. Xavfsiz rejimda ham ishlamasa, konfiguratsiyalarga tegmang. Avval claude doctor ni ishga tushiring; avtorizatsiya, versiya va o‘zaro zid o‘rnatishlarni tekshiring.

Xavfsiz rejim toza ishga tushgach, eng ehtimoliy aybdordan boshlab qatlamlarni bittadan yoqing. Tasvirlangan tajribaga asoslangan tartib:

  1. CLAUDE.md. Xavfsiz rejimsiz claude ni ishga tushiring, ammo fayl nomini vaqtincha o‘zgartiring: mv CLAUDE.md CLAUDE.md.bak. Ishlasa, sabab shu faylda. Keyin ikkiga bo‘lib qidirishingiz mumkin: qatorlarning yarmini qoldirib, tekshiring.
  2. Hooklar. .claude/settings.json ni oching va hooks bo‘limiga vaqtincha [] qo‘ying. claude ni qayta ishga tushiring. Ishlayaptimi? Demak, hooklardan biri aybdor. Ularni bittadan yoqing.
  3. MCP serverlari. Xuddi shunday, ~/.claude.json yoki .claude/settings.json da mcpServers bo‘limini vaqtincha bo‘sh obyekt qilib qo‘ying, qayta ishga tushiring va tekshiring.
  4. Ko‘nikmalar. .claude/skills/ ni vaqtinchalik papkaga ko‘chiring. Ishga tushiring va tekshiring.

“Vaqtincha nomini o‘zgartirish” degani tashxis paytida fayllar o‘chirilmaydi. mv yoki git stash sabab shu qatlamda bo‘lmasa, hammasini bitta buyruq bilan tiklash imkonini beradi.

Kontekstni yo‘qotmasdan /cd orqali ishchi papkani qanday almashtirish mumkin?

Asosiy xulosa

Claude Code 2.1.169+ dagi /cd <path> buyrug‘i prompt keshini yo‘qotmasdan faol seansdagi ishchi papkani almashtiradi. Joriy loyiha konfiguratsiyasi buzilganda foydali: toza papkaga o‘tib, Claude ishlashini tekshirishingiz, so‘ng qaytishingiz mumkin. Avval buning uchun seansni yopib, qaytadan boshlash kerak edi.

8-iyundagi v2.1.169 o‘zgarishlar jurnalidan:

Seans o‘rtasida prompt keshini tiklamasdan, uni yangi ishchi papkaga o‘tkazuvchi /cd buyrug‘i qo‘shildi.

— Anthropic Claude Code Changelog, https://code.claude.com/docs/en/changelog

Muammolarni tuzatishda bu nima uchun foydali? Aytaylik, ~/work/myapp loyiha papkasidasiz va Claude Code g‘alati ishlayapti. Avval “umuman ishlayaptimi?” deb tekshirishning yagona yo‘li seansni yopish, boshqa papkaga o‘tish va qaytadan boshlash edi. Kontekst, tarix va qizdirilgan prompt keshi yo‘qolardi. Endi esa:

# In the same session:
/cd ~/sandbox/test

Claude yangi papkaga o‘tadi va uning CLAUDE.md fayli bo‘lsa, uni tizim prompti o‘rniga xabar sifatida o‘qiydi — ya’ni kesh saqlanadi. ~/sandbox/test da hammasi ishlasa, muammo ~/work/myapp konfiguratsiyasida bo‘lganligi ayon bo‘ladi.

12-iyunda v2.1.176 yoqimsiz regressiyani tuzatdi — /cd to‘liq qayta ishga tushirilguncha eski git tarmog‘ini ko‘rsatib turardi. Versiyangiz eskiroq bo‘lsa, yangilang yoki almashtirgandan keyingi dastlabki bir necha xabarda git status ni e’tiborsiz qoldiring — u keyin yangilanadi.

529 xatosi uchun zaxira modellarni qanday sozlash mumkin?

Asosiy xulosa

v2.1.166’da Anthropic fallbackModel ni qo‘shdi — asosiy model haddan tashqari yuklangan yoki mavjud bo‘lmaganda ketma-ket sinab ko‘riladigan ko‘pi bilan 3 ta model zanjiri. Zanjir faqat haddan tashqari yuklanish va qayta urinib bo‘lmaydigan server xatolarida ishga tushadi. Avtorizatsiya, hisob-kitob, so‘rovlar chegarasi va transport xatolari zaxira zanjirini ishga tushirmaydi — ular odatiy qayta urinish mantig‘i bo‘yicha boshqariladi.

Tasvirlangan ssenariyda uzoq vazifa loyihada haftasiga bir marta Opus’da ishlaydi; 10 daqiqadan so‘ng API 529 Overloaded qaytarib, seans ishdan chiqadi. Avval kutish yoki --model sonnet bilan Sonnet’ga qo‘lda o‘tib, qizdirilgan kontekstni yo‘qotish kerak edi. Ikkinchi miya sozlamali katta business/ papkasida bu taxminan yigirma daqiqa ishni oladi. Endi buning uchun alohida mexanizm bor.

Rasmiy hujjatlardan aniq iqtibos:

Asosiy model haddan tashqari yuklangan, mavjud bo‘lmagan yoki qayta urinib bo‘lmaydigan boshqa server xatosini qaytarganida, Claude Code so‘rovni muvaffaqiyatsiz deb hisoblash o‘rniga zaxira modelga o‘tishi mumkin. Avtorizatsiya, hisob-kitob, so‘rovlar chegarasi, so‘rov hajmi va transport xatolari hech qachon almashtirishni ishga tushirmaydi — ular odatiy qayta urinish va xatolarni boshqarish tartibi bo‘yicha davom etadi.

— Anthropic Docs - Model configuration, https://code.claude.com/docs/en/model-config

Zanjir qanday ishlashi haqida alohida izoh:

Bir yoki bir nechta zaxira modelni sozlang; Claude Code ularni navbat bilan sinab ko‘radi va almashtirish paytida bildirishnoma ko‘rsatadi. Almashtirish faqat joriy navbatga tegishli — keyingi xabar asosiy modelni qayta sinaydi. Dublikatlar olib tashlangach, zanjirda ko‘pi bilan uchta model qoladi; ortiqcha yozuvlar e’tiborga olinmaydi.

— Anthropic Docs - Model configuration, https://code.claude.com/docs/en/model-config

Sozlashning ikki usuli bor. CLI orqali:

claude --fallback-model sonnet,haiku

~/.claude/settings.json orqali:

{
  "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]
}

So‘rovlar chegarasi haqida alohida jihat bor. Anthropic 429 xatosini zanjir orqali yubormaydi, shuning uchun keyingi modelga o‘tib so‘rovlar chegarasini chetlab o‘tish mumkin emas. Zaxira model faqat asosiy model haddan tashqari yuklangan, mavjud bo‘lmagan yoki qayta urinib bo‘lmaydigan server xatosini qaytarganda ishlaydi (masalan, 529 Overloaded). So‘rovlar chegarasi uchun odatiy qayta urinish mantig‘i va kutish oralig‘ini oshirish qo‘llanadi.

Yana bir jihat: 12-iyunda v2.1.174 regressiyani tuzatdi — ixchamlashtirish --fallback-model ni hisobga olmas edi. Uzoq seans davomida tizim ixchamlashayotganda ortiqcha yuk yuz bersa, bu tuzatishdan oldin zaxira model chaqirilmasdi. Uzoq seanslar (/compact, tunda /loop) bilan ishlasangiz, kamida v2.1.174 ga yangilang.

Aybdor CLAUDE.md, hook, MCP yoki ko‘nikma bo‘lsa, nimani tuzatish kerak?

Asosiy xulosa

Xavfsiz rejim aybdor qatlamni aniqlagach, yechim qatlamga qarab farq qiladi. CLAUDE.md uchun ikkiga bo‘lib qidiring yoki 200 qatordan kam tayyor shablonga qayting. Hook uchun chiqish kodi (2 bloklaydi, 1 bloklamaydi) va mantiqni tekshiring. MCP uchun bittadan serverni olib tashlab, tekshiring. Ko‘nikma uchun SKILL.md da CLAUDE.md ga zid ko‘rsatmalar yo‘qligini tekshiring.

Har bir qatlam uchun aniq strategiyalar.

Aybdor CLAUDE.md bo‘lsa

Faylni ochib, hajmini tekshiring. Tasvirlangan tajribaga ko‘ra, faol CLAUDE.md ni 200 qatordan oshirmang; qolgan qismini loyiha yonidagi yo‘naltiruvchi va yordamchi hujjatlarga ko‘chiring (ikkinchi miyaning to‘liq tuzilmasi ikkinchi miya bo‘yicha qo‘llanmada). 400+ qator bo‘lsa, deyarli aniq sabab shu. Qadamlar:

  1. Zaxira nusxa yarating: cp CLAUDE.md CLAUDE.md.full.
  2. Ishlaydigan qisqa shablonga qayting. Tayyor shablon “CLAUDE.md’ni qanday sozlash mumkin” qo‘llanmasida bor.
  3. Claude Code’ni qayta ishga tushiring. Tekshiring.
  4. Ishlasa, qoidalarni 10–20 qatordan iborat kichik bo‘laklarda tiklang va har bir bo‘lakdan so‘ng tekshiring.
  5. Xatti-harakatni buzayotgan bo‘lakni toping. Uni to‘g‘ri chiqish kodiga ega hook sifatida qayta yozing (hooklar uchun chiqish kodlari ushbu H2 ning keyingi kichik bo‘limida yoritilgan).

Aybdor hook bo‘lsa

Asosiy savol — chiqish kodi to‘g‘rimi? Claude Code hooklari quyidagicha ishlaydi:

  • Chiqish 0 — hammasi joyida; amal davom etadi.
  • Chiqish 1 — xato, ammo bloklamaydi. Claude hech narsa bo‘lmagandek davom etadi.
  • Chiqish 2 — bloklovchi xato. Amalni amalda faqat shu to‘xtatadi.

Shell hookida to‘sib qo‘yyapman deb sys.exit(1) yoki exit 1 yozgan bo‘lsangiz, bu kod Claude Code’da ogohlantirish qaydi sifatida ishlaydi va amalni to‘xtatmaydi. Uni 2 ga o‘zgartiring. Hooklar va shu xatodan qochib ularni sozlash haqida batafsil ma’lumot uchun alohida qo‘llanmaga qarang.

Ikkinchi keng tarqalgan holat — hook stdout’da noto‘g‘ri JSON qaytaradi. Claude Code hook javobini JSON sifatida tahlil qiladi; agar unda keraksiz matn (qayd, jarayon belgisi, emoji) bo‘lsa, hook muvaffaqiyatsiz deb hisoblanadi va amal davom etadi. Qoida: stdout’da faqat JSON bo‘lsin; qolgan hamma narsa stderr’ga yozilsin.

Uchinchi holat — hook xavfsiz rejim yashirgan ~/.claude/ ichidagi narsani o‘qiydi. Bu odatiy holat; hookni o‘zgartirish o‘rniga, boshida os.environ.get('CLAUDE_CODE_SAFE_MODE') ni tekshirib, 0 kodi bilan yakunlanadigan qiling.

Aybdor MCP serveri bo‘lsa

Alomatlar: MCP buyruqlari mavjud, ammo aniq traceback’siz failed natijasini qaytaradi. Qadamlar:

  1. claude mcp list ni ishga tushiring — qaysi serverlar belgilangan?
  2. ~/.claude.json da serverlarni bittadan o‘chiring: claude-server-A kalitini _claude-server-A deb o‘zgartiring (bu serverni o‘chirmasdan faolsizlantiradi).
  3. claude ni qayta ishga tushiring. Qaysi chaqiriqlar ishlashini tekshiring.
  4. Aybdor serverni topganingizdan so‘ng, uning jurnalini tekshiring: claude mcp logs <name>.
  5. Bu uchinchi tomon serveri bo‘lsa (@modelcontextprotocol/server-postgres va shunga o‘xshashlar), yaqinda yangi versiyasi chiqqanini tekshiring. MCP ekotizimi hali ham beqaror; Claude Code yangilanishlaridan keyin serverlar muntazam ishdan chiqadi.

“Faqat ikkita MCP bilan ishga tushishda ishdan chiqadi” holatiga duch kelsangiz, MCP’siz xavfsiz rejimdagi xatti-harakatni solishtiring.

Aybdor ko‘nikma bo‘lsa

Ko‘nikma — .claude/skills/<name>/ ichidagi SKILL.md va koddan iborat. Alomatlar: Claude ko‘nikmani e’tiborsiz qoldiradi, noto‘g‘ri paytda qo‘llaydi yoki qo‘llasa ham sifatsiz natija beradi. Qadamlar:

  1. SKILL.md ni oching. Tavsifni tekshiring — u 1–2 gapdan iborat bo‘lib, qachon ishlatilishini aniq ifodalashi kerak. “Hamma narsa uchun universal yordamchi” desa, Claude uni qachon chaqirishni tushunmaydi.
  2. CLAUDE.md bilan ziddiyat bor-yo‘qligini tekshiring. CLAUDE.md “har doim test yozing” desa, ko‘nikma tavsifi “tez prototiplash uchun, testsiz foydalaning” desa, ziddiyat mavjud.
  3. Ko‘nikma tashqi buyruqlardan (npm, python, git) foydalansa, ular tizim bo‘ylab PATH’da mavjudligini tekshiring. Ko‘nikmaning o‘z minimal muhiti bor.

Xavfsiz rejim yordam bermasa: tuzatishdan oldin tashxis va holatni saqlash

Asosiy xulosa

Xavfsiz rejim ham ishlamasa, o‘rnatish, avtorizatsiya, tarmoq yoki infratuzilma ehtimoli qoladi. claude doctor ni bajarib dalilini ko‘ring. Noaniq hisobot sozlama va seansni o‘chirishga asos emas: avval butun holatni saqlab tekshiring, keyin faqat tashxislangan o‘rnatishni tuzating.

Foydalanuvchi holatini olib tashlash diagnostika qisqa yo‘li emas. Quyidagi tekshiruvda sababni toping; noaniq qolsa, dalilni saqlab tekshirishni davom eting. Tuzatish tekshirilgan zaxiradan boshlanib, mavjud hisob va credential identity’sini saqlaydi. Tartib:

  1. claude doctor — avtomatik tashxis. Anthropic hujjatlarida shunday yozadi:

claude --version ishlasa-yu, boshqa narsa noto‘g‘ri ishlayotgan bo‘lsa, avtomatik tashxis hisobotini yaratish uchun claude doctor ni ishga tushiring.

— Anthropic Docs - Troubleshoot installation, https://code.claude.com/docs/en/troubleshoot-install
  1. O‘zaro zid o‘rnatishlar borligini tekshiring. Ko‘pchilikda bir vaqtning o‘zida npm’ning global versiyasi va mahalliy o‘rnatuvchi orqali o‘rnatilgan nusxa bo‘ladi:

Claude Code’ning bir nechta o‘rnatmasi versiyalar mos kelmasligi yoki kutilmagan xatti-harakatga olib kelishi mumkin.

— Anthropic Docs - Troubleshoot installation, https://code.claude.com/docs/en/troubleshoot-install
  1. ANTHROPIC_API_KEY OAuth seansingizga xalaqit berayotganini tekshiring. Bu “hech narsa ishlamayapti, kalit muddati tugadi” holatining keng tarqalgan sababidir:

`ANTHROPIC_API_KEY` o‘rnatilgan va tasdiqlangan bo‘lsa, Claude Code obunangizning OAuth hisob ma’lumotlari o‘rniga shu kalitdan foydalanadi.

— Anthropic Docs - Troubleshoot installation, https://code.claude.com/docs/en/troubleshoot-install

Yechim: joriy shell seansida unset ANTHROPIC_API_KEY ni ishga tushiring yoki uni ~/.zshrc / ~/.bashrc dan olib tashlang.

  1. Faqat diagnostika aniqlagan o‘rnatishni tuzating; avval barcha foydalanuvchi holatini saqlang. Xavfsiz rejim xatosi yoki noaniq doctor hisoboti ma’lumotni o‘chirish kerakligini isbotlamaydi. Izchil zaxiradan oldin barcha Claude seanslari va yozuvchilarni to‘xtating. O‘sha Unix hisobi, HOME, OS credential ombori va Anthropic hisobini saqlang; kalit almashtirmang, yangi identity yaratmang.

Quyidagi misol GNU tar bilan Linux uchun. macOS yoki Windows’da ACL, extended attribute, havola va metama’lumotni saqlaydigan vosita ishlating, davom etishdan oldin tiklashni tekshiring. GNU bayroqlari u yerda ishlaydi deb olmang. Arxiv credential va seanslarni tutadi: xususiy, repodan tashqarida saqlang.

# Run as the same user who owns the Claude state, after stopping writers.
set -eu
umask 077
backup_dir=$(mktemp -d "$HOME/.claude-recovery-XXXXXXXX")
set --
if [ -e "$HOME/.claude" ] || [ -L "$HOME/.claude" ]; then
  set -- "$@" .claude
fi
if [ -e "$HOME/.claude.json" ] || [ -L "$HOME/.claude.json" ]; then
  set -- "$@" .claude.json
fi
[ "$#" -gt 0 ] || exit 1
tar --acls --xattrs --numeric-owner -cpf "$backup_dir/claude-state.tar" -C "$HOME" "$@"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$HOME"
sha256sum "$backup_dir/claude-state.tar" > "$backup_dir/claude-state.sha256"
(cd "$backup_dir" && sha256sum -c claude-state.sha256)
mkdir "$backup_dir/restore-check"
tar --acls --xattrs -xpf "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
tar --acls --xattrs --compare -f "$backup_dir/claude-state.tar" -C "$backup_dir/restore-check"
printf 'Verified recovery directory: %s\n' "$backup_dir"

Barcha buyruqlar muvaffaqiyatli tugasin. Arxiv faqat Git sozlamalarini emas, butun mavjud .claude daraxti, ignored/untracked seans va plugin holati hamda .claude.json ni qamraydi. Yo‘l symlink bo‘lsa yoki ma’lumot alohida sozlangan joyda bo‘lsa, to‘xtab, resolved target’ni ham shu tekshirilgan zaxiraga kiriting. Faqat havolani arxivlash target’ni saqlamaydi. Arxiv macOS Keychain yoki tashqi credential omborini qamramaydi; ularning identity’sini joyida saqlang.

Diagnostika aynan eski local o‘rnatish to‘qnashganini ko‘rsatsa, konfiguratsiya va seanslarni o‘chirmay, faqat shu nusxani xususiy recovery papkasiga ko‘chiring:

# Use the verified backup_dir from the previous block.
if [ -d "$HOME/.claude/local" ]; then
  mv "$HOME/.claude/local" "$backup_dir/legacy-local"
fi

npm nusxasini faqat diagnostika uni to‘qnashgan o‘rnatish deb aniqlasa va native’ni qoldirmoqchi bo‘lsangiz olib tashlang. .claude yoki .claude.json ni o‘chirmay rasmiy native o‘rnatuvchidan foydalaning:

curl -fsSL https://claude.ai/install.sh | bash
claude --version
claude doctor

Windows uchun native buyruq:

irm https://claude.ai/install.ps1 | iex

Tiklash alohida. Yozuvchilarni yana to‘xtating. Checksum’ni tekshirib, yuqoridagidek bo‘sh recovery papkasiga oching va fayllardan oldin muvaffaqiyatli solishtiring. Eski o‘rnatishni qaytarsangiz, avval $HOME/.claude/local yo‘qligini tekshirib, $backup_dir/legacy-local ni aynan shu joyga qaytaring. Tashxislangan sozlamani tekshirilgan nusxadan tiklashdan oldin joriy o‘rinbosarini saqlang; butun daraxt ustiga ko‘r-ko‘rona yozmang. Seanslar, MCP sozlamalari va asl identity saqlanadi. Git snapshot ignored/untracked transcript, credential yoki fayl metama’lumotini to‘liq qamramaydi.

Claude Code buzilganda NIMALARNI QILMASLIK KERAK?

Asosiy xulosa

Tasvirlangan yordam holatlarida oltita zararli odat uchraydi: tashxisdan oldin kalitlarni almashtirish, birinchi qadamdayoq to‘liq tiklash, hookdagi interfeys xatosidan vahimaga tushish, mantiqni tuzatishdan oldin hook chiqish kodini oshirish, xavfsiz rejim bilan himoyalamasdan CLAUDE.md ni tahrirlash va “Claude o‘z MCP’sini o‘zi tuzatadi” deb ishonish. Har biri soatlar oladi, ammo hech biri zarur emas.

Tashxisdan oldin kalitlarni almashtirmang

“Avtorizatsiya ishlamayapti” degan holatlarning 90% ida sabab obunaga xalaqit berayotgan ANTHROPIC_API_KEY, hook interfeysidagi xato yoki ishdan chiqqan MCP bo‘ladi. Kalitlarni almashtirish bularning hech birini tuzatmaydi, lekin yana bir soatlik uzilishga sabab bo‘ladi: eski kalitni bekor qilish, yangisini chiqarish, CI’ni yangisi bilan qayta imzolash va ishlab chiqarish muhitidagi o‘zgaruvchilarni yangilash kerak. Avval claude --safe-mode ni ishga tushiring. Ishlayaptimi? Demak, muammo maxsus sozlashlarda; kalitlarga tegish shart emas.

Xavfsiz rejimni sinamasdan to‘liq tiklashni boshlamang

Xavfsiz rejim 1 soniyada ajratilgan muhitni beradi. .claude ni o‘chirish seans, MCP konfiguratsiyasi va boshqa untracked holatni yo‘q qilishi mumkin. Avval tashxis va xususiy zaxirani tekshiring. Faqat aybi aniqlangan o‘rnatish yoki konfiguratsiya qatlamini qaytariladigan ko‘chirish bilan ajrating.

Hookdagi interfeys xatosidan vahimaga tushmang

Biror narsani tuzatishdan oldin, vizual belgiga tayanmay, hook haqiqatan ishga tushganini (stderr jurnalidan yoki aniq chiqarilgan xabardan) tekshiring.

Mantiqni tuzatishdan oldin hookning chiqish kodini oshirmang

Bloklovchi hookingiz bloklamasa, exit 2 qo‘yib, ish bitdi deyish vasvasasi bor. Bu ishlaydigan tuzatish, ammo boshqa muammoni yashiradi: agar blok bir oy ishlamagan bo‘lsa, hook taqiqlashi kerak bo‘lgan barcha amallar bajarilgan bo‘ladi. Avval git jurnalini ko‘rib, aynan nima o‘tib ketganini aniqlang. Shundan keyin blokni qo‘shing. Aks holda, keyin qo‘shilgan blok avval sodir bo‘lgan narsani ortga qaytara olmaydi.

Xavfsiz rejimda himoya vositasi yo‘q paytda ishlab turgan CLAUDE.md faylini tahrirlamang

Tasvirlangan holatda: CLAUDE.md ni tahrirlaysiz, Claude g‘alati ishlay boshlaydi, git diff ni ko‘rsangiz, kimdir o‘sha kuni kechqurun repoga MCP serveri va hook ham qo‘shgan bo‘ladi. Tahriringizni ayblab, ortga qaytarasiz — ammo Claude hamon g‘alati ishlaydi. Qoida: git revert dan oldin claude --safe-mode ni ishga tushiring. Xavfsiz rejimda ham muammo davom etsa, tahriringizning bunga aloqasi yo‘q; uni ortga qaytarish shart emas.

“Claude o‘z MCP’sini o‘zi tuzatadi” degan gapga ishonmang

Odatiy holat: siz Claude’dan “MCP serveriga muayyan vositani qo‘shish”ni so‘raysiz, Claude ishlayotgan konfiguratsiyani qayta yozadi, hammasi buziladi, so‘ng yetkazgan zararini tuzatish uchun bir necha navbat sarflaydi — shu jarayonda esa seans kvotasi tugaydi. MCP buzilganda, konfiguratsiyani qo‘lda oling; agentga topshirmang. Uning vositalar majmuasining bir qismi ham MCP’da ishlaydi va MCP buzilsa, tashxis qo‘yuvchi vosita ham buziladi.

Tuzatgandan keyin qayerga o‘tish kerak?

Asosiy xulosa

Claude Code’ni tiklaganingizdan so‘ng, yana buzilmasligi uchun oldini olish choralarini qo‘shing. Hech bo‘lmaganda, foydalanuvchi sozlamalarida disableBypassPermissionsMode: "disable", .env va git push --force ni to‘sadigan hooklar, uzoq avtonom ishga tushirishlar uchun sandbox kerak. Bunga hamroh qo‘llanma profilaktika haqida.

Hodisani tahlil qilgach, darhol ishga qaytmang. Avval takrorlanmasligi uchun profilaktika choralarini qo‘shing. Ikkinchi miya (business/ papkasidagi loyiha tuzilmasi) va CLAUDE.md ustida soatlab ishlashingiz mumkin, ularni qo‘lda tiklash qiyin — bu jiddiy sabab. Minimal to‘plam:

  1. ~/.claude/settings.json ichida permissions.disableBypassPermissionsMode: "disable" — chetlab o‘tish rejimini arxitektura darajasida taqiqlaydi, shuning uchun tasodifan ishga tushirilgan --dangerously-skip-permissions shunchaki ishlamaydi.
  2. Read(./env*), Bash(git push --force), Write(./node_modules/**) uchun hooklar — istak bilan emas, qat’iy qoida darajasida ushlanishi kerak bo‘lgan amallar.
  3. Uzoq avtonom ishga tushirishlar uchun sandbox konfiguratsiyasi (/loop, /schedule).
  4. Kontekstdan nimani chiqarib tashlash bo‘yicha o‘z qoidalaringiz bilan /compact — Claude o‘zini o‘zi holdan toydirmasligi uchun.

To‘rt qatlamli to‘liq himoya tizimi “Loyihangizni tunda buzmasligi uchun Claude Code’ni qanday sozlash kerak” qo‘llanmasida. Bir qo‘llanma /loop ni ishga tushirishdan oldingi himoyani, ikkinchisi esa /loop allaqachon nimanidir buzganidan keyingi tiklashni yoritadi. Mantiqiy juftlik.

Manbalar

Amaliy materiallar: Ailoot hujjatlari.

Qo‘shimcha materiallar va vositalar: Ailoot.

Batafsil

Ko‘p beriladigan savollar

Xavfsiz rejimda xato ~/.claude’ni o‘chirish kerakligini bildiradimi?

Yo‘q. O‘rnatish, avtorizatsiya, tarmoq va infratuzilma sabablarini tekshirish kerak. Noaniq doctor hisoboti sozlama yoki seansni olib tashlash dalili emas. Faqat tashxislangan qatlamni tuzating.

O‘rnatishni tuzatishdan oldin nimalar saqlanadi?

Yozuvchilarni to‘xtatib, seanslar, plugin/MCP, ignore fayllar va metama’lumot bilan butun Claude holatini zaxiralang. Checksum va ochilishini tekshiring, hisob hamda credential omborini saqlang. Joriy holat ustiga ko‘r-ko‘rona yozmay, faqat tashxislangan qatlamni tiklang.

Barcha maqolalar