Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Claude Code'a Giriş: Kurulum, İlk Session ve Agentic Loop'u Anlamak
Claude Code'a başlarken en pahalı hata yanlış hesapla giriş yapmaktır: şirket repo'sunda şirketin Team ya da Enterprise hesabını kullan, aktif kimliği /status ile kontrol et. Windows'ta native installer, WinGet ve WSL kurulumu, Git for Windows ile Bash ve PowerShell tool'u farkı, agentic loop'un üç aşaması ve Bookstore'da ilk küçük, testle doğrulanan değişiklik.
CLAUDE.md ve Memory: Claude Code'a Projenizi Öğretmek
CLAUDE.md bir kural motoru değil, context'tir: Claude onu system prompt'tan sonra bir mesaj olarak okur ve uymaya çalışır, ama kesin engel için permission kuralı ya da hook gerekir. Dosya konumları ve yüklenme sırası, 200 satır sınırı, import'lar, .claude/rules/ ile path'e özel kurallar, AGENTS.md desteği, auto memory ve Bookstore için kısa bir CLAUDE.md.
Permission Mode'ları, Settings ve Sandbox: Claude Code'u Kontrollü Çalıştırmak
Claude Code'da neye izin verildiğini CLAUDE.md değil, Claude Code'un kendisinin uyguladığı permission kuralları belirler: deny her seviyede ve her modda kazanır, ama Bash kuralı programı değil komut metnini eşler. Altı permission mode, Auto mode classifier'ı, settings.json katmanları ve öncelik, allow/ask/deny sözdizimi, Bookstore'un ekip ayarları ve native Windows'ta olmayan sandbox.
Plan Mode ve Günlük İş Akışı: Keşfet, Planla, Uygula, Doğrula ve Context'i Yönetmek
Claude Code'da büyük bir özelliği güvenle yaptırmanın yolu önce plan mode'da dosya listesi içeren bir plan almak, onu Ctrl+G ile düzeltip onaylamak ve her doğrulanan katmandan sonra commit atmaktır; checkpoint'ler Bash'in değiştirdiği dosyaları ve veritabanını geri almaz. Plan onay seçenekleri, /goal ile bitiş koşulu, compaction ve Compact Instructions, /clear, /resume, /branch ve /rewind.
Claude Code'da Skills ve Slash Command'lar: Tekrar Eden İşleri Paketlemek
Claude Code'da tekrar eden bir prosedürün yeri CLAUDE.md değil skill'dir: session başında yalnız açıklaması listelenir, içeriği çağrılınca yüklenir; yan etkili işlerde disable-model-invocation ile yalnız senin çağırmana izin verilir. Bundled skill'ler, custom command'ların skill'lerle birleşmesi, konumlar ve öncelik, allowed-tools'un kısıt değil izin olması, Bookstore için /add-migration ve angular-component skill'leri.
Claude Code'da Subagent'lar: Context'i Bölmek, Uzmanlaştırmak ve Paralel Çalıştırmak
Claude Code'da subagent, ana session'ın bir yan işi devrettiği ve kendi context window'unda çalışan ayrı bir Claude örneğidir: konuşma geçmişini görmez, CLAUDE.md'yi görür ve ana konuşmaya yalnız özet döndürür. .claude/agents/ dosya formatı, tools allowlist'i, model ve memory alanları, arka plan ve fork, worktree izolasyonu; Bookstore için ef-query-reviewer, angular-a11y-checker ve test-runner.
Claude Code Hooks: Kuralları Zorlamak, Formatlamak ve Testleri Otomatik Çalıştırmak
Claude Code'da bir kuralı kesin uygulamanın yolu CLAUDE.md değil hook'tur: Claude Code belli bir anda senin script'ini çalıştırır ve exit code 2 ya da deny kararı tool çağrısını durdurur. Event, matcher ve handler yapısı, stdin JSON'u, exit code'lar, PowerShell ile Windows'ta hook yazmak; Bookstore için commit'lenmiş migration koruması, değişen dosyayı formatlama, test çıktısını kısaltma ve Stop kontrolü.
Claude Code'a MCP Server Bağlamak: Bookstore MCP Server'ı, Veritabanı ve Tarayıcı
Claude Code'a MCP server'ı claude mcp add ile ya da ekip için repo kökündeki .mcp.json ile bağlarsın; proje server'ları interaktif session'da onay ister, claude -p'de sorulmadan yüklenir. Scope'lar, ${VAR} genişletmesi, tool search ve çıktı sınırları; Bookstore için C# MCP server'ı, salt okunur login ve DBHub ile SQL Server, Playwright MCP ve ui-tester subagent'ı.
Paralel Çalışma: Worktree'ler, Desktop, Cloud Session'ları ve Mobilden Takip
Claude Code'da paralel iş için her session'ı claude --worktree ile kendi git worktree'sinde başlat; dosyalar ayrılır ama user-secrets, veritabanı ve port'lar ayrılmaz. Worktree temizliği, .worktreeinclude, paylaşılan onaylar ve hook'lar, Bookstore için worktree başına veritabanı; Desktop, VS Code ve JetBrains, cloud session'ları, --teleport, Remote Control ve mobil uygulama.
Headless Claude Code ve CI: `claude -p`, GitHub Actions ve Pull Request Review
Claude Code'u script'ten ve CI'dan claude -p ile çalıştırırsın; --bare proje hook'larını ve MCP server'larını dışarıda bırakır, dontAsk soru sorulacak her çağrıyı reddeder, --max-turns ve --max-budget-usd maliyeti sınırlar. Structured output ile release note taslağı, anthropics/claude-code-action@v1 ile @claude ve PR review workflow'ları, kimlik bilgisi seçenekleri, Code Review ve /code-review ultra farkı.
Ekipte Claude Code: Paylaşılan .claude Klasörü, Plugin'ler, Output Style'lar ve Managed Settings
Ekipte Claude Code ayarını paylaşmanın yolu, skill, subagent, hook ve MCP ayarını bir plugin'de toplayıp repo'daki bir marketplace'ten dağıtmaktır; organizasyon da managed settings ile girişi, sürümü, marketplace'leri ve hook'ları sınırlar. Bookstore için bookstore-dev plugin'i, adların ve izin kurallarının değişmesi, code intelligence plugin'leri, Learning ve özel output style, allowManagedHooksOnly ve CI'daki etkisi.
Claude Agent SDK'ya Giriş: Claude Code'u Kütüphane Olarak Kullanmak
Claude Agent SDK, Claude Code'un tool'larını, agent loop'unu ve permission sistemini TypeScript ve Python'dan çağırmanı sağlar; her query() ayrı bir Claude Code süreci başlatır. Bookstore için gece çalışan bir bağımlılık raporu agent'ı: settingSources, tools, allowedTools ve dontAsk ile dar yetki, structured output, tur ve bütçe sınırı, env tuzağı ve GitHub Actions ile zamanlama.