Workshop 2025

Claude Code

Agent, Skill & Prompt Engineering Mastery

Doğru aracı doğru zamanda kullanma sanatı

Giriş

Claude Code Nedir?

Anthropic tarafından geliştirilen, terminal tabanlı bir yapay zeka kodlama asistanı.

  • Özerk Yapay Zeka — Bağımsız düşünme ve karar verme yetisi
  • Terminal Tabanlı — IDE'ye bağımlı değil, her ortamda çalışır
  • Tam Kod Tabanı Erişimi — Projenin tamamını anlayabilme
  • Araç Çalıştırma — Bash, dosya işlemleri, git, web
  • Çok Adımlı Akıl Yürütme — Karmaşık görevleri parçalayarak çözme
Terminal
$ claude
╭─────────────────────────────────╮
│ Welcome to Claude Code! │
│ How can I help you today? │
╰─────────────────────────────────╯
> Add auth to my API

Karşılaştırma

Neden Claude Code?

OpenAI Codex, Gemini CLI, GitHub Copilot CLI ve diğerlerine göre avantajları

🧠

Üstün Reasoning

Claude'un reasoning kapasitesi, karmaşık multi-file değişikliklerde fark yaratır

🔧

Tool Ecosystem

MCP, Hooks, Skills, Agents — Rakipsiz genişletilebilirlik

🎯

Agentic Workflow

Sadece öneri değil, execute eden gerçek bir agent

🔒

Safety & Control

Permission system, sandbox mode, hook validation

Customization

CLAUDE.md, custom commands, skills — Tam kontrol

Temeller

Claude Code'un 3 Yapı Taşı

🤖

Agents

Bağımsız çalışan alt süreçler, karmaşık görevler için

Skills

Özelleşmiş beceriler, alana özgü iş akışları

⚙️

Commands

Slash komutları, tekrarlayan prompt'lar için

Temel Felsefe: Doğru soyutlama seviyesinde doğru aracı kullanmak

Agent

Otonom Alt Süreçler

Karmaşık, çok adımlı görevler için bağımsız çalışan süreçler.

  • Kendi tool'larına erişim
  • Bağımsız karar verme
  • Paralel çalıştırma desteği
  • Background işleme (async)
  • Resume edilebilir
Agent Türleri
Explore — Codebase keşfi
Plan — Mimari tasarım
General — Çok adımlı görevler
Meta-Agent — Agent oluşturma
Ne zaman: Research, bug investigation, API araştırması

Skill

Özelleşmiş Yetenekler

Domain-specific iş akışları için specialized bilgi ve araçlar.

  • Ana conversation içinde çalışır
  • Specialized knowledge
  • Proactive activation
  • Tool integration
  • Context koruması
Skill Örnekleri
frontend-design
pdf-processing
claude-code-guide
meta-workflow
Ne zaman: PDF, Excel, Frontend, Unity gibi specialized domain işleri

Command

Slash Komutları

Tekrarlayan prompt'ları otomatikleştirmek için basit kısayollar.

  • Basit prompt expansion
  • Argument desteği ($ARGUMENTS)
  • Hızlı tetikleme (/cmd)
  • Frontmatter configuration
  • Model seçimi
.claude/commands/
/commit — Git commit
/test-file — Test oluştur
/code-review — Kod inceleme
/meta-prompt — Prompt oluştur
Ne zaman: Standart, tekrarlayan workflow'lar

Karar Ağacı

Neyi Ne Zaman Kullanmalı?

  • Birden fazla dosya/dizinde araştırma?
    EVET → Agent (Explore, Plan, General)
  • Specialized domain knowledge gerekli?
    EVET → Skill (PDF, Frontend, Unity...)
  • Sık tekrarlanan workflow mu?
    EVET → Command (.claude/commands/*.md)
  • Basit, tek seferlik görev mi?
    Direct interaction yeterli

Prompt Engineering

Neden Bu Kadar Önemli?

İyi yazılmış prompt, çıktı kalitesini %300+ artırabilir

Belirsizliği Azaltır

Net talimatlar → tutarlı sonuçlar

Context Optimizasyonu

Yapılandırılmış prompt → optimal token kullanımı

Error Reduction

Edge case'leri önceden tanımla

Reusability

Bir kere yaz, defalarca kullan

Kişisel Deneyim

Syntax Optimization

Noktalama işaretleri ile prompt'u yapılandır: : yeni bölüm başlatır, - alt maddeleri gruplar.

  • Semantic Chunking: ile bölüm başlığı oluştur, AI bunu ayrı bir context olarak algılar
  • Relationship Markers- ile alt maddeler grupla, AI bunları ilişkili görev olarak işler
  • Priority Signaling — İlk yazılan maddeler daha yüksek öncelikli algılanır
// Optimize Edilmiş Yaklaşım Create auth system: - Email/password login - Password reset Validation: - Email format check - Password strength Security: - bcrypt hashing - Rate limiting

Meta-Tools

Araçları Oluşturan Araçlar

Claude'a kendi araçlarını oluşturmasını söyle

🤖

Meta-Agent

Yeni agent configuration dosyası oluşturur

Meta-Skill

Workflow'ları skill'e dönüştürür

⚙️

Meta-Prompt

Yeni slash command'lar oluşturur

Kanıtlanmış Yapı

Best Prompt Structure

En kararlı ve tutarlı sonuç veren prompt yapısı — her bölüm kritik bir amaca hizmet eder

📋 Frontmatter

allowed-tools: Sadece gerekli tool'lar
description: Tek satır, aranabilir
model: Karmaşıklığa göre seç

🎯 Purpose

1-3 cümle: Bu prompt ne yapar ve neden var? Diğer bölümlere referans ver

📦 Variables

$ARGUMENTS: Kullanıcı girdisi
Static: Sabit değerler
Her değişken açık ve örnekli

📜 Instructions

AI'ın rolünü tanımla, kısıtlamaları belirt, kalite standartlarını koy, hata yönetimi ekle

🔄 Workflow

Numaralı adımlar, her adım tek bir eylem, beklenen çıktılar açık

📊 Report

Çıktı formatını tanımla, başarı kriterlerini belirt, sonraki adımları öner

Örnek Yapı

Prompt Template

Bu yapı, AI'ın tutarlı ve yüksek kaliteli çıktı üretmesini sağlar.

  • Self-contained: Prompt tek başına anlaşılabilir olmalı
  • Unambiguous: Yanlış yoruma yer bırakma
  • Minimal tools: En az yetki prensibi
  • Validation: Çıktı kontrolü için kriterler
--- allowed-tools: Read, Edit, Bash description: Dosya için test oluştur model: sonnet --- # Purpose Bu prompt `$ARGUMENTS` dosyası için test oluşturur. ## Variables TARGET_FILE: $ARGUMENTS ## Instructions - Test framework: Jest - Coverage: %80+ ## Workflow 1. Dosyayı oku ve analiz et 2. Test senaryolarını belirle 3. Testleri yaz ve kaydet

Best Practices

İpuçları & Öneriler

Agent Kullanımı

  • Birden fazla agent → tek mesajda başlat
  • Arka planda çalıştır: run_in_background: true
  • Derinlik seviyesi: quick/medium/very thorough

Skill Oluşturma

  • Skill'in ne zaman aktif olacağını net tanımla
  • Çalışma dizinini belirt
  • Sadece gerekli tool'lara izin ver

Command Design

  • Dosya adı: test-file.md (tire ile)
  • Aranabilir açıklama yaz
  • Karmaşıklığa göre model seç

Pratik Örnekler

Doğru vs Yanlış Yaklaşım

// ❌ YANLIŞ: Direct grep/glob "Find all authentication code" → Yavaş, eksik sonuçlar // ✅ DOĞRU: Explore Agent Task(subagent_type: "Explore", thoroughness: "very thorough") → Sistematik, kapsamlı, hızlı! // ❌ YANLIŞ: Her seferinde aynı prompt "Generate tests for UserService..." // ✅ DOĞRU: Command oluştur /test-file UserService.cs → Standart, tekrar kullanılabilir!

MCP Optimizasyonu

MCP'nin Token Problemi

Çok sayıda MCP server bağlandığında ciddi token tüketimi oluşur

📋

Problem 1: Tool Overload

Binlerce tool tanımı

  • Her tool = token maliyeti
  • 100+ tool = 100K+ token
  • Her request'te yüklenir
🔄

Problem 2: Ara Sonuçlar

Veri context'ten 2x geçer

  • Veri indir → context'e
  • Veri yaz → tekrar context'e
  • 50K+ token tüketimi
💡

Çözüm: Code Execution

Tool yerine kod yaz

  • 150K → 2K token
  • %98.7 tasarruf!
  • Anthropic önerisi

Token Optimizasyonu

Code Execution Yaklaşımı

Tool'ları doğrudan çağırmak yerine, tool çağrılarını kod olarak yaz.

  • Progressive Disclosure — İhtiyaç duyulan tool'ları dinamik yükle
  • Data Filtering — Büyük veriyi execution ortamında filtrele
  • Control Flow — Döngü/koşulları kod ile yönet
  • State Management — Ara sonuçları dosyaya yaz
// Geleneksel: Her adım ayrı tool call // = 150K+ token // Code Execution: Tek script // = 2K token const transcript = await gdrive .getDocument({ id: 'abc123' }); const summary = transcript.content .slice(0, 1000); // Filtrele await salesforce.updateRecord({ type: 'Meeting', data: { Notes: summary } });

MCP Best Practices

Verimli MCP Kullanımı

🎯 Progressive Disclosure

Tüm tool'ları baştan yükleme. Dosya sistemini tarayarak ihtiyaç duyulanları dinamik keşfet.

🗜️ Data Filtering

10K+ satır veriyi context'e gönderme. Execution ortamında filtrele, sadece sonucu döndür.

💾 State via Files

Ara sonuçları dosyaya yaz. Sonraki execution devam edebilir, context temiz kalır.

🔐 Privacy Protection

Kişisel verileri (isim, email, TC no) maskele. Hassas data model context'e girmeden işlenebilir.

♻️ Reusable Skills

Başarılı kod implementasyonlarını kaydet. İleride aynı pattern'i tekrar kullan.

🔀 Batch Operations

Tek tek tool call yerine, döngü/koşulları kod içinde yönet. N call → 1 script.

Otomasyon

Hooks System

Tool çağrılarına otomatik tepki veren shell komutları

PreToolUse

Tool çalışmadan önce

  • Validation
  • Permission check
  • Logging

PostToolUse

Tool çalıştıktan sonra

  • Auto-format
  • Lint check
  • Test runner

Notification

Event bildirimleri

  • Slack notification
  • Desktop alert
  • Log to file

Hooks Örnek

Auto-Format Hook

Her dosya yazımından sonra otomatik prettier/eslint çalıştır.

  • Write sonrası → format
  • Edit sonrası → lint
  • Bash sonrası → test
// .claude/settings.json { "hooks": { "PostToolUse": [ { "matcher": "Write", "command": "prettier --write $FILE" }, { "matcher": "Edit", "command": "eslint --fix $FILE" } ] } }

Konfigürasyon

CLAUDE.md Deep Dive

📍 Lokasyonlar

  • ~/.claude/CLAUDE.md → Global
  • ./CLAUDE.md → Project
  • ./src/CLAUDE.md → Folder

🔄 Inheritance

  • Global → Project → Folder
  • Alt seviye override eder
  • Merge değil, replace

📝 İçerik

  • Project context
  • Code conventions
  • Build commands
  • Forbidden patterns

CLAUDE.md

Etkili Template

  • Context — Proje ne yapar?
  • Stack — Teknolojiler
  • Conventions — Kod stilleri
  • Commands — Build/test/deploy
  • Constraints — Yapılmaması gerekenler
# CLAUDE.md ## Context E-commerce API, Node.js + PostgreSQL ## Conventions - TypeScript strict mode - Functional components - Zod validation ## Commands - npm run dev → Development - npm test → Jest tests ## NEVER - console.log in production - any type kullanma - Secrets'ı hardcode etme

Optimizasyon

Context Management

Token limit'leri ve context yönetimi stratejileri

📊 Token Limits

  • ~200K context window
  • Conversation history birikir
  • Large files = hızlı dolum

🗜️ /compact

  • History'yi özetler
  • Token kullanımını azaltır
  • Context kaybolmaz

💡 Stratejiler

  • Uzun session → /compact
  • Yeni görev → /clear
  • Büyük dosya → partial read

Context Tips

Verimli Context Kullanımı

  • /compact sık kullan — Uzun session'larda token tasarrufu
  • Gereksiz dosya okuma — Sadece gerekeni oku
  • Agent kullan — Araştırma agent context'i kirletmez
  • Clear start — Yeni major task = yeni session
  • CLAUDE.md — Tekrar eden context'i buraya yaz

Performans

Model Seçimi

Doğru model = optimal maliyet + performans dengesi

🐰

Haiku

Hızlı, ucuz, basit işler

  • Biçimlendirme
  • Basit düzenlemeler
  • Hızlı aramalar
🎵

Sonnet

Dengeli, çoğu iş için ideal

  • Kod üretimi
  • Yeniden düzenleme
  • Hata düzeltme
🎭

Opus

En güçlü, karmaşık akıl yürütme

  • Mimari tasarım
  • Karmaşık hata ayıklama
  • Çok adımlı planlama

CI/CD

Headless Mode

Interactive olmadan Claude Code çalıştır. Pipeline entegrasyonu için ideal.

  • --print — Sadece output, tool yok
  • -p flag — Non-interactive
  • Pipeline — CI/CD entegrasyonu
  • Automation — Scheduled tasks
# Basic headless claude -p "explain this code" # CI/CD pipeline claude -p "review PR and suggest fixes" # Pipe input cat file.ts | claude -p "refactor" # Output to file claude -p "generate tests" > tests.ts

Entegrasyon

IDE Integrations

Favori editörünüzde Claude Code

💙

VS Code

Official extension

  • Inline suggestions
  • Terminal integration
  • Cmd+Shift+P → Claude
🧠

JetBrains

IntelliJ, WebStorm, PyCharm

  • Plugin marketplace
  • Context-aware
  • Refactor support
💚

Vim/Neovim

Terminal-native workflow

  • tmux + claude
  • Split pane workflow
  • Keybinding integration

İleri Seviye

Multi-Agent Orchestration

Birden fazla agent'ı koordineli çalıştırma

🔀 Parallel Execution

Bağımsız görevleri eş zamanlı çalıştır

  • Single message, multiple Task
  • Faster completion
  • Resource efficient

📋 Task Decomposition

Büyük görevi parçala

  • Research agent
  • Implementation agent
  • Review agent

🔄 Result Aggregation

Sonuçları birleştir

  • Merge findings
  • Conflict resolution
  • Final synthesis

Multi-Agent

Paralel Agent Örneği

Tek mesajda birden fazla agent başlat, sonuçları topla.

  • Agent 1 — Frontend araştır
  • Agent 2 — Backend araştır
  • Agent 3 — Database araştır
  • Sonuç — Birleştirilmiş analiz
// Single message, 3 parallel agents Task(Explore, "frontend auth") Task(Explore, "backend auth") Task(Explore, "database schema") // Background execution Task( subagent: "Plan", run_in_background: true ) // Sonra sonucu al TaskOutput(task_id: "...")

Sonuç

Workshop Sonrası Yapılacaklar

  • CLAUDE.md oluştur — Proje context'ini tanımla
  • Hook ekle — Auto-format, lint integration
  • Model seçimi — Task'a göre haiku/sonnet/opus
  • Agent'ları keşfet — Explore ile codebase analizi
  • /compact kullan — Context yönetimi
🎯 Uygulama

Demo Zamanı

Gerçek dünya örnekleri

Sorular?

Aklınıza takılan her şeyi sorabilirsiniz

💬 Tartışma 🤔 Sorular 💡 Fikirler

Teşekkürler!

Agent'lar araştırır, Skill'ler uzmanlık katar, Command'lar otomatikleştirir

Şimdi git ve harika şeyler yarat!

Space