Claude Code izin istemlerini .NET projesinde yönetmek
Claude Code'un auto modu, hangi işlemlerin güvenli olduğuna yine yapay zekanın karar vermesi anlamına geliyor. Yazar, bir .NET projesinin settings.json dosyasına ask ve deny kuralları eklemenin EF Core migration'ları, uygulamayı çalıştırma ve veritabanı güncellemeleri üzerindeki kontrolü nasıl geri verdiğini anlatıyor. Ayrıca bir deny kuralının hangi ayar dosyasında olursa olsun allow ve ask kurallarını geçtiğini gösteriyor.
Kilit noktalar
- Takımla paylaşılacak ask ve deny kurallarını proje kökündeki .claude/settings.json dosyasında tanımlayın.
- dotnet ef migrations add ve dotnet run komutlarını ask listesine koyarak auto modda bile her çalıştırmada onay isteyin.
- Elle yazılan migration dosyalarını durdurmak için Edit(**/Migrations/**), veritabanı güncellemesini manuel tutmak için Bash(dotnet ef database update *) deny kuralını ekleyin.
- Bir deny kuralı, ~/.claude/settings.json dahil hangi dosyada olursa olsun allow ve ask kurallarının önüne geçer.
- Hem ask hem allow eşleşirse ask kazanır; yerel ayarlardaki bir ask kuralı sizi yine onaya çağırabilir.
- Projede geçerli tüm kuralları görmek için Claude Code içinde /permissions komutunu çalıştırın.
Claude Code'un auto modu artık riskli shell komutlarını ve web isteklerini çalışmadan önce ikinci bir model, yani sınıflandırıcı, ile inceletiyor. Yazar, tehlikeli olmasa da rahatsız edici işlemleri kaçırdığını görmüş: elle yazılan bir EF Core migration'ı veritabanı güncellemesini bozmuş, CSS değişikliği sırasında da web sitesi arka planda çalışır durumda kalmış. Çözümü, proje kökündeki .claude/settings.json dosyasında dotnet ef migrations add ve dotnet run için bir ask listesi, Migrations altındaki düzenlemeleri ve dotnet ef database update komutunu engelleyen bir deny listesi tanımlamak.
Asıl dikkat çekici nokta öncelik sırası. Bir deny kuralı, hangi ayar dosyasında olursa olsun ask ve allow kurallarının önüne geçiyor; home dizinindeki kullanıcı ayarlarında kalmış bir dotnet run deny kuralı, proje izin verdikten sonra bile uygulamanın başlamasını engelledi. Bir kuralın etkisinden emin olmadan önce Claude Code içinde /permissions komutuyla geçerli tüm kuralları görmek iyi bir alışkanlık.
Gerçek dünyada kullanımı
- Birden fazla geliştiricinin çalıştığı bir EF Core projesinde migration'ların yalnızca dotnet ef CLI ile oluşturulması ve veritabanı güncellemelerinin elle yapılması.
- Claude Code'un görünümleri ve CSS'i düzenlemesine izin verilen, ama web sitesini arka planda başlatmasının istenmediği bir ASP.NET Core MVC projesi.
- Test sırasında eklenen eski izin kurallarının home dizinindeki settings.json dosyasında unutulup uygulamayı engellediği yerel geliştirme makinesi.
Neden önemli
Auto mode riski sizin projenize göre değil, genel bir sınıflandırıcıya göre değerlendirir. Repo içindeki açık ask ve deny listeleri migration'ları, veritabanı değişikliklerini ve çalışan süreçleri sizin kontrolünüzde tutar; öncelik kurallarını bilmek ise sessizce işi engelleyen kuralları önler.