Ekibin paylaşabileceği ayarlar
Claude Code ayarları birkaç kapsamdan okuyup sabit bir sıraya göre birleştiriyor. Hangi dosyanın kazandığını ve neyin git'e girdiğini bilmek, ekip kurallarının tek kişinin alışkanlığına dönüşmesini önlüyor.
Dört dosya, bir de sizin olmayan
Claude Code'da dört ayar kapsamı var:
- User:
~/.claude/settings.json, bütün projelerde sizin. - Shared project:
.claude/settings.json, repoya commit edilir. - Project local:
.claude/settings.local.json, yalnızca bu projede sizin. - Managed: bir kurumun dosya, MDM ya da sunucu yönetimli ayarlarla koyduğu.
Beşinci bir dosya olan ~/.claude.json'u siz düzenlemiyorsunuz. Onu Claude kendisi yazıyor: hesap, MCP ayarları, güven durumu.
Ayrımın bütün amacı bu. Ekip kuralı, ekibin paylaştığı bir dosyada durur. Kişisel tercih, yalnızca sizde olan bir dosyada.
Kim kazanır
Kapsamlar çeliştiğinde sıra yüksekten düşüğe şöyle: managed, komut satırı (--settings), project local, shared project, user.
"En yüksek kazanır" kuralının istisnası dizilerdir. permissions.allow gibi listeler kapsamlar arasında birleşir; yani user düzeyinde eklenen bir kural ile projede eklenen bir kural ikisi de geçerli olur.
Model küçük bir tuzak örneği. ANTHROPIC_MODEL, herhangi bir dosyadaki model ayarını ezer; ANTHROPIC_DEFAULT_MODEL ise yalnızca hiçbir dosya model belirlemediyse devreye girer. Ayrıca bazı anahtarlar, managed ayarlara rağmen alt kapsamdaki daha sıkı değeri dikkate alır, örneğin disableClaudeAiConnectors: true ya da permissions.blockReadsOutsideWorkingDirectories: true. Daha sıkı olan değer kazanır.
User ayarı bir komuta izin veriyor, proje ayarı başka bir komuta izin veriyor. Ne geçerli olur?
Git'e ne girer
Ekibin üzerinde anlaştığı kurallar için .claude/settings.json commit edin: sırlara deny kuralları, herkesin çalıştırdığı komutlar için allowlist, ortak hook'lar. Kişisel geçersiz kılmalar için .claude/settings.local.json kullanın.
İşin bir kısmını Claude kendisi yapıyor. settings.local.json dosyasını ilk yazdığında onu global git exclude listenize ekliyor. Git reposunda yerel dosya reponun kökünde durur (worktree'lerde ana checkout'un kökünde).
Yeni bir ekip arkadaşı için önemli bir güven ayrıntısı var. Commit edilmiş deny kuralları hemen geçerli olur. Commit edilmiş allow kuralları, her ekip arkadaşı klasör güven penceresini kabul edene kadar bekler.
"Yes, and don't ask again" bir allow kuralını .claude/settings.local.json dosyasına yazar, yani kişisel onaylar kişisel kalır. Orada yazan bir allow, bir proje ya da managed dosyasından gelen ask kuralını geçemez.
Neyin yüklendiğine bakmak
Ayar dosyaları katı JSON. Bir yorum ya da sondaki virgül, başlangıçta Settings Error penceresi açar. "$schema": "https://json.schemastore.org/claude-code-settings.json" ekleyin, editörünüz yazarken dosyayı doğrulasın.
$ claude> /status✻ Hangi ayar kaynaklarının yüklendiğini gösterir> /config model=sonnet✻ Değeri doğrudan ayarlar$ claude doctor✻ Reddedilen girdileri listeler# Çoğu değişiklik anında geçerli olur: izinler, hook'lar ve apiKeyHelper yeniden başlatma istemez.
Ekipte iki kişinin davranışı farklıysa önce /status çıktılarını, sonra claude doctor'ı karşılaştırın.
Taşıma ve kurtarma
CLAUDE_CONFIG_DIR ayarları, geçmişi ve plugin'leri başka bir yere taşır. Bozulan bir ~/.claude.json dosyası ~/.claude/backups/ altına yedeklenir ve en son beş .claude.json.backup.<timestamp> kopyası geri yüklenebilir. /model modeli varsayılanınız olarak kaydeder; seçicide s'e basmak kaydetmeden geçiş yapar.
Bir projede komutları onaylama tercihlerinizi hangi dosya tutmalı?
Bölüm tamamlandı
Paralel ve gözetimsiz kursunun 6 bölümünden 5. bölümü bitirdiniz.
Bir izin sorusuna cevap verecek kimse yoksa elinizdeki tek denetçi izin kuralları. Güvenli kurulum: dar allow kuralları, sert deny kuralları, sınırlı bir çalıştırma ve ulaşılabilecek yerde değerli hiçbir şey olmaması.
Sonraki bölüm