Claude Code Notları: Gerçekten Nasıl Çalışıyor?
Claude Code; otomatik tamamlama yapan sıradan bir yardımcı değil, kod tabanını okuyup plan çıkaran, değişiklik yapan, test çalıştıran ve sonucu doğrulayan ajanik bir geliştirme aracı.
Bu yazı, paylaşılan içeriğin sadeleştirilmiş ve yayınlanabilir bir Türkçe versiyonudur. Kapak notları, çeviri açıklamaları ve PDF düzenine ait ek metinler çıkarılmıştır.
Ana kaynak: https://x.com/axel_bitblaze69/status/2037978621684621428?s=46
Claude Code gerçekte nedir?
Claude Code, Copilot benzeri bir satır tamamlama aracı gibi çalışmaz. Bir sohbet penceresine kod yapıştırıp cevap beklediğin klasik yapıdan da farklıdır. Asıl gücü, bir yazılım ajanı gibi davranmasından gelir.
Temel olarak şunları yapabilir:
- Kod tabanının tamamını okuyabilir.
- İzlenecek yaklaşımı planlayabilir.
- Birden fazla dosyada değişiklik yapabilir.
- Testleri çalıştırabilir.
- Hataları görüp düzeltebilir.
- İş tamamlanana kadar bu döngüyü sürdürebilir.
Buradaki ana fikir şu: sen tek tek satır yazdırmıyorsun; ne istediğini anlatıyorsun, o da oraya nasıl gidileceğini çözmeye çalışıyor.
Nerelerde çalışır?
Claude Code artık yalnızca terminalde çalışan bir CLI aracı değil. Farklı yüzeylerde kullanılabiliyor:
- Terminal: En güçlü ve en doğal kullanım alanı.
- VS Code eklentisi: Satır içi diff’ler, mention desteği ve yan panel konuşmaları sunuyor.
- JetBrains eklentisi: IntelliJ ekosistemine benzer deneyim getiriyor.
- Masaüstü uygulaması: Görsel diff inceleme, çoklu oturum ve zamanlanmış görevler gibi özellikler sunuyor.
- Web uygulaması: Yerel kurulum olmadan uzun işleri başlatmaya izin veriyor.
- Mobil uzaktan kontrol: Bilgisayarda başlayan oturum telefondan yönetilebiliyor.
- Slack: Çalışma alanı içinden çağrılabiliyor.
- GitHub Actions / GitLab CI/CD: PR ve CI akışlarına entegre olabiliyor.
Özellikle uzaktan kontrol fikri güçlü: evde çalışan makinedeki oturumu telefondan takip edip müdahale edebilmek, klasik “AI yardımcı” çizgisinin ötesine geçiyor.
Hızlı başlangıç
Kurulum tarafı oldukça sade:
# macOS / Linux
curl -fsSL https://claude.ai/install.sh | bash
# Windows
irm https://claude.ai/install.ps1 | iex
# Homebrew
brew install --cask claude-code
Sonrasında:
cd your-project
claude
İlk denemeler için güzel bir komut:
claude "Bu proje ne yapıyor?"
Bunu sorduğunda repo’yu tarayıp mimariyi anlamaya çalışması ve sana özet çıkarması, aracın asıl farkını hemen hissettiriyor.
Modeller ve maliyet
Claude Code, farklı modellerle çalışıyor. Hangi modeli hangi işte kullandığını bilmek ciddi fark yaratıyor.
Modeller
- Claude Opus 4.6: Karmaşık mimari kararlar, zor debug senaryoları ve büyük refactor işleri için.
- Claude Sonnet 4.6: Hız, maliyet ve kalite dengesiyle günlük kullanım için en mantıklı seçenek.
- Claude Haiku: Basit görevler, hızlı okumalar ve alt ajanlar için uygun.
Model geçişi yapılabiliyor:
/model opus
claude --model opus
Effort ayarı
Model dışında düşünme derinliği de ayarlanabiliyor:
/effort low
/effort high
/effort max
Buradaki mantık basit: küçük iş için büyük model yakma. Değişken adı düzeltmeye Opus açmak gereksiz. Ama auth mimarisini baştan ele alıyorsan Haiku ile de kumar oynama.
Maliyet tarafı
Metindeki ana fikir şu: maliyeti romantikleştirmemek lazım. Günlük işlerin büyük kısmında Sonnet yeterli. Opus’u gerçekten gerektiğinde açmak daha mantıklı.
Maliyeti yönetmek için öne çıkan öneriler:
- İşlerin çoğunda Sonnet kullan.
- Gürültülü işleri alt ajanlara böl.
/compactile uzun konuşmaları özetlet.- Alakasız görevler arasında
/clearkullan. CLAUDE.mddosyasını kısa ve net tut.
.claude klasörü ve yükleme sırası
Claude Code davranışını şekillendiren temel yerlerden biri .claude klasör yapısı.
İki ana yapı var:
- Proje içindeki
.claude/klasörü: Takımla paylaşılır, Git’e girer. ~/.claude/klasörü: Kişisel tercihler, makineye özel ayarlar ve oturum geçmişi burada tutulur.
Bu ayrım önemli çünkü biri ekip standardı, diğeri kişisel çalışma biçimi içindir.
CLAUDE.md, CLAUDE.local.md ve rules
Oturum başında okunan en kritik dosya CLAUDE.md dosyasıdır. Bu dosya, sistem prompt’una en yakın çalışan yapı gibi düşünülebilir.
Buraya yazılabilecek şeyler:
- Build / test / lint komutları
- Temel mimari kararlar
- Bariz olmayan tuzaklar
- İsimlendirme ve import kuralları
- Hata yönetimi yaklaşımı
- Klasör yapısına dair kısa notlar
Buraya yazılmaması gerekenler:
- Linter ve formatter’ın zaten yönettiği konular
- Gereksiz uzun dokümantasyon metinleri
- Teorik ve dolgu paragraflar
Pratik eşik net: 200 satır altında tut.
Örnek bir CLAUDE.md
Project: Acme API
Commands
npm run dev # Start dev server
npm run test # Run tests (Jest)
npm run lint # ESLint + Prettier check
npm run build # Production build
Architecture
- Express REST API, Node 20
- PostgreSQL via Prisma ORM
- All handlers live in src/handlers/
- Shared types in src/types/
Conventions
- Use zod for request body validation
- Return shape is always { data, error }
- Never expose stack traces to the client
- Use the logger module, not console.log
Watch out for
- Tests use a real local DB, not mocks
- Strict TypeScript: no unused imports
CLAUDE.local.md
Bu dosya kişisel tercihler içindir. Takımla paylaşılmayan ama senin çalışma biçimini etkileyen notlar burada tutulur.
rules/
Büyüyen projelerde tek büyük dosya yerine modüler kurallar daha iyi ölçeklenir:
.claude/rules/
├── code-style.md
├── testing.md
├── api-conventions.md
└── security.md
Ayrıca path bazlı kurallar da tanımlanabiliyor. Yani sadece belirli dosya tiplerinde yüklenen kurallar yazmak mümkün.
Çalışma tarzını değiştiren özellikler
Claude Code’u “iyi yardımcı” seviyesinden çıkaran şeylerden biri, tek oturumda çok dosyalı işleri toparlayabilmesi.
Mesela şöyle bir komut:
claude "Kimlik doğrulama sistemini session yerine JWT token kullanacak şekilde refactor et"
Bunun ardından şunları zincir halinde yapabiliyor:
- İlgili dosyaları bulmak
- Middleware’i güncellemek
- Route’ları değiştirmek
- Testleri düzeltmek
- Konfigürasyonu yenilemek
- Importları toparlamak
Bu yaklaşım, özellikle repo genelini etkileyen değişikliklerde çok güçlü.
Git entegrasyonu
Claude Code git ile de doğal biçimde çalışıyor:
claude "Değişikliklerimi açıklayıcı bir mesajla commit et"
claude "Bu özellik için bir PR oluştur"
claude "Bu merge conflictleri çözmeme yardım et"
claude "Son 5 committe ne değiştiğini ve etkisini açıkla"
Asıl artı nokta şu: yalnızca “şu değişti” demiyor, çoğu zaman neden değiştiğini de iyi özetliyor.
Alt ajanlar ve özel ajanlar
Alt ajanlar, ana bağlamı boğmadan işleri izole alanlarda yürütmeye yarıyor.
Öne çıkan türler:
- Explore agent: Araştırma ve okuma odaklı
- Plan agent: Kod yazmadan önce analiz yapan
- General agent: Temiz bağlamda karmaşık işleri üstlenen
Neden önemli? Çünkü log yığınları, test çıktıları ve uzun taramalar ana pencereyi çöp kutusuna çevirebiliyor. Alt ajanlar bu gürültüyü temiz tutuyor.
Özel ajan tanımı örneği
---
name: security-reviewer
description: Expert code reviewer for security vulnerabilities. Use PROACTIVELY when reviewing PRs or before deployments.
model: sonnet
tools: Read, Grep, Glob
---
You are a senior security engineer. When reviewing code:
- Flag bugs, not just style issues
- Check for SQL injection and XSS risks
- Look for exposed credentials or secrets
- Check authentication and authorization gaps
- Note performance concerns only when they matter at scale
Buradaki kritik fikir: ajana ihtiyacı kadar araç ver. Yazma yetkisi gerekmiyorsa verme.
MCP (Model Context Protocol)
MCP, Claude Code’u sadece kod yazan bir araç olmaktan çıkarıp iş akışlarının merkezine koyuyor.
Bağlanabildiği sistemlerden bazıları:
- GitHub
- Slack
- Postgres / MySQL
- Jira
- Figma
- Puppeteer / Playwright
- Sentry
- Notion
Örnek .mcp.json
{
"mcpServers": {
"github": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token"
}
}
}
}
Olası kullanım örnekleri
claude "GitHub repomuzdaki 'critical' etiketli açık bug'ları bul ve özetle"
claude "Bu hafta kayıt olan kullanıcı sayısını veritabanından çek ve sonucu Slack'te #metrics kanalına yaz"
claude "Sentry'deki bu haftanın en büyük 5 hatasını bul ve her biri için GitHub issue oluştur"
Asıl güç burada: sekme sekme gezmeden, tek konuşma içinden farklı sistemleri orkestre edebilmek.
Hooks
CLAUDE.md bir yönerge sistemiyse, hook’lar daha deterministik davranış katmanı gibi düşünülebilir.
En sık geçen olay türleri:
- PreToolUse: Araç çalışmadan önce
- PostToolUse: Araç tamamlandıktan sonra
- Stop: Görev bitişinde
- UserPromptSubmit: Prompt gönderildiğinde
- Notification: Bildirim gerektiğinde
Hook örneği
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit|MultiEdit",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs npx prettier --write 2>/dev/null"
}
]
}
],
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/bash-firewall.sh"
}
]
}
]
}
}
Burada örneğin:
- Dosya değişince otomatik prettier çalıştırılabilir.
- Tehlikeli bash komutları engellenebilir.
- Testler geçmeden görev tamamlandı sayılmayabilir.
Not: hook değişiklikleri genelde hot-reload olmaz. Oturumu yeniden başlatmak gerekir.
Skills
Skills, tekrar kullanılabilir iş akışlarıdır. Tek satırlık komutlardan daha güçlüdür çünkü yanında destekleyici dosyalar da taşıyabilirler.
Yapı şu şekilde olabilir:
.claude/skills/
├── security-review/
│ ├── SKILL.md
│ └── DETAILED_GUIDE.md
└── deploy/
├── SKILL.md
└── templates/
└── release-notes.md
Örnek skill
name: security-review
description: Comprehensive security audit. Use when reviewing code for vulnerabilities, before deployments, or when the user mentions security.
allowed-tools: Read, Grep, Glob
Analyze the codebase for security vulnerabilities:
- SQL injection and XSS risks
- Exposed credentials or secrets
- Insecure configurations
- Authentication and authorization gaps
- Report findings with severity ratings and specific remediation steps.
Reference @DETAILED_GUIDE.md for our security standards.
Burada mantık şu: komut değil, küçük bir operasyon paketi tanımlıyorsun.
Plan modu, bellek ve computer use
Plan mode
Büyük bir değişiklikten önce analiz yaptırmak için çok faydalı.
claude "Veritabanı katmanını analiz et ve TypeORM’a geçiş için bir plan öner"
Burada amaç hemen kod yazdırmak değil; önce harita çıkarmak.
Bellek sistemi
Claude bazı tercihleri zamanla hatırlayabiliyor. Mesela “bu projede class component kullanmıyoruz” gibi tercihlerin sonraki oturumlara taşınması mümkün.
Computer use
Metne göre bu özellik, Claude’un doğrudan bilgisayarı kontrol etmesine kadar gidiyor:
- Uygulama açmak
- Tarayıcıda gezinmek
- Spreadsheet doldurmak
- GUI ile etkileşmek
- Ekran görüntüsü almak
Bu alan hâlâ deneysel görünse de etkisi büyük olabilir.
Güçlü kullanıcı iş akışları
“Interview me” tekniği
Karmaşık bir işi başlatırken dev prompt yazmak yerine şunu demek daha iyi olabilir:
claude "Ne inşa etmek istediğim hakkında beni detaylı şekilde mülakata al"
Bu yöntem, senin yazmayı unuttuğun ayrıntıları sorularla ortaya çıkarır.
Araştır → uygula ayrımı
Önce anlamasını sağla, sonra uygulattır. Özellikle legacy projelerde kalite farkı ciddi oluyor.
Worktree ile paralel iş
terminal 1: claude --worktree auth-feature
terminal 2: claude --worktree billing-feature
Ayrı branch ve ayrı bağlamlarda paralel ilerlemek üretkenliği ciddi artırabilir.
Bağlam yönetimi
İyi kullanıcı ile çok iyi kullanıcı arasındaki fark çoğu zaman burada oluşuyor.
Öneriler:
/compactile özet al- Görevler arasında
/clearkullan /costile token tüketimini izle- Uzun log ve test çıktılarını alt ajanlara ver
- Tekrarlayan talimatları konuşmaya değil
CLAUDE.mddosyasına taşı
Altın kural: aynı şey iki kez patladıysa zorlamayı bırak, temiz bağlamla yeniden başla.
! öneki
Bir komutu doğrudan shell’de çalıştırmak için:
!git status
!npm test
!cat src/config.ts
Harici editör
Uzun prompt’larda Ctrl+G kullanmak çok daha rahattır.
Rewind
İki kez Escape ile yanlış yöne giden işi geri sarabilmek bayağı işe yarıyor.
İzin modları ve kısayollar
Öne çıkan modlar:
- default: Her yeni araç için izin ister.
- acceptEdits: Dosya düzenlemelerini otomatik kabul eder, komutlar için sorar.
- plan: Salt-okunur analiz modudur.
- auto: Güvenlik sınıflandırıcısıyla otomatik onay verir.
- bypassPermissions: Her şeyi onaylar; sadece kontrollü ortamlarda düşünülmeli.
Örnek izin tanımı
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git status)",
"Bash(git diff *)",
"Read",
"Write",
"Edit"
],
"deny": [
"Bash(rm -rf *)",
"Bash(curl *)",
"Read(./.env)",
"Read(./.env.*)"
]
}
}
Bu yapı, sürekli mikroyönetim yapmadan güvenli sınırlar koymayı sağlıyor.
Hatırlamaya değer kısayollar
Enter: Mesaj gönderirShift+Tab: Modlar arasında geçerCtrl+C: Mevcut işlemi keserCtrl+G: Harici editörü açarCtrl+R: Geçmişte arama yaparEscape, Escape: Rewind menüsünü açarMeta+0: Hızlı modu açıp kapatır/: Tüm komutları gösterir
Claude Code vs Cursor vs Copilot
Metindeki dürüst kıyas şu çizgide:
Claude Code
- Terminal-native
- Daha ajanik
- Kod tabanının tamamını okuyup çok dosyalı işleri daha iyi yönetiyor
- Büyük refactor, mimari ve zor debug işlerinde güçlü
Cursor
- IDE-native
- Günlük kullanımda akıcı
- Küçük düzenlemelerde geri bildirim döngüsü hızlı
GitHub Copilot
- Daha klasik eklenti mantığı
- Kurumsal tarafta sade ve güvenli tercih olarak görülebiliyor
- Ajanik tarafta gelişiyor ama bu yazıdaki görüşe göre diğer ikisinin gerisinde
Asıl nokta şu: tek araç seçmek zorunda değilsin. Günlük akışta Cursor, ağır kaldırmada Claude Code gayet mantıklı bir kombinasyon olabilir.
Ekosistem
Claude Code etrafında büyüyen bazı dikkat çekici araçlar ve topluluk üretimleri var:
- Superpowers
- GSD / get-shit-done
- awesome-claude-code
- /last30days skill
- Claude How-To
- Claude Mem
- UI UX Pro Max
- n8n-MCP
Buradaki vurgu, teorik liste değil; pratikte iş gören araçlar olması.
Yaygın hatalar
Metinde özellikle öne çıkan hatalar şunlar:
-
CLAUDE.mdiçine roman yazmak
Kısa, spesifik ve uygulanabilir kal. -
Görevler arasında
/clearkullanmamak
Eski bağlam yeni görevi bozabilir. -
Başarısız bağlamı zorlamaya devam etmek
İki kez patladıysa temiz başla. -
Alt ajanları kullanmamak
Uzun log ve test çıktıları ana konuşmayı boğar. -
Her işte Opus kullanmak
Sonnet çoğu işte yeterlidir. -
Büyük değişikliklerde plan modunu atlamak
Önce plan, sonra uygulama. -
Bağlamı aktif yönetmemek
Bağlam penceresi de bir kaynaktır.
Son söz
Bu yazının en güçlü iddiası şu: Claude Code bir araç gibi değil, zamanla bir takım arkadaşı gibi davranmaya başlıyor.
Kod tabanını okuyabilen, standartları takip eden, test çalıştıran, PR açabilen, tercihlerini hatırlayan ve diğer araçlara bağlanabilen bir sistemden bahsediyoruz.
Meselenin özü de burada:
AI hakkında okumak başka şey, onunla gerçekten üretim yapmak başka şey.
Claude Code tarafında fark yaratan kullanıcılar, sadece komut verenler değil; bağlamı yönetenler, kuralları iyi tanımlayanlar ve aracı bir iş ortağı gibi kullananlar oluyor.