🏠 Ana Sayfa 📖 Sözlük 💬 Doküman asistanı
Ana sayfaAI Araçları & VerimlilikClaude Code in Action

Claude Code in Action — Geliştirici Pratiği Referansı

Claude Code (CLI) için kapsamlı pratik notlar. Coding assistant temellerinden başlayıp CLAUDE.md bağlam yönetimine, custom command ve hook'lara, MCP server entegrasyonuna ve Claude Code SDK'ya kadar 13 bölüm — geliştirici masasında günlük kullanım için hazır.

💡 Not Bu sayfa Claude API Geliştirici Referansı ile aynı mantıkta yapılandırılmıştır: kod örnekleri ve teknik terimler İngilizce orijinal haliyle korunur, anlatım Türkçedir. Hızlı gezinme için aşağıdaki içindekiler listesini kullanın.

1. Coding Assistant Nedir?

Bir coding assistant, dil modelini araç (tool) kullanımı ile birlikte çalıştırarak kod yazma ve geliştirme görevlerini tamamlayan sistemdir.

Çekirdek Süreç (Core Process)

  1. Görev alır — örn. error mesajından bug fix talebi
  2. Bağlam toplar — dosyaları okur, codebase'i anlar
  3. Plan yapar — sorunu çözmek için adım planı oluşturur
  4. Aksiyon alır — dosyaları günceller, test çalıştırır

Temel kısıt: Dil modelleri yalnızca text input/output işler — doğrudan dosya okuyamaz, komut çalıştıramaz, dış sistemlerle etkileşmez.

Tool Use System — Aksiyon Mekanizması

Dil modelinin aksiyon alabilmesi için coding assistant şu döngüyü kurar:

  1. Assistant, kullanıcı isteğine instruction'lar ekler
  2. Instruction'lar formatlanmış aksiyon yanıtlarını tanımlar (örn. "read file: filename")
  3. Dil modeli formatlanmış aksiyon isteğiyle yanıt verir
  4. Assistant gerçek aksiyonu yürütür (dosyayı okur, komut çalıştırır)
  5. Sonuçlar dil modeline geri gönderilir → final response üretilir

Claude Modellerinin Avantajı

  • Diğer dil modellerine kıyasla üstün tool use yetkinliği
  • Tool fonksiyonlarını anlama ve karmaşık görevler için bunları birleştirmede daha iyi
  • Claude Code extensible — yeni tool'lar kolayca eklenir
  • Kod aramasında direct search kullanır — codebase'i dış sunuculara göndermez (güvenlik avantajı)

2. Claude Code in Action — Demo Senaryolar

Claude Code'un default tool seti: file read/write, command execution, basic development operations. Pratikteki güç, gerçek senaryolarda görülür:

SenaryoTool KullanımıSonuç
Performance optimization Chalk (5. en çok indirilen JS paketi, 429M haftalık) için benchmark + profiling tools, todo list, bottleneck analizi 3.9× throughput iyileşmesi
Data analysis Video streaming churn analizi: Jupyter notebook'ta CSV verisi, hücre hücre çalıştırma, sonuçları görerek sonraki analizleri customize etme İteratif keşif analizi
Tool extensibility Playwright MCP server: browser açma, screenshot, UI styling güncelleme, görsel feedback ile iterasyon Otomatik prompt iyileştirme + daha iyi UI
GitHub integration GitHub Actions içinde PR review; Terraform AWS infra'da DynamoDB + S3 dış paylaşımı + Lambda'da PII output kombinasyonu PR review'da otomatik PII exposure tespit
✅ Temel prensip Claude Code = takımın ihtiyaçlarıyla tool genişlemesi üzerinden büyüyen esnek bir asistan; sabit fonksiyonlu bir araç değil.

3. Bağlam Ekleme (Adding Context)

Bağlam yönetimi Claude Code etkinliği için kritik. Çok fazla irrelevant bilgi performansı düşürür; az ama doğru bağlam ise yapılan iş kalitesini belirler.

/init komutu

İlk çalıştırmada tüm codebase analiz edilir, otomatik CLAUDE.md dosyası oluşur. İçinde proje özeti, mimari, kritik dosya referansları yer alır. Bu dosyanın içeriği her request'e dahil edilir.

3 tip CLAUDE.md

  • Project level — takımla paylaşılır, source control'e commit edilir
  • Local level — kişisel notlar, commit edilmez
  • Machine level — tüm projeler için global instruction'lar

Memory mode (# sembolü)

CLAUDE.md dosyalarını doğal dil isteğiyle akıllıca düzenlemek için kullanılır. Örnek: # proje SQL dialect'i Postgres, asla MySQL syntax önerme yazınca Claude bunu CLAUDE.md'ye uygun şekilde yerleştirir.

@ sembolü ile dosya mention

Belirli dosyaları request'e dahil etmek için kullanılır. Claude'un kendi başına aramasını beklemek yerine hedeflenmiş bağlam sağlar. Örnek: @src/db/schema.sql tablo yapısına göre yeni bir migration yaz

✅ Best Practice Database schema, kurumsal API endpoint listesi, branch adlandırma kuralları gibi kritik dosyaları CLAUDE.md'de referans verin — her zaman bağlam olarak hazır olur.

4. Değişiklik Yapma (Making Changes)

Screenshot integration

Control-V (macOS'ta Command-V değil) ile screenshot yapıştırılır. Claude UI'daki belirli bir elementi anlamak için görseli okur.

Plan Mode

Shift + Tab iki kez basılarak aktive edilir. Claude daha fazla dosya araştırır, yürütmeden önce detaylı bir implementation plan oluşturur.

Ne zaman: Çok adımlı, codebase'in birçok yerini etkileyen görevler.

Thinking Mode

"Ultra think" gibi tetikleyici ifadelerle aktive edilir. Karmaşık logic için Claude'a extended reasoning budget verir.

Ne zaman: Tricky logic, debugging, derinlik gereken tek-noktada problem.

ModGüçlü olduğu boyutTipik kullanımMaliyet
PlanGenişlik (breadth)Çok dosyalı, çok adımlı görevlerEk token
ThinkingDerinlik (depth)Tek konuda derin akıl yürütmeEk token
İkisi birlikteGenişlik + derinlikKarmaşık refactoringEn yüksek token

Git integration: Claude Code, değişiklikleri git stage + commit edebilir ve descriptive commit message yazar.

📌 Tipik akış Sorunlu alanı screenshot al → Control-V ile yapıştır → istediğin değişikliği anlat → karmaşık görev için Plan/Thinking aktive et → implementation'ı review edip kabul et.

5. Bağlam Kontrolü (Controlling Context)

TeknikNe yaparNe zaman kullan
Escape (1×) Claude'u yanıt ortasında durdurur, konuşmayı yönlendirmeye olanak verir Yanlış yöne gidiyorsa hemen kes
Escape + Memory Durdur + # ile tekrarlayan hatayı CLAUDE.md'ye not düş Aynı hatayı sürekli yapıyorsa kalıcı not bırak
Double Escape Konuşmayı geriye sarar, eski mesajları gösterir, geri noktaya zıplama imkanı verir Uzun debugging gidiş-gelişinden sonra eski temiz noktaya dön
Compact Command Tüm conversation history'yi özetler, Claude'un öğrendiği bilgi korunur Claude bilgi biriktirdi ama conversation kalabalıklaştı
Clear Command Tüm conversation'ı siler, sıfırdan başlar Tamamen ilgisiz yeni bir göreve geç
✅ Temel fayda Odak korunur, dağıtıcı bağlam azalır, ilgili bilgi muhafaza edilir, tekrar eden hatalar engellenir. En etkili olduğu yer: uzun konuşmalar ve görev geçişleri.

6. Custom Commands (Slash Komutları)

Yapı

  • Konum: Proje dizininde .claude/commands/ klasörü
  • Dosya adı = komut adı: audit.md/audit komutu üretir
  • İçerik: Markdown dosyası — Claude'un yürüteceği instruction'lar
  • Aktivasyon: Komut dosyaları oluşturulduktan sonra Claude Code restart
  • Çalıştırma: /commandname + (opsiyonel) argument string

$arguments placeholder

Komut metnine $arguments ekleyerek runtime parametre alınır. Argument tipi serbest string'dir (file path, açıklama metni vb.).

Örnek: /audit komutu

# .claude/commands/audit.md

Aşağıdaki dosyada güvenlik audit'i yap: $arguments

Kontrol et:
1. SQL injection riski (string concat ile sorgu)
2. Hardcoded secret/API key
3. Yetkisiz dosya erişimi
4. Eksik input validation

Bulduğun her sorun için:
- Dosya:satır referansı
- Risk seviyesi (kritik/yüksek/orta)
- Öneri (1-2 cümle)

Format: Markdown tablo.

Kullanım: /audit src/api/users.py

📌 Komtaş kullanım fikri /komtas-pr (PR template doldur), /komtas-test (eksik birim test üret), /komtas-rls (Cloud SQL row-level security politikası ekle), /komtas-dpia (KVKK DPIA mini-şablonu doldur) gibi şirket içi komutlar oluşturulabilir.

7. MCP Server ile Genişletme

MCP server'lar Claude Code'a yeni yetenekler ekler — yerel veya uzak çalışabilir. Browser otomasyonundan kurumsal API çağrılarına kadar her şeyi mümkün kılar.

Kurulum

claude mcp add [name] [start-command]

İzin yönetimi

İlk tool kullanımı manuel onay ister. Otomatik onay için settings.local.json içindeki allow array'ine "MCP__[servername]" eklenir.

Pratik örnek: Playwright MCP

Claude → localhost:3000 aç → UI component üret → styling kalitesini analiz et → görsel feedback'e göre prompt'u otomatik refine et. Sonuç: belirgin şekilde daha iyi component styling.

✅ Temel fayda MCP server'lar Claude'u kod editing'in ötesine taşır — full development automation. MCP Protokolü sayfasında server yazma detayları.

8. GitHub Integration (Actions)

Claude Code resmi entegrasyonu ile GitHub Actions içinde çalışır.

Kurulum süreci

  1. /install GitHub app komutu çalıştır
  2. Claude Code app'i GitHub'a kur
  3. API key ekle
  4. Auto-generated PR iki GitHub action ekler

Default action'lar

ActionDavranış
Mention support@Claude issue/PR'da → görev assign edilir
PR reviewHer yeni PR'da otomatik code review

Customization

  • Action'lar .github/workflows içindeki config dosyaları üzerinden customize edilir
  • Custom instructions = Claude'a doğrudan context/yön talimatı geçilir
  • MCP server entegrasyonu = Claude dış tool'lara erişebilir (örn. browser test için Playwright)
  • Permission gerekliliği: Claude Code'un her permission'ı + her MCP tool için tekil olarak listelenmesi gerekir (kısayol yok)
📌 Örnek use case Playwright MCP entegrasyonu + dev server setup + Claude PR'da app'i browser'da açar, fonksiyonu test eder, checklist üretir. Otomatik test + issue verification.

9. Hooks — Tanım ve Kullanım

Hooks = Claude'un tool çalıştırması öncesinde veya sonrasında çalışan komutlar. Tool çağrılarını inceleme, engelleme veya feedback verme imkanı sağlar.

Hook tipiNe zaman çalışırBloklamaTipik kullanım
Pre-tool useTool çağrısı öncesi✅ Exit code 2 ile blokSensitive dosya korunması, izin kontrolü
Post-tool useTool çağrısı sonrasıAuto-format, test çalıştır, type check

Konfigürasyon

Settings dosyasına (global / project / personal) eklenir; manuel düzenleme veya /hooks komutuyla. Yapı: 2 bölüm (pre/post), her birinde matcher (hangi tool'lara uygulanır) ve command (yürütülecek komut).

Hook implementation süreci

  1. Hook tipini seç (pre vs post)
  2. Hedef tool name'leri belirle (matcher)
  3. Komut yaz — tool call data'yı stdin'den JSON olarak alır
  4. JSON parse et: tool_name, input parameters
  5. Uygun exit code ile çık
Exit codeAnlam
0Tool çağrısına izin ver
2Tool çağrısını blok et (yalnızca pre-tool use)
stderrBloklarken Claude'a feedback olarak iletilir
📌 Tool name listesi Hangi tool'ların var olduğunu hatırlamak yerine doğrudan Claude'a sor — kullanılabilir tool isim listesini verir.

10. Hook Implementation Örneği — .env Koruma

Amaç: Claude'un .env dosyalarını okumasını engellemek (sırlar dışarı çıkmasın).

.claude/settings.local.json

{
  "hooks": {
    "preToolUse": [
      {
        "matcher": "read|grep",
        "command": "node ./hooks/read_hook.js"
      }
    ]
  }
}

hooks/read_hook.js

#!/usr/bin/env node
// Hook: .env dosyalarına read/grep tool erişimini engeller

let stdinData = '';
process.stdin.on('data', chunk => stdinData += chunk);
process.stdin.on('end', () => {
  try {
    const data = JSON.parse(stdinData);
    const filePath = data.tool_input?.file_path
                  || data.tool_input?.path
                  || '';

    if (filePath.includes('.env')) {
      console.error(
        `🚫 .env dosyasına erişim hook ile engellendi: ${filePath}`
      );
      process.exit(2);  // Block + feedback to Claude
    }
    process.exit(0);    // Allow
  } catch (e) {
    // JSON parse hatası — güvenli tarafa geç, izin ver
    process.exit(0);
  }
});
✅ Test sonucu .env dosyasına read ve grep operasyonları başarıyla bloklandı. Claude blokun nedenini stderr'dan görür ve operasyonu denemeyi bırakır. Hook değişikliklerinden sonra Claude Code restart gerekir.

11. Faydalı Hook'lar

Hook'lar = Claude Code'un yaygın zayıflıklarını (type errors, code duplication) yakalayan otomatik feedback döngüleri.

Hook 1 — TypeScript Type Checker

Sorun: Claude function signature'ı değiştirir ama tüm call site'ları güncellemez → type error.

Çözüm: Post-tool-use hook ile TypeScript dosya edit'inden sonra tsc --no-emit çalıştır.

Süreç: Tip hatası tespit → hata Claude'a feedback olarak gider → Claude call site'ları otomatik düzeltir.

Adapte: Tipli her dilde (Java, Go, Rust) çalışır. Tipsiz dillerde test suite çalıştırılabilir.

Örnek: post-tool-use TypeScript hook

{
  "hooks": {
    "postToolUse": [
      {
        "matcher": "edit|write",
        "command": "bash -c 'tsc --no-emit 2>&1 || (echo \"Type errors above\" >&2; exit 0)'"
      }
    ]
  }
}

Hook 2 — Duplicate Code Prevention

Sorun: Claude karmaşık görevde mevcut query/function'ı kullanmak yerine yenisini üretir.

Çözüm: Watched directory'deki edit'lerde ayrı bir Claude instance başlat (TypeScript SDK ile), yeni kodu mevcut kodla karşılaştır, duplicate bulursa exit code 2 + feedback gönder.

Süreç:

  1. Watched dir'de edit tespit (örn. src/queries/)
  2. SDK ile yeni Claude instance başlat
  3. Yeni kodu mevcutla karşılaştır
  4. Duplicate varsa exit 2 + neden açıkla
  5. Original Claude feedback alır → mevcut kodu reuse eder

Trade-off: Ek zaman + maliyet vs. temiz codebase.

Öneri: Yalnızca kritik dizinler için aktive et (her edit'te değil).

✅ Hook'ların gücü Otomatik feedback loop'lar Claude'un tipik zayıflıklarını self-correction ile çözer. Type check + duplicate prevention birlikte uygulandığında refactoring kalitesi belirgin yükselir.

12. Claude Code SDK

Claude Code SDK = programatik interface. CLI, TypeScript ve Python kütüphaneleri var. Terminal sürümüyle aynı tool'lara sahiptir.

Birincil kullanım

Mevcut process'lere intelligence eklemek için büyük pipeline'lara entegrasyon. Standalone bir araç olarak değil, helper komut, script, hook olarak kullanılır.

Default permission

Read-only (file, directory, grep). Write için manuel konfigürasyon gerekir — options.allowTools array'inde belirtilir veya .claude dizini settings içinde.

TypeScript SDK örneği — write permission ile

import { query } from '@anthropic-ai/claude-code';

for await (const message of query({
  prompt: 'src/api/users.ts dosyasını okuyup type tanımlarını strict yap',
  options: {
    allowTools: ['read', 'edit'],     // Write permission açıldı
    cwd: '/Users/komtas/repo'
  }
})) {
  console.log(message);  // Raw conversation: Claude ↔ model
}
📌 Çıktı formatı SDK çıktısı, local Claude Code ile language model arasındaki raw conversation'ı message-by-message gösterir. Final response son mesajdır.

13. Komtaş İçin Pratik Önerileri

KonuKomtaş için öneri
CLAUDE.md Her repo'da project-level dosya. İçinde: .cursorrules referansı, branch adlandırma kuralları, kurumsal API endpoint listesi, KVKK kapsamı uyarısı, kullanılan internal MCP server listesi.
Custom commands /komtas-pr, /komtas-test, /komtas-rls, /komtas-dpia, /komtas-changelog — şirket içi otomasyon.
Hooks (zorunlu) (1) .env, secrets/, *.pem read/grep blok hook'u tüm repolara default. (2) Post-edit type check (TS projeleri için).
MCP server Komtaş FastMCP server'ları lokal Claude Code'a bağlanabilir: contract search, customer lookup, internal docs.
GitHub Actions PR review'ları otomatik. Custom instructions: "KVKK kapsamı kontrol et, PII output sızıntısı için Lakera Guard çağrısı eklenmemiş mi bak, .env reference'ı varsa flagle"
SDK Ingest pipeline'ı içinde "belgeyi özetle, anahtar terimleri çıkar" gibi adımlar için kullanılır.
Plan/Thinking modları Maliyet farkındalığı: ekibin token bütçesi takip edilmeli. Karmaşık refactor öncesi Plan, kritik logic için Thinking — günlük rutinde her dakika değil.
✅ Komtaş entegrasyon yol haritası 1) Hook altyapısı (env koruma) tüm repolara → 2) CLAUDE.md şablonu + zorunlu doldurma → 3) İlk 5 custom command şirket içi paylaşımı → 4) GitHub PR review action default → 5) MCP server kataloğu (s3) için Claude Code presets.