Claude Code en iyi pratikler: uygulamalı kontrol listesi

Gerçek projelerde işe yarayan Claude Code en iyi pratikler: kısa CLAUDE.md, önce plan, çalıştırılacak bir kontrol, küçük görevler, /clear, izinler, hook’lar ve worktree.

Solviera Teknoloji 10 dk okuma

En önemli Claude Code en iyi pratikleri basit: CLAUDE.md’yi kısa tut, büyük değişikliklerden önce plan yap, Claude’a çalıştırabileceği bir kontrol ver, küçük görevlerle çalış, aralarında bağlamı temizle, kesin kuralları düz yazı yerine yapılandırmayla zorunlu kıl ve paralel işleri ayrı git worktree’lerinde yürüt. Sonra diff’i oku ve sık commit at.

Bu sayfa bir kontrol listesi. Her madde ne yapacağını söylüyor, komutu ya da ayarı gösteriyor ve varsa daha ayrıntılı bir rehbere bağlantı veriyor. Buradaki her şey Ekim 2026 itibarıyla resmi Claude Code belgelerine dayanıyor; sürümler arasında değişen ayrıntılar belirtilmiş.

Kontrol listesine hızlı bakış

#PratikTek satırlık hali
1Kısa CLAUDE.mdYalnızca komutlar, tuzaklar ve kararlar
2Net prompt’larBelirti, yer, düzeldiğini nasıl kanıtlayacağın
3Önce planÇok adımlı her iş için plan modu ya da yazılı bir spec
4Çalıştırılacak bir kontrolTestler, typecheck, lint; kanıt iste
5Küçük görevlerOturum başına tek hedef, görevler arasında /clear
6Kesin kurallar yapılandırmadaDeny kuralları, hook’lar, sandbox
7Erken yönlendirEsc, /rewind ve iki başarısız düzeltmeden sonra /clear
8Bilinçli alt ajanlarRefleksle değil; paralel iş ve taze bir inceleme için
9Paralel işe worktreeOturum başına bir checkout
10İncele ve commit atDiff’i oku, küçük commit at, push’u kendin yap

1. CLAUDE.md’yi kısa ve olgusal tut

Claude Code CLAUDE.md’yi her oturuma yükler; yani içindeki her satır, ilgili olsun olmasın, her görevde biraz dikkat harcar. Dosya en iyi, yalnızca Claude’un koddan çıkaramayacaklarını içerdiğinde çalışır:

  • Bu repoda işin nasıl doğrulanacağı: tam test, typecheck ve lint komutları ve tek bir test dosyasının nasıl çalıştırılacağı.
  • Kodun yanılttığı yerler: yeni kodun kopyalamaması gereken eski bir kalıp, ölü görünen ama ölü olmayan bir klasör.
  • Repoda olmayan kararlar: ekibin hangi hata yardımcısını seçtiği, deploy’ların nasıl yapıldığı.
  • İki kez düzeltmek zorunda kaldığın her şey.

Bu testi geçen bir dosya küçük kalır:

# Commands
- Install: pnpm install
- Run one test file: pnpm vitest run path/to/file.test.ts
- Typecheck: pnpm tsc --noEmit

# Conventions
- Use the error helpers in src/lib/errors.ts, never throw raw strings
- src/legacy/ is still live but don't copy its patterns into new code

# Gotchas
- Integration tests need DATABASE_URL set, see .env.example

Mimarini ya da klasör yapını anlatmana gerek yok; Claude repoyu okur. /init ilk taslağı yazar, oradan sonrası çoğunlukla silmekten ibaret. Resmi bellek rehberi 200 satırın altında kalmayı öneriyor. /context dosyanın yüklendiğini doğrular, /doctor da neyin kısaltılabileceğini önerir. Kişisel tercihler .gitignore’a eklediğin CLAUDE.local.md’ye gider.

İki ilgili araç ana dosyayı yalın tutar. Yalnızca bir bölgede önemli olan kurallar paths: filtresiyle .claude/rules/*.md’ye gider; böylece sadece Claude orada çalışırken yüklenirler. Sürüm kontrol listesi gibi ekip prosedürleri .claude/skills/<name>/SKILL.md altında bir skill’e gider; Claude tam metne ihtiyaç duyana kadar yalnızca adını ve açıklamasını görür. Ayrıntılı anlatım CLAUDE.md ve AGENTS.md nasıl yazılır yazısında.

Claude bir satırı sürekli görmezden geliyorsa büyük harflerle IMPORTANT yazmak nadiren işe yarar. Ya dosya fazla uzun ya da o satır istisnası olmayan bir kural; o zaman yeri bir hook (6. maddeye bak).

2. Nerede, ne ve nasıl kontrol edileceğini söyleyen prompt’lar yaz

Belirsiz bir prompt Claude’u tahmin etmeye zorlar. Net bir prompt belirtiyi, nereye bakılacağını ve düzeltmenin nasıl kanıtlanacağını söyler:

Kullanıcılar oturum zaman aşımına uğradıktan sonra girişin başarısız olduğunu bildiriyor. src/auth/ içindeki token yenilemeye bak, sorunu yeniden üreten başarısız bir test yaz, sonra düzelt.

Dosyaları @ ile göster, ekran görüntüsü yapıştır ve logları anlatmak yerine boru ile ver. Ne istediğini henüz bilmiyorsan önce Claude’un seninle görüşme yapmasına izin ver:

Herkese açık API’ye rate limiting eklemek istiyorum ama henüz üzerine düşünmedim. Spec’i yazabilecek kadar bilgi toplayana kadar bana sorular sor, sonra onu SPEC.md’ye yaz.

Sonra SPEC.md’den inşa eden yeni bir oturum başlat. İnşa temiz bir bağlamla ve yazılı bir “bitti” tanımıyla başlar; spec de daha sonra inceleyicinin karşılaştıracağı şeydir. Daha fazla prompt kalıbı Kodlama ajanları için prompt yazmak yazısında.

Bırakabileceğin iki alışkanlık: “think hard” gibi ifadeler akıl yürütme eforunu artırmaz (/effort high kullan ya da tek bir prompt’a ultrathink yaz), BÜYÜK HARFLE vurgu da çoğunlukla Claude’un bir kuralı gereğinden fazla uygulamasına yol açar.

3. Çok adımlı değişikliklerden önce plan yap

Birkaç dosyaya dokunan her işte düşünmeyi düzenlemeden ayır. Plan modu Claude’un hiçbir şeyi değiştirmeden kodu okuyup bir plan önermesini sağlar. Ona Shift+Tab ile geçebilir ya da oturumu doğrudan bu modda başlatabilirsin:

claude --permission-mode plan

Planı oku, düzelt ve ancak ondan sonra Claude’un inşa etmesine izin ver. Planda yakalanan yanlış bir varsayım bir mesaja mal olur; diff’te yakalanırsa baştan yazmaya. Küçük, bariz düzeltmeler plan gerektirmez. Bir planı onaylamadan önce nasıl düzenleyeceğin de dahil ayrıntılar Claude Code plan modu yazısında.

4. Claude’a çalıştırabileceği bir kontrol ver

En çok getirisi olan alışkanlık bu. Claude ancak çalıştıracağı bir şey varsa işin bittiğini bilebilir: bir test paketi, bir typecheck, bir lint komutu, bir build’in çıkış kodu, çıktıyı bir fixture ile karşılaştıran bir betik. Reponda böyle bir şey varsa CLAUDE.md’deki en faydalı satır onu çalıştıran komuttur.

Kontrolün ne kadar sıkı uygulanacağını sen seçersin:

  • Prompt’ta. “Sonra auth testlerini çalıştır ve geçene kadar devam et.” Hiç kurulum gerektirmeden her görevde işe yarar.
  • Hedef olarak. /goal all tests in tests/auth pass and lint is clean, her turdan sonra ayrı bir modelin kontrol ettiği bir koşul koyar. En çok uzun çalıştırmalarda faydalı.
  • Stop hook’u olarak. Claude turunu bitirmeye çalıştığında Claude Code senin betiğini çalıştırır; betik 2 koduyla çıkarsa Claude’u geri gönderir.
  • Bağımsız bir inceleyiciyle. /code-review, diff’i konuşmanı hiç görmemiş yeni bir alt ajanda inceler.

“Typecheck geçmeli” kuralının Stop hook’u hali .claude/settings.json’da durur:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "pnpm tsc --noEmit 1>&2 || exit 2" }
        ]
      }
    ]
  }
}

Stderr, Claude’a henüz neden duramayacağının gerekçesi olarak geri gider; derleyici çıktısının oraya yönlendirilmesinin sebebi bu. Hook arada hiç araç çağrısı olmadan art arda sekiz durmayı engellerse Claude Code turu yine de bitirir; CLAUDE_CODE_STOP_HOOK_BLOCK_CAP bu sınırı yükseltir.

Hangisini seçersen seç kanıt iste: Claude’un çalıştırdığı komut ve çıktısı. Tek başına “tüm testler geçti” sana pek bir şey söylemez. Bir arayüz değişikliğinden sonra /verify, Claude’un uygulamayı derleyip çalıştırmasını ve sonuca bakmasını sağlar.

5. Görevleri küçük, bağlamı temiz tut

Bir oturum, bir hedef. Birbiriyle alakasız üç görev biriktirmiş bir konuşma, dördüncünün her turunda hepsini yeniden gönderir; bu hem daha pahalıdır hem de yanıtları daha az odaklı yapar.

  • Alakasız görevler arasında /clear. /clear oauth-migration ayrıca ayrıldığın oturuma bir ad verir, böylece ona geri dönebilirsin.
  • /compact keep the API changes and the test commands, önemli olanı tutarak uzun bir oturumu kısaltır. Uzun bir oturumda /compact kendisi de büyük bir istektir.
  • /usage kullanımının nereye gittiğini gösterir; abonelik planlarında alt ajan, skill ve MCP sunucusu bazında da.

Ekim 2026 itibarıyla güncel modellerin çoğunda 1M token’lık bir pencere var ve sıkıştırma kendiliğinden çalışıyor, yani bağlamın tükenmesi nadir. Temizlemek hayatta kalmakla değil, odak ve maliyetle ilgili. Prompt önbelleği abonelikte yaklaşık bir saat, API anahtarında yaklaşık beş dakika sürer; öğle yemeği boyunca boşta kalmış bir oturuma devam etmek, yeni bir oturumdan daha pahalıdır. İşin mekaniği Claude Code bağlam yönetimi yazısında.

6. Esnemeyecek kuralları yapılandırmaya koy

CLAUDE.md yönergeler içerir ve Claude bir yönergenin geçerli olmadığına karar verebilir. “Neredeyse her zaman”ın yetmediği birkaç kural için Claude Code’un kendisinin uyguladığı kontrolleri kullan.

İzin kuralları. Güvenli ve sık olana izin ver, riskli olanı sorsun, asla olmaması gerekeni reddet:

{
  "permissions": {
    "allow": ["Bash(pnpm tsc --noEmit)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)", "Read(./.env.local)", "Read(./secrets/**)"]
  }
}

Deny kuralları her izin modunda geçerlidir ve Read kuralı cat .env gibi yaygın dosya okuma kabuk komutlarını da yakalar. Dosyayı açan bir betiği yakalamaz; bu yüzden güvenlik açısından hassas işlerde /sandbox ile sandbox’ı da aç. Sandbox kabuk komutlarını macOS, Linux ve WSL2’de işletim sistemi düzeyinde sınırlar.

Hook’lar. Her düzenlemeden sonra çalışan bir biçimlendirici artık Claude’un hatırlamasına bağlı değildir:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }
        ]
      }
    ]
  }
}

Hook’ları yalnızca hiç istisnası olmayan kurallar için kullan; “named export’ları tercih et” CLAUDE.md’de kalır. Claude Code hooks rehberi her olayı ve çıkış kodunu anlatıyor.

İzin modları. Ekim 2026 itibarıyla yeni etkileşimli oturumlar auto modunda başlıyor; bu modda her adım için sana sormak yerine riskli eylemleri bir sınıflandırıcı inceliyor. İyi çalışıyor ama bu bir değerlendirme; dolayısıyla “asla” kuralların yine deny kurallarına ve hook’lara ait. Her adımı onaylamayı tercih edersen Shift+Tab ile Manual’a geç ya da claude --permission-mode manual ile başlat. Manual çok sık soruyorsa /fewer-permission-prompts sık kullandığın salt okuma komutlarını bir izin listesine ekler. İzinleri tamamen atlamanın neden kötü bir takas olduğu Claude Code izinleri atlamak yazısında.

7. Erken yönlendir, tartışmak yerine sıfırla

Bir görevin ilk dakikasını izle. Kontroller az:

  • Esc Claude’u eylemin ortasında durdurur ve o ana kadar olan her şeyi korur; böylece yönünü değiştirebilirsin.
  • /rewind ya da boş bir prompt’ta iki kez Esc, kodu, konuşmayı ya da ikisini birden daha önceki bir prompt’a geri sarar.
  • /clear baştan başlatır. İki başarısız düzeltmeden sonra üçüncüsü çoğunlukla Claude’un yeniden okuyacağı bir başarısız deneme daha ekler. Temizle ve öğrendiklerini içeren daha iyi tek bir prompt yaz.

Checkpoint’ler Claude’un kendi düzenleme araçlarıyla değiştirdiği dosyaları kapsar; yalnızca bir Bash komutunun dokunduğu dosya geri yüklenmez. Git’in yerine değil, yanında çalışırlar. Günlere yayılan işlerde /rename oauth-migration oturuma ad verir, claude --resume oauth-migration de onu daha sonra kaldığı yerden açar.

8. Alt ajanları bilinçli kullan

Claude Code zaten kendi kendine iş devrediyor: geniş aramalar yerleşik Explore ajanına gider ve alt ajanlar varsayılan olarak arka planda çalışır. Her alt ajan kendi isteklerini gönderir; yani token harcar ve bir yanıtı daha akıllı yapmaz. Onları şunlar için kullan:

  • Aynı anda çalışabilecek bağımsız iş parçaları.
  • Tam bir test çalıştırması gibi uzun çıktıları ana konuşmanın dışında tutmak.
  • Kodun nasıl yazıldığını görmemiş bir inceleyici.
  • Ana oturumdan daha az araca sahip olması gereken bir görev.

Salt okuma bir inceleyici, .claude/agents/reviewer.md konumunda kısa bir dosyadır:

---
name: reviewer
description: Reviews changed files against the spec they were built from. Use after implementing a feature, before opening the PR.
tools: Read, Grep, Glob
---
You're reviewing code you didn't write. Compare the changed files against the spec you're given,
check that every requirement is implemented and the listed edge cases have tests,
and report only the gaps that affect correctness. Skip style.

Bir modülü import eden dosyaları toplamak gibi basit işler için tanıma model: haiku ekle. Sonra şöyle iste:

İnceleyiciye rate limiter’ı SPEC.md ile karşılaştırt.

Daha fazla kalıp Claude Code alt ajanlar yazısında.

9. Paralel işleri worktree’lerde çalıştır

Aynı checkout’u düzenleyen iki oturum birbirinin üzerine yazar. Her birine kendi git worktree’sini ver:

claude -w feature-auth

Bir worktree sıfırdan bir checkout’tur; .env gibi gitignore’daki dosyalar orada yoktur ve bağımlılıklar kurulu değildir. Küçük gitignore dosyalarını repo kökündeki .worktreeinclude’a yaz; Claude Code onları oluşturduğu her worktree’ye kopyalar:

.env
.env.local
config/dev-credentials.json

node_modules’ı oraya koyma; bağlamaz, kopyalar. Bunun yerine kurulum komutunu CLAUDE.md’de tut ya da worktree.symlinkDirectories ayarını kullan. Adsız bir worktree oturumundan hiç değişiklik yapmadan çıktığında Claude Code onu siler; aksi halde sorar. Tek büyük mekanik bir değişiklik için /batch işi birimlere böler, her birini kendi worktree’sinde çalıştırır ve birim başına bir PR açar. Daha fazlası Git worktree ile paralel geliştirme yazısında.

10. Diff’i oku, küçük commit at, push’u kendin yap

Ajan yazar; sen onaylarsın. Bir turu kabul etmeden önce özeti değil git diff’i oku. Çalışan her adımdan sonra commit at ki kötü bir sonraki adım bir git reset uzaklıkta olsun. Push’ları, merge’leri ve deploy’ları bir insanın arkasında tut: yukarıdaki git push * için ask kuralı tam olarak bunu yapar. @src/middleware/rateLimiter.ts dosyasını yazılırken izlememiş ikinci bir oturumun incelemesi, elindeki en ucuz bağımsız inceleyicidir.

Bonus: Claude’u gözetimsiz bırakmadan önce

Resmi belgeler, kimsenin izlemediği her çalıştırma için beş soru sıralıyor. İyi bir son kontrol oluyorlar:

  1. Bitmiş halin neye benzediğini biliyor mu? Bir hedef, bir spec dosyası, başarısız bir test.
  2. Kendi işini kontrol edebiliyor mu? Testler, bir Stop hook’u, bir inceleme adımı.
  3. Neye dokunabilir? İzin kuralları, dontAsk, sandbox, bir worktree.
  4. Onu ne durdurur? --max-turns, --max-budget-usd, bir harcama limiti.
  5. Sonuç nereye gidiyor ve kim onaylıyor? Bir PR ve merge’ü onaylayan bir insan.

Betikli ve CI çalıştırmaları için Claude Code headless mod yazısına bak.

AgentVera ile yapmak

Bu kontrol listesinin çoğu disiplinle ilgili; birden fazla oturum çalıştırdığında AgentVera birkaç maddeyi kolaylaştırır. Çalışma alanındaki her panel gerçek Claude Code terminalidir; Shift+Tab, plan modu, hook’lar ve CLAUDE.md’n her zamanki gibi çalışır. Git panelinden her ajan için bir worktree oluşturabilirsin; ajan koordinasyonu da iki ajan aynı dosyayı düzenlediğinde uyarır.

  1. madde için otomatik kod incelemesi, seçtiğin bir Claude modeline her turun değişikliklerini inceletir, bulguları önem derecesi ve dosya:satır ile listeler ve bunları ajana geri gönderebilir. Verify (Pro ve Team) mesajını kabul kriterlerine çevirir ve tur bittiğinde ayrı bir doğrulayıcının bunları kanıtla kontrol etmesini sağlar. 7. madde için kontrol noktaları her turun anlık görüntüsünü gizli bir git ref’ine alır ve ajan başına son 60 tanesini saklar. Izgara, worktree’ler, kod incelemesi ve kontrol noktaları ücretsiz planda; denemek için AgentVera’yı indir.

Toparlarsak

Yalnızca üç maddeyi benimseyeceksen şunları al: gerçek komutlarını içeren kısa bir CLAUDE.md, Claude’un “bitti” demeden önce çalıştırdığı bir kontrol ve görevler arasında /clear. Asla olmaması gereken şeyler için deny kuralları ve hook’lar ekle, oturumları paralel çalıştırmaya başladığında worktree’lere geç; son incelemeyi ve push’u kendine sakla.

Sık sorulanlar

Claude Code’da en faydalı tek alışkanlık hangisi?

Claude’a kendi işini kontrol etmenin bir yolunu vermek. Tam test, typecheck ve lint komutlarını CLAUDE.md’ye yaz, prompt’unda kontrolü adıyla an ve Claude bitti dediğinde komutu ve çıktısını iste. Kontrol yoksa “bitti” yalnızca Claude’un durduğu anlamına gelir.

CLAUDE.md ne kadar uzun olmalı?

Kısa. Claude Code onu her oturuma yükler, yani her satır her görevde biraz dikkat harcar. Resmi bellek rehberi 200 satırın altında kalmayı öneriyor. İlk taslak için /init çalıştır, sonra çoğunlukla sil: komutları, tuzakları ve kodda görünmeyen kararları tut.

/clear mı kullanmalıyım, /compact mı?

Alakasız görevler arasında /clear kullan; hiçbir maliyeti yok ve sonraki görev eski geçmişin bedelini ödemeyi bırakır. Aynı göreve daha kısa bir geçmişle devam etmek istediğinde /compact’ı bir odakla kullan, örneğin “/compact keep the API changes and the test commands”.

Claude Code’un sormadan komut çalıştırmasına izin vermek güvenli mi?

Ekim 2026 itibarıyla etkileşimli oturumlar auto modunda başlıyor; bu modda riskli eylemleri bir sınıflandırıcı inceliyor. Bu bir değerlendirme, kesin bir kural değil; asla olmaması gereken her şey deny kurallarına, hook’lara ya da sandbox’a ait. Her adımı onaylamak istersen Shift+Tab ile Manual moda geçersin.

Birkaç Claude Code oturumunu çakışma olmadan aynı anda nasıl çalıştırırım?

Her oturuma kendi git worktree’sini ver, örneğin claude -w feature-auth ile. Her worktree kendi dalında ayrı bir checkout olduğu için düzenlemeler çakışamaz. .env gibi gitignore’daki dosyaları .worktreeinclude’a yaz ki yeni worktree’lere kopyalansın.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer yazılar