Agent, Skill & Prompt Engineering Mastery
Doğru aracı doğru zamanda kullanma sanatı
Giriş
Anthropic tarafından geliştirilen, terminal tabanlı bir yapay zeka kodlama asistanı.
Karşılaştırma
OpenAI Codex, Gemini CLI, GitHub Copilot CLI ve diğerlerine göre avantajları
Claude'un reasoning kapasitesi, karmaşık multi-file değişikliklerde fark yaratır
MCP, Hooks, Skills, Agents — Rakipsiz genişletilebilirlik
Sadece öneri değil, execute eden gerçek bir agent
Permission system, sandbox mode, hook validation
CLAUDE.md, custom commands, skills — Tam kontrol
Temeller
Bağımsız çalışan alt süreçler, karmaşık görevler için
Özelleşmiş beceriler, alana özgü iş akışları
Slash komutları, tekrarlayan prompt'lar için
Temel Felsefe: Doğru soyutlama seviyesinde doğru aracı kullanmak
Agent
Karmaşık, çok adımlı görevler için bağımsız çalışan süreçler.
Skill
Domain-specific iş akışları için specialized bilgi ve araçlar.
Command
Tekrarlayan prompt'ları otomatikleştirmek için basit kısayollar.
Karar Ağacı
Prompt Engineering
İyi yazılmış prompt, çıktı kalitesini %300+ artırabilir
Net talimatlar → tutarlı sonuçlar
Yapılandırılmış prompt → optimal token kullanımı
Edge case'leri önceden tanımla
Bir kere yaz, defalarca kullan
Kişisel Deneyim
Noktalama işaretleri ile prompt'u yapılandır: : yeni bölüm başlatır,
- alt maddeleri gruplar.
: ile bölüm başlığı oluştur, AI bunu ayrı bir context olarak algılar- ile alt maddeler grupla, AI bunları ilişkili görev olarak işler
// 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
Claude'a kendi araçlarını oluşturmasını söyle
Yeni agent configuration dosyası oluşturur
Workflow'ları skill'e dönüştürür
Yeni slash command'lar oluşturur
Kanıtlanmış Yapı
En kararlı ve tutarlı sonuç veren prompt yapısı — her bölüm kritik bir amaca hizmet eder
allowed-tools: Sadece gerekli tool'lar
description: Tek satır, aranabilir
model: Karmaşıklığa göre seç
1-3 cümle: Bu prompt ne yapar ve neden var? Diğer bölümlere referans ver
$ARGUMENTS: Kullanıcı girdisi
Static: Sabit değerler
Her değişken açık ve örnekli
AI'ın rolünü tanımla, kısıtlamaları belirt, kalite standartlarını koy, hata yönetimi ekle
Numaralı adımlar, her adım tek bir eylem, beklenen çıktılar açık
Çıktı formatını tanımla, başarı kriterlerini belirt, sonraki adımları öner
Örnek Yapı
Bu yapı, AI'ın tutarlı ve yüksek kaliteli çıktı üretmesini sağlar.
---
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
run_in_background: truetest-file.md (tire ile)Pratik Örnekler
// ❌ 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
Çok sayıda MCP server bağlandığında ciddi token tüketimi oluşur
Binlerce tool tanımı
Veri context'ten 2x geçer
Tool yerine kod yaz
Token Optimizasyonu
Tool'ları doğrudan çağırmak yerine, tool çağrılarını kod olarak 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
Tüm tool'ları baştan yükleme. Dosya sistemini tarayarak ihtiyaç duyulanları dinamik keşfet.
10K+ satır veriyi context'e gönderme. Execution ortamında filtrele, sadece sonucu döndür.
Ara sonuçları dosyaya yaz. Sonraki execution devam edebilir, context temiz kalır.
Kişisel verileri (isim, email, TC no) maskele. Hassas data model context'e girmeden işlenebilir.
Başarılı kod implementasyonlarını kaydet. İleride aynı pattern'i tekrar kullan.
Tek tek tool call yerine, döngü/koşulları kod içinde yönet. N call → 1 script.
Otomasyon
Tool çağrılarına otomatik tepki veren shell komutları
Tool çalışmadan önce
Tool çalıştıktan sonra
Event bildirimleri
Hooks Örnek
Her dosya yazımından sonra otomatik prettier/eslint çalıştır.
// .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write",
"command": "prettier --write $FILE"
},
{
"matcher": "Edit",
"command": "eslint --fix $FILE"
}
]
}
}
Konfigürasyon
~/.claude/CLAUDE.md → Global./CLAUDE.md → Project./src/CLAUDE.md → FolderCLAUDE.md
# 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
Token limit'leri ve context yönetimi stratejileri
Context Tips
Performans
Doğru model = optimal maliyet + performans dengesi
Hızlı, ucuz, basit işler
Dengeli, çoğu iş için ideal
En güçlü, karmaşık akıl yürütme
CI/CD
Interactive olmadan Claude Code çalıştır. Pipeline entegrasyonu için ideal.
# 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
Favori editörünüzde Claude Code
Official extension
IntelliJ, WebStorm, PyCharm
Terminal-native workflow
İleri Seviye
Birden fazla agent'ı koordineli çalıştırma
Bağımsız görevleri eş zamanlı çalıştır
Büyük görevi parçala
Sonuçları birleştir
Multi-Agent
Tek mesajda birden fazla agent başlat, sonuçları topla.
// 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ç
Gerçek dünya örnekleri
Aklınıza takılan her şeyi sorabilirsiniz
Agent'lar araştırır, Skill'ler uzmanlık katar, Command'lar otomatikleştirir
Şimdi git ve harika şeyler yarat!