Skip to content

Sistem Istemleri ve CLAUDE.md

Sistem istemleri ve proje yapilandirmasi ile Claude'un davranisini sekillendirin

11 dk okuma

--system-prompt ile bir kodlama kurali ekliyorsunuz. Calisiyor — ancak simdi Claude guvenlik yonergelerini, kod stili tercihlerini ve CLAUDE.md dosyalarinizdan gelen tum talimatlari unutmus durumda. Eklemek istediginizde tum sistem istemini degistirdiniz. Bu, uretim botlarini bozar — aniden icerik politikalarini gormezden gelirler ve onay almadan yikici islemler gerceklestirirler.

Claude’a istemin otesinde talimat vermenin uc yolu vardir: --append-system-prompt varsayilanlarin uzerine kurallar ekler, --system-prompt varsayilanlari tamamen degistirir ve CLAUDE.md dosyalari sikilamayi (compaction) atlatan kalici proje duzeyinde yapilandirma saglar. Dogru olani secmek, Claude’un guvenlik yonergelerini koruyup korumayacagini, cagri basina ne kadar odeyeceginizi ve kurallarinizin oturumlar arasinda gecerli kalip kalmayacagini belirler.

Ozel bir nedeniniz olmadikca --append-system-prompt kullanin. --system-prompt her seyi degistirir — yalnizca korumalı bir sohbet botu kisililigi veya dosya sistemi erisimi olmayan saf bir JSON donusturucu gibi bir sey insa ederken kullanin.

—append-system-prompt

Bu guvenli, eklemeli yaklasimdir. Metniniz varsayilan sistem isteminin sonuna eklenir, boylece Claude tum yerlesik guvenlik yonergelerini, arac talimatlarini ve kodlama kurallarini korur. Kurallariniz bunlarin uzerine katmanlanir.

Varsayilan Isteme Ekleme
# Kural ekle -- varsayilanlar korunur
$ claude -p "Say: I am using an appended prompt" \ --append-system-prompt "Always end your response with 'CUSTOM_TAG'"
I am using an appended prompt CUSTOM_TAG
# Guvenlik yonergeleri, arac erisimi ve kodlama kurallari korunuyor

Eklenen metin Claude’un gordugu sistem isteminin bir parcasi olur, ancak hicbir sey cikarilmaz. Bu, cogu kullanim senaryosu icin dogru secimdir: karmasik istekler icin plan modunu zorlamak, kod inceleme kriterleri eklemek, “her zaman TypeScript strict modu kullan” gibi alana ozgu kurallar enjekte etmek veya cikti formati kisitlamalari belirlemek.

Terminal window
# Force plan-first behavior for complex tasks
claude -p "Refactor the auth module" \
--append-system-prompt "When the user brings a list of changes, \
immediately call EnterPlanMode and research the codebase before presenting a plan."
# Security review with structured output rules
claude -p "Review auth.py" \
--append-system-prompt "Focus exclusively on SQL injection and XSS vulnerabilities. \
Rate each finding as Critical, High, Medium, or Low."

—system-prompt

Bu bayrak varsayilan Claude Code sistem isteminin tamamini degistirir. Yerlesik her sey — guvenlik yonergeleri, arac kullanim talimatlari, kodlama kurallari, izin yonetimi kurallari, git guvenlik protokolleri, ton ve stil yonergeleri — gider. Claude yalnizca sizin sagladiginiz seyleri takip eden bos bir sayfa olur.

Tam Sistem Istemi Degistirme
# Tam degistirme -- Claude artik sadece bir korsan
$ claude -p "Say: I am using a custom system prompt" \ --system-prompt "You are a pirate. Always respond in pirate speak."
Ahoy there, matey! I be usin' a custom system prompt, arr!
Gotcha

TEHLIKE: —system-prompt TUM guvenlik yonergelerini kaldirir. Varsayilan sistem istemi kritik kurallar icerir: sormadan dosya silme, git guvenlik protokolleri, izin yonetimi, icerik politikasi uyumu ve daha fazlasi. Degistirmek bunlarin TUMUNU kaldirir. Guvenlik kurallari olmadan Claude, onay almadan yikici dosya islemleri (rm -rf) gerceklestirir. Ozellikle bir sohbet botu veya ogretmen gibi bos sayfa bir kisililige ihtiyaciniz yoksa —append-system-prompt kullanin.

Tam degistirme, Claude’un tamamen farkli bir kisilik olmasi gerektiginde dogru aractir — bir Gandalf sohbet botu, bir dil ogretmeni, saf bir JSON donusturucu. Dosya sistemi erisimini devre disi birakmak ve korumalı bir kisilik olusturmak icin --tools "" ile eslestirin:

Terminal window
# Pure persona with no tool access
claude -p "Tell me about yourself" \
--system-prompt "You are Gandalf the Grey. Speak in character." \
--tools ""

CLAUDE.md

Hem --system-prompt hem de --append-system-prompt gecicidir. Yalnizca mevcut claude -p cagrisina uygulanirlar ve bir oturumu --resume ile devam ettirdiginizde korunmazlar. Kalici, proje duzeyinde talimatlar icin CLAUDE.md kullanin.

Bir CLAUDE.md dosyasi oturum baslangicinda diskten yuklenir ve sikistirmadan (compaction) sonra yeniden okunur. Bu, kurallarinizin /compact komutunu ve otomatik sikilamayi tetikleyen uzun oturumlari atlattigini anlamir. Dosyayi proje kokunuze yerlestirin ve o dizinden baslanan her oturum talimatlari devralir.

CLAUDE.md
## Coding Standards
- Use TypeScript strict mode for all new files
- Prefer named exports over default exports
- All functions must have JSDoc comments
## Git Rules
- Never commit directly to main
- Prefix commit messages with feat:, fix:, or chore:

Kalicilik Karsilastirmasi

KaynakNe Zaman Yuklenir/compact’tan Saglar miKapsam
—system-promptOturum baslangiciN/A (gecici)Tek cagri
—append-system-promptOturum baslangiciN/A (gecici)Tek cagri
CLAUDE.mdOturum baslangici + sikistirma sonrasiEvet (diskten yeniden okunur)Proje duzeyi kalici
Tip

CLAUDE.md’yi 200 satirin altinda tutun. Uzun dosyalar onemli miktarda baglam tuketir ve Claude tum talimatlara uyamayabilir. En onemli kurallarinizi ust kisma yerlestirin.

Hangisi Ne Zaman Kullanilir

Dogru Mekanizmayi Secmek

DurumKullaninNeden
Ozel kurallarla tek seferlik CI isi—append-system-promptGuvenlik varsayilanlarini korur, kurallarinizi tek calisma icin ekler
Bos sayfa kisilik (sohbet botu, ogretmen)—system-promptVarsayilanlari degistirir, boylece kisilik seyreltilmez
Tum oturumlar icin proje capinda kurallarCLAUDE.mdOturumlar arasinda kalici kalir ve sikilamayi atlatir
Tek bir cagri icin gecici kural—append-system-promptYan etkisi yok, dosya degisikligi gerekmiyor
/compact’i atlatmasi gereken kurallarCLAUDE.mdSikistirmadan sonra diskten yeniden okunur
CI guvenlik inceleme hatti—append-system-promptArac erisimini ve guvenligi koruyarak inceleyici kisiligi ekler
Try This

Farki kendiniz gorun. Once ekleyin:

claude -p “What instructions do you have?” —append-system-prompt “Always respond in exactly one sentence.”

Simdi degistirin:

claude -p “What instructions do you have?” —system-prompt “Always respond in exactly one sentence.”

—system-prompt’un Claude’un varsayilan talimatlarini nasil cikardigina, —append-system-prompt’un ise onlari koruduğuna dikkat edin. Hangi yanit daha kullanisli?

Token Maliyeti: Degistirme ve Ekleme

Sectiginiz sistem istemi mekanizmasi token sayilari ve maliyet uzerinde dogrudan etkiye sahiptir. Kisa bir istemle tam degistirme, ~14K varsayilandan daha az onbellege alinmis token kullanir. Ekleme, birlesmis istem icin yeni cache girisleri olusturur.

Tam Degistirme (Korsan Modu)artifacts/07/system_prompt_override.json
1{
2 "type": "result",
3 "subtype": "success",
4 "is_error": false,
5 "duration_ms": 3668,
6 "num_turns": 1,
7 "result": "\n\nAhoy there, matey!\n\nI be usin' a custom system prompt, arr! That be the truth of it, straight from me captain's quarters! Now, what adventure can this ol' sea dog help ye with today?",A
8 "session_id": "b40bfb47-653f-4081-876b-038d013458f2",
9 "total_cost_usd": 0.014833,
10 "usage": {
11 "input_tokens": 3,B
12 "cache_creation_input_tokens": 1398,
13 "cache_read_input_tokens": 8811,
14 "output_tokens": 67
15 }C
16}
AKorsan kisiligi -- tam degistirme calisti
B$0.015 -- daha kucuk sistem istemi sayesinde normalden ucuz
C~14K varsayilana karsi 8.811 onbellege alinmis token -- daha kucuk istem, daha az token
Ekleme Modu (CUSTOM_TAG Kurali)artifacts/07/append_system_prompt.json
1{
2 "type": "result",
3 "subtype": "success",
4 "is_error": false,
5 "duration_ms": 6441,
6 "num_turns": 1,
7 "result": "I am using an appended prompt\n\nCUSTOM_TAG",A
8 "session_id": "2a3ce8b9-23c4-4fce-8cb2-e4eb16859131",
9 "total_cost_usd": 0.061331,
10 "usage": {
11 "input_tokens": 3,B
12 "cache_creation_input_tokens": 9124,
13 "cache_read_input_tokens": 6532,
14 "output_tokens": 41C
15 }
16}
AYanit CUSTOM_TAG ile bitiyor -- eklenen kural uygulandi
B$0.061 -- daha pahali (daha buyuk birlesmis istem)
C9.124 olusturma tokeni -- yeni birlesmis istem ilk kez onbellege aliniyor

Degistirme cagrisi 8.811 onbellek okuma tokeniyle $0.015’e mal olur. Ekleme cagrisi 9.124 onbellek olusturma tokeniyle $0.061’e mal olur cunku birlesmis varsayilan-arti-eklenmis istem ilk kez onbellege alinmak zorundaydi. Ayni eklenen metinle yapilan sonraki cagrilarda, onbellek yeniden kullanildikca olusturma maliyeti duser.

Uc Katmanin Hepsi Birlesir

Yaygin bir yanlis kanı: --system-prompt CLAUDE.md’yi degistirir. Degistirmez. Uc baglam katmaninin hepsi ayni anda aktiftir:

Prompt Composition Stack
--append-system-prompt adds on top keeps defaults CLAUDE.md project-level config survives compaction Default system prompt safety guidelines ~14K tokens, cached READS BOTTOM → TOP --system-prompt replaces ALL layers — use --append-system-prompt instead

Sistem Istemi Yigini

KatmanKaynak—system-prompt ile Kaldirilir mi?
Temel sistem istemiYerlesik varsayilan VEYA —system-promptDegistirilir (bayragin degistirdigi budur)
CLAUDE.md hiyerarsisiDizin agacindaki tum CLAUDE.md dosyalariHayir — her zaman yuklenir, devre disi birakilamaz
Ekleme istemi—append-system-promptHayir — her seyin ardindan eklenir

--system-prompt "pirate speak" + --append-system-prompt "end with ARRR" + “TEST_PROJECT’dan bahset” iceren bir CLAUDE.md calistirmak — uc talimat da her yanıtta gorulur. Etkili yigin sudur: [--system-prompt VEYA varsayilan] + [CLAUDE.md hiyerarsisi] + [--append-system-prompt].

Gotcha

GUVENLIK: CLAUDE.md yuklemesini devre disi birakacak bir bayrak yoktur. Klonladiginiz herhangi bir depo Claude’un baglamina talimat enjekte edebilir. Hicbir —system-prompt, hicbir —disable-slash-commands, hicbir .git siniri bunu engelleyemez. Tek izolasyon mekanizmasi ayri depolar veya komutlari calistirmadan once CLAUDE.md’nin manuel olarak incelenmesidir. Korumalı alan (sandbox), allowedTools kisitlamalari ve on-kontrol CLAUDE.md denetimi dahil azaltma stratejileri icin Bolum 19’a bakin.

Dikkat Edilmesi Gerekenler

Gotcha

Tam degistirme guvenlik yonergelerini kaldirir. Varsayilan sistem istemi “sormadan dosya silme” ve git guvenlik protokolleri gibi kurallar icerir. —system-prompt kullandiginizda bunlarin hepsi kaybolur. Claude istendigi takdirde mutlulukla rm -rf yapar. Gelistiriciler guvenlik korumalarinin hala gecerli olmasini beklediginde bu veri kaybina neden olur. Tam degistirmeyi yalnizca guvenligi kendiniz ustlenmeye kasitli olarak karar verdiginizde kullanin — ve dosya sistemi erisimini tamamen devre disi birakmak icin —tools "" ile eslestirmeyi dusunun.

Gotcha

MCP arac aciklamalari tam degistirmeyi atlatir. MCP araclari (Chrome DevTools, Notion, vb.) sistem isteminden ayri olarak enjekte edilir. —system-prompt “short” —tools "" ile bile bir test 22.295 onbellege alinmis okuma tokeni gosterdi cunku MCP aciklamalari baglamda kaldi. Bunlari sistem istemi bayraklariyla kaldiramazsiniz.

Tip

—append-system-prompt —print modunda gecicidir. Bir oturumu —resume ile devam ettirdiginizde korunmaz. Oturum devam ettirmelerinde gecerli kalan kurallara ihtiyaciniz varsa bunlari CLAUDE.md’ye koyun.

CLAUDE.md Boyutlandirma Rehberi

CLAUDE.md dosyalari her oturum baslangicinda baglama yuklenir ve sikilamayi atlatir. Boyutlari baslangic maliyetini, yanit kalitesini ve ilk yanit gecikmesini dogrudan etkiler.

Onerilen limitler:

  • Tek bir CLAUDE.md icin 10.000 kelimenin altinda — optimum performans icin topluluk konsensüsü
  • 2.800+ satir olculebilir bozulmaya neden olur — ~2.100 ek baslangic tokeni ve 10-12 saniye ilk yanit gecikmesi
  • 47.000 kelime felaket boyutunda — bu olcekte performans dramatik olarak duser

Monorepo bolme stratejisi: Tek bir devasa kok CLAUDE.md yerine alt dizine ozgu dosyalara bolun:

project/
├── CLAUDE.md # 2,000 words — global conventions only
├── frontend/CLAUDE.md # 3,000 words — React patterns, component structure
├── backend/CLAUDE.md # 3,000 words — API conventions, database patterns
└── infrastructure/CLAUDE.md # 2,000 words — deployment, CI/CD specifics

Claude, dizin hiyerarsisindeki (kokten cwd’ye kadar) tum CLAUDE.md dosyalarini yukler. Alt dizin dosyalari ust dosyalara eklenir — onlari degistirmez. Yalnizca mevcut calisma dizininize giden yoldaki CLAUDE.md dosyalari yuklenir, boylece bir frontend gelistirici backend CLAUDE.md tokenleri icin odeme yapmaz.

10K Kelimenin Uzerindeki CLAUDE.md Performansi Dusurur

CLAUDE.md boyutu icin kesin bir limit yoktur, ancak topluluk testleri 10.000 kelimenin otesinde olculebilir bozulma gosterir: daha yavas ilk yanitlar, daha yuksek baslangic token maliyetleri ve Claude’un dikkati cok fazla yonergeye dagildikca azalan talimat uygulama dogrulugu. Tam kapsami korurken her birini 10K kelimenin altinda tutmak icin buyuk dosyalari alt dizine ozgu CLAUDE.md dosyalarina bolun.

Now Do This

Otomasyon scriptlerinizden birine —append-system-prompt “Be concise. Respond in under 50 words.” ekleyin. Claude’un eklediginiz kurala uyarken hala varsayilan guvenlik yonergelerine uyduğunu dogrulayin. Bu, —system-prompt yerine neredeyse her zaman isteyeceginiz secenektir.