Claude’a auth modulunuzu yeniden duzenlemesini soyluyorsunuz. 14 dosyayi yeniden yaziyor, 3 testi bozuyor ve API sozlesmesini degistiriyor — siz tek bir satiri inceleyemeden.
Bu siteden tek bir kalip benimseyecekseniz, plan-inceleme-yurutme olsun.
Plan modu (--permission-mode plan) Claude’u bir gorevi dusunmeye, yapilandirilmis bir plan sunmaya ve herhangi bir seye dokunmadan once onayinizi beklemeye zorlar. Bu uc asamali is akisi — planla, incele, yurutu — guvenli otonom kodlamanin temelidir.
Adim 1: Bir Plan Olusturun
--permission-mode plan gecirerek Claude’u yalnizca planlama moduna kilitleyin. Tum eylem araclari (Write, Edit, Bash) engellenir. Claude hala dosyalari okuyabilir, kod tabaninda arama yapabilir ve gorev hakkinda akil yurutebilir, ancak hicbir seyi degistiremez.
Dahili olarak su olur: Claude promptu alir, gorevi dusunur, ~/.claude/plans/<rastgele-isim>.md dosyasina bir plan yazar ve plan metniyle ExitPlanMode’u cagririr. Plan modu bu araci engellediginden, cagri yurutulmek yerine permission_denials icinde gorunur. Claude’un denedigi tum eylem araclari (Write gibi) de engellenir ve ayni dizide gorunur.
Adim 2: Plani Okuyun
Plan result icinde degildir. Plan modunda result alani “Permission was denied…” gibi genel bir durum mesaji icerir. Gercek yapilandirilmis plan permission_denials icinde, ozellikle ExitPlanMode girisinin tool_input.plan alaninda bulunur.
Bu yanittan iki sey cikarilmalidir. Birincisi, planin kendisi:
const planText = data.permission_denials .find(d => d.tool_name === 'ExitPlanMode') ?.tool_input.plan;Ikincisi, bekleyen eylemler — Claude’un onaylandiginda yapmak istedigi seyler:
const pendingWrites = data.permission_denials .filter(d => d.tool_name === 'Write') .map(d => ({ path: d.tool_input.file_path, content: d.tool_input.content }));Bu, Claude’un olusturmak veya degistirmek istedigi her dosyanin bir on izlemesini, herhangi bir seye dokunma izni olmadan verir.
Kendi kod tabaninizda plan-modu komutu calistirin:
claude -p “Bu projedeki hata yonetimini iyilestirmek icin ne degistirirdiniz?” —permission-mode plan —output-format json | jq ‘.result’
Claude’un urettigi plani okuyun. .permission_denials kontrol edin — Claude herhangi bir seyi yurutmeye calisti mi? Plan modunda calismamaliydi.
Adim 3: Yurut
Plani inceledikten sonra, oturumu devam ettirin ve yurutmeyi onaylamak icin izin modunu degistirin. --resume bayragi tam konusma baglamini alir — Claude’un plani zaten bellektedir ve hicbir seyi yeniden analiz etmesine gerek yoktur.
--permission-mode bypassPermissions bayragi Claude’a her araci tek tek onay istemeden calistirmasini soyler. Burada bu guvenlidir cunku plani zaten incelediniz ve tam olarak ne yapacagini biliyorsunuz. Claude’un hala her yikici eylemden once sormasini istiyorsaniz, bunun yerine --permission-mode default kullanin.
Yurutmeden Once Degistirme
Devam ettirme mesaji serbest bicimli metindir. “Evet” veya “hayir” ile sinirli degilsiniz — herhangi bir talimat gonderebilirsiniz ve Claude plani buna gore revize edecektir.
Devam ettirmedeki --permission-mode plan’a dikkat edin. Bu, Claude’u planlama modunda tutar, boylece yurutmek yerine revize edilmis bir plan uretir. Ihtiyaciniz oldugu kadar cok kez tekrarlayabilirsiniz. Memnun kaldiginizda, yurutmek icin son bir kez --permission-mode bypassPermissions ile devam ettirin.
Devam Ettirmede Ne Gonderebilirsiniz
| Devam Ettirme Mesaji | Ne Olur |
|---|---|
”evet, devam et” | Plani oldugu gibi yurutur |
”hayir, Y yerine X yap” | Plani degisikliginizle revize eder |
”Z’yi de yapmak icin bir adim ekle” | Plana ek bir adim ekler |
”adim 2’yi daha fazla acikla” | Plan modunda kalir, plani detaylandirir |
”aslinda birakin — tamamen baska bir sey yapin” | Ayni oturumda tamamen yeni bir plan uretir |
Bir revizyondan sonra, permission_denials yalnizca mevcut plani icerir. Onceki planlar yanittan silinmistir. Oturum kimligi ayni kalir ve maliyetler her turda birikir.
Bayrak ve Arac Karsilastirmasi
Plan moduna girmenin iki yolu vardir: --permission-mode plan CLI bayragi ve Claude’un kendi basina cagirabilecegi EnterPlanMode araci. Farkli kullanim alanlarina hizmet ederler.
--permission-mode plan ve EnterPlanMode Araci Karsilastirmasi
| Senaryo | Kullanim |
|---|---|
| Tum oturum yalnizca plan olmali | —permission-mode plan |
| Claude planlama gerektigine karar vermeli | EnterPlanMode araci (otomatik) |
| CI boru hatti: planla, insan incelemesi, sonra yurutu | —permission-mode plan + —resume |
| Opsiyonel planlama ile interaktif oturum | Claude’un EnterPlanMode’u dogal olarak cagirmasina izin verin |
Bayrak deterministiktir — oturumun baslamadan once yalnizca plan olacagini bilirsiniz. Arac adaptiftir — Claude gorev karmasikligina gore karar verir. Otomasyon ve CI boru hatlari icin bayragi kullanin. Claude’un yalnizca gorev yeterince karmasik oldugunda planlamasini istediginiz interaktif is akislari icin, --append-system-prompt araciligiyla yonlendirin:
claude -p "goreviniz" \ --append-system-prompt "Kullanici bir degisiklik listesi, birden fazla gorev veya \karmasik bir ozellik istegi getirdiginde, hemen EnterPlanMode cagirin ve \bir plan sunmadan once kod tabanini arastirin."Ne bayrak ne de acik bir talimat olmadan, Claude otomatik olarak planlamaz. Sadece yurutur.
Planlar result icinde degil, permission_denials icindedir. result alani “Permission was denied. Please approve the write…” gibi genel bir durum mesaji icerir. Gercek plan metni, tool_name degeri “ExitPlanMode” olan permission_denials[0].tool_input.plan konumundadir. Otomasyonunuzda result’u ayristirirseniz, plan yerine islenmis bir dize elde edersiniz. Bu ayni zamanda —output-format json kullanmaniz gerektigini de ifade eder — metin modu yalnizca result’u dondurur, bu nedenle plan gorunmez olur.
Her plan-modu turunda permission_denials icinde birden fazla giris olabilir. Ilki tipik olarak plan metnini iceren ExitPlanMode cagrisidir. Sonraki girisler, Claude’un denedigi engellenen eylem araclaridir (Write, Edit, Bash). Bu engellenen eylemler, Claude’un onay uzerine ne yapacaginin bir on izlemesidir — planin onerilen degisikliklerle eslestiqini dogrulamak icin bunlari inceleyin. Dizinin yalnizca bir elemana sahip oldugunu varsaymayin.
Sonnet, yapilandirilmis bir plan alaniyla ExitPlanMode cagririr. Opus bunun yerine AskUserQuestion kullanabilir ve plani bir sorunun icine gomebilir. Bir ayristirici olusturuyorsaniz, permission_denials icinde hem ExitPlanMode hem de AskUserQuestion kontrolu yapin.
Bir plan oturumunu yanlis —permission-mode ile devam ettirmek gecerlidir ancak davranisi tamamen degistirir. bypassPermissions ile devam ettirmek her seyi onaysiz yurutur. plan ile devam ettirmek sizi inceleme modunda tutar. Her devam ettirmede hangi modu gectiginiz konusunda bilerek hareket edin.
Bir cok ajanli boru hattinin inceleme -> ozet -> takim zekasi seklinde nasil zincirleme yaptigini, ajanllar arasi baglam aktarimi icin —resume kullandigini gorun: MR Inceleyici Olusturun, Bolum 5: Cok Ajanli Boru Hatti.
Tam plan-inceleme-yurutme dongusunu deneyin: SID=$(claude -p “Bu projedeki en buyuk fonksiyonu yeniden duzenle” —permission-mode plan —output-format json | jq -r ‘.session_id’). Plani okuyun. Dogru gorunuyorsa, yurutun: claude -p “Devam et” —resume “$SID” —permission-mode bypassPermissions. Yurutmeden once inceleme yaptiniz — otonom kod degisikliklerini calistirmanin en guvenli yolu.