Decision Frameworks
Özellikleri bilmek yetmez. Her birini ne zaman kullanacağınızı bilmeniz gerekir. Bu karar ağaçları bilgiyi eyleme dönüştürür.
Which Model Should I Use?
graph TD
START["Görev nedir?"] --> SIMPLE{"Basit mi?<br/><small>dosya arama, hızlı soru, formatlama</small>"}
SIMPLE -- "Evet" --> HAIKU["Haiku<br/>~$0.03/görev<br/>En hızlı"]
SIMPLE -- "Hayır" --> DEEP{"Derin muhakeme<br/>gerekiyor mu?<br/><small>mimari, debug, güvenlik</small>"}
DEEP -- "Evet" --> OPUS["Opus 4.6<br/>~$2.00/görev<br/>1M context, adaptive thinking"]
DEEP -- "Hayır" --> SONNET["Sonnet<br/>~$0.75/görev<br/>En iyi denge"]
style HAIKU fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80
style SONNET fill:#1c1208,stroke:#eab308,stroke-width:2px,color:#facc15
style OPUS fill:#2d1117,stroke:#f85149,stroke-width:2px,color:#f85149
Command vs Skill vs Subagent vs Agent Team?
graph TD
START["Ne zaman çalışsın?"] --> EXPLICIT{"Çalışma zamanını<br/>siz mi kontrol<br/>edeceksiniz?"}
EXPLICIT -- "Evet" --> CMD["⌨️ Slash Command<br/><small>/deploy, /test, /security-review</small>"]
EXPLICIT -- "Hayır" --> AUTO{"Context'e göre<br/>otomatik mi<br/>uygulanmalı?"}
AUTO -- "Evet" --> SKILL["📚 Skill<br/><small>Güvenlik pattern'ları, kod standartları</small>"]
AUTO -- "Hayır" --> ISO{"İzole context<br/>gerekli mi?"}
ISO -- "Hayır" --> DIRECT["💬 Doğrudan prompt<br/><small>Her şey soyutlama gerektirmez</small>"]
ISO -- "Evet" --> MANY{"Tek görev mi<br/>çoklu paralel mi?"}
MANY -- "Tek" --> SUB["🤖 Subagent<br/><small>Task tool ile derin keşif</small>"]
MANY -- "Çoklu" --> TEAM["👥 Agent Team<br/><small>5 agent paralel review</small>"]
style CMD fill:#1a1a3e,stroke:#a855f7,stroke-width:1px,color:#c084fc
style SKILL fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
style DIRECT fill:#1c1208,stroke:#eab308,stroke-width:1px,color:#facc15
style SUB fill:#132213,stroke:#22c55e,stroke-width:1px,color:#4ade80
style TEAM fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80
Hook vs Prompt?
graph TD
START["Aksiyon HER ZAMAN<br/>çalışmalı mı?"] --> ALWAYS{"Claude'un kararından<br/>bağımsız mı?"}
ALWAYS -- "Evet" --> HOOK["🔒 Hook - Deterministik<br/><small>Format, lint, log, .env engelle</small><br/><small>Claude atlayamaz, unutamaz</small>"]
ALWAYS -- "Hayır" --> PROMPT["💭 Prompt - Olasılıksal<br/><small>'Test eklemeyi düşün'</small><br/><small>'Edge case'leri kontrol et'</small><br/><small>Claude context'e göre karar verir</small>"]
style HOOK fill:#2d1117,stroke:#f85149,stroke-width:2px,color:#f85149
style PROMPT fill:#1a1a3e,stroke:#a855f7,stroke-width:1px,color:#c084fc
When to Use Extended Thinking?
| Durum | Extended Thinking? |
|---|---|
| Birçok trade-off içeren mimari karar | ✅ Evet |
| Kök nedeni belirsiz karmaşık debugging | ✅ Evet |
| Dikkatli muhakeme gerektiren güvenlik analizi | ✅ Evet |
| Tanımadığınız codebase’i anlama | ✅ Evet |
| Rutin bug fix | ❌ Hayır |
| Basit refactoring | ❌ Hayır |
| Kod formatlama | ❌ Hayır |
| Hızlı sorular | ❌ Hayır |
Session içinde Alt+T ile açıp kapatın. Yüksek thinking budget’ı daha pahalıdır; minimumdan başlayın, yanıtlar acele hissettirirse artırın.
Opus 4.6 adaptive thinking: Opus 4.6, problem karmaşıklığına göre thinking derinliğini otomatik ayarlar. Çoğu görev için manuel thinking kontrolü gerekmez - zor problemlerde derinleşir, basit olanlarda hızlı kalır. Manuel thinking toggle’ı en çok Sonnet’te daha derin analiz zorlamak istediğinizde işe yarar.
Which Execution Surface?
graph TD
START["İş nerede çalışmalı?"] --> LOCAL{"Yerel dosya ve<br/>tool gerekli mi?"}
LOCAL -- "Evet" --> INTERACTIVE{"İnteraktif mi?"}
INTERACTIVE -- "Evet" --> REPL["🖥️ Main REPL session"]
INTERACTIVE -- "Hayır" --> ONESHOT{"CI/CD mi?"}
ONESHOT -- "Evet" --> CICD["⚙️ claude -p --json<br/><small>non-interactive + structured output</small>"]
ONESHOT -- "Hayır" --> PRINT["📋 claude -p 'prompt'<br/><small>print mode, one-shot</small>"]
LOCAL -- "Hayır" --> REMOTE{"Araştırma mı?"}
REMOTE -- "Evet" --> EXPLORE["🔍 Subagent Explore"]
REMOTE -- "Hayır" --> WEB["🌐 WebFetch / WebSearch"]
style REPL fill:#1c1208,stroke:#eab308,stroke-width:2px,color:#facc15
style CICD fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
style PRINT fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
style EXPLORE fill:#132213,stroke:#22c55e,stroke-width:1px,color:#4ade80
style WEB fill:#1a1a3e,stroke:#a855f7,stroke-width:1px,color:#c084fc
| Senaryo | Yüzey | Neden |
|---|---|---|
| Hatalı test debug | Main REPL | Yerel dosyalar, iteratif |
| 20 GitHub issue triage | Background agent | Uzun süren, yerel dosya gereksiz |
| PR review | Subagent veya –from-pr | İzole context, odaklı çıktı |
| Changelog oluşturma | claude -p |
One-shot, scriptable |
| Her commit’te lint + test | Hook (PreCommit) | Her zaman çalışmalı, deterministik |
| Repo’lar arası pattern arama | Subagent (Explore) | Context bloat’u önler |
| Hızlı kod açıklama | Main REPL veya /fast | İnteraktif, hızlı yanıt |
| Multi-modül refactor | Agent team | Dosyalar arası paralel çalışma |
Agent Teams vs Subagents vs Parallel Sessions
graph TD
START["Birden fazla agent<br/>gerekli mi?"] --> MULTI{"İlişkili alt<br/>görevler var mı?"}
MULTI -- "Hayır" --> SINGLE["Tek Subagent veya Main REPL"]
MULTI -- "Evet" --> INDEP{"Alt görevler<br/>bağımsız mı?"}
INDEP -- "Hayır" --> SEQ["Sıralı Subagent'lar<br/><small>Explore → Plan → Implement</small>"]
INDEP -- "Evet" --> SHARED{"Aynı codebase'i<br/>paylaşabilir mi?"}
SHARED -- "Evet" --> ATEAM["👥 Agent Team<br/><small>Opus koordine eder</small>"]
SHARED -- "Hayır" --> PARALLEL["🖥️ Parallel Sessions<br/><small>Ayrı terminaller</small>"]
style ATEAM fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80
style SEQ fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
style PARALLEL fill:#1c1208,stroke:#eab308,stroke-width:1px,color:#facc15
| Yaklaşım | Max Parallelism | Paylaşılan Context | Koordinasyon |
|---|---|---|---|
| Agent Team | 5-10 agent | Paylaşılan repo, ayrı context’ler | Opus koordine eder |
| Subagents | Sınırsız (siz yönetirsiniz) | Yok (izole) | Prompt ile siz yönetirsiniz |
| Parallel Sessions | Terminal sayısıyla sınırlı | Yok | Manuel |
Which Hook Type?
graph TD
START["Ne tür otomasyon<br/>gerekli?"] --> SHELL{"Belirli event'te<br/>shell komutu mu?"}
SHELL -- "Evet" --> CMD["🔧 Command Hook<br/><small>prettier --write $FILE</small>"]
SHELL -- "Hayır" --> SYSPROMPT{"System prompt'u<br/>context'e göre<br/>değiştirmek mi?"}
SYSPROMPT -- "Evet" --> PHOOK["📝 Prompt Hook<br/><small>/src/auth/ düzenlerken kuralları enjekte et</small>"]
SYSPROMPT -- "Hayır" --> AGENT["🧠 Agent Hook<br/><small>Bu bash komutu güvenli mi? değerlendir</small>"]
style CMD fill:#132213,stroke:#22c55e,stroke-width:1px,color:#4ade80
style PHOOK fill:#0f2027,stroke:#3b82f6,stroke-width:1px,color:#60a5fa
style AGENT fill:#1c1208,stroke:#eab308,stroke-width:1px,color:#facc15
Hook event’leri: PreToolUse · PostToolUse · Notification · Stop · SubagentStop
When to Use /fast?
graph LR
START["Hız mı derinlik mi?"] --> SPEED{"Yanıt hızı<br/>derinlikten<br/>önemli mi?"}
SPEED -- "Evet" --> FAST["⚡ /fast<br/><small>Hızlı soru, basit edit, formatlama</small>"]
SPEED -- "Hayır" --> NORMAL["🧠 Normal mod<br/><small>Mimari, debug, güvenlik, refactor</small>"]
style FAST fill:#132213,stroke:#22c55e,stroke-width:2px,color:#4ade80
style NORMAL fill:#1c1208,stroke:#eab308,stroke-width:2px,color:#facc15
/fast aynı modeli (Opus 4.6) optimize edilmiş çıktı hızıyla kullanır - daha ucuz bir modele geçmez.