# Tavsiye mi kural mı: doğru aracı seçmek

CLAUDE.md, skill, hook, alt ajan ve MCP farklı birer soruya cevap veriyor. Seçimi, neyin doğru olması gerektiğine, ne sıklıkla lazım olduğuna ve bağlamda neyi taşımaya razı olduğunuza bakarak yapın.

## Tek bir ayrım çoğunu açıklıyor

Claude Code'a ekleyebileceğiniz her şey bir çizginin bir tarafına düşüyor. Ya **tavsiye**: model okuyup tartıyor. Ya da **kural**: harness uyguluyor.

CLAUDE.md, her oturumun başında okunan ve zorunlu yapılandırma olarak değil, bağlam olarak ele alınan düz markdown. Davranışı garanti eden şey hook ya da deny kuralı. Bir şeyin her seferinde olması gerekiyorsa, ne kadar sert yazarsanız yazın tavsiye tarafında duramaz.

Bu ayrım netleşince seçim büyük ölçüde kendiliğinden yapılıyor.

## Beş soru, beş araç

**Her zaman geçerli olan bir tercih mi?** CLAUDE.md'ye koyun. Build komutları, isimlendirme alışkanlıkları, cevapların nasıl şekillenmesini istediğiniz. Her oturumda okunuyor, o yüzden kısa tutun.

**Ara sıra gereken bir prosedür mü?** Skill yapın. Bağlamda yalnızca açıklama duruyor. Gövde, iş gerektirdiğinde yükleniyor. Yayın kontrol listesi buraya ait, CLAUDE.md'ye değil.

**İstisnasız, her seferinde olmalı mı?** Hook yazın. Her düzenlemeden sonra formatter, Claude'un durabilmesinden önce tip kontrolü. Model hatırlasa da hatırlamasa da harness çalıştırıyor.

**İş bağlamınızı yalnızca sonucunu istediğiniz malzemeyle mi dolduracak?** Alt ajan kullanın. Kendi penceresinde çalışıyor ve bir özet dönüyor.

**Claude'un makinenizin dışındaki bir şeye ulaşması mı gerekiyor?** Bir MCP sunucusu bağlayın; yalnız `gh` gibi düz bir CLI zaten yapıyorsa gerek yok, çünkü CLI bağlamdan hiçbir şey yemiyor.

## Aynı iş, beş yolla

Somut bir istek alalım: "Claude bitti demeden testler geçmeli."

- CLAUDE.md'de bu bir rica. Claude çoğunlukla uyar, bazen uymaz.
- Skill olarak, Claude'un izleyebileceği bir kontrol listesi olur ama yalnızca çağrıldığında.
- Başarısızlıkta `exit 2` ile testleri çalıştıran bir `Stop` hook'u olarak bu bir kural. Testler geçene kadar bitirmek engelleniyor.
- Alt ajan olarak, bir reviewer oturumunuzu doldurmadan hataları okuyup rapor verebilir.
- MCP ile bir CI sunucusu sorgulanabilir; bu yalnızca sonuçlar orada yaşıyorsa değer.

İlk istekteki "geçmeli" kelimesine uyan, hook.

**Question:** 'Bitirmeden önce her zaman tip kontrolünü çalıştır' cümlesini atlanamaz hale getiren araç hangisi?

- CLAUDE.md'de bir satır
- İyi bir açıklaması olan skill
- Başarısızlıkta 2 koduyla çıkan bir Stop hook'u
- Kısa prompt'lu bir alt ajan

**Answer:** Başarısızlıkta 2 koduyla çıkan bir Stop hook'u. Yalnızca hook'u harness uygular. CLAUDE.md, skill ve alt ajan, modelin uymayı seçmesine bağlı.


## Her birinin bedeli

Her seçimin bağlamda ya da katılıkta bir fiyatı var.

- **CLAUDE.md** her oturumda bağlam yer. Uzun bir dosya kendi önemli satırlarını sulandırır.
- **Skill'ler** açıklamalarını her turda, gövdelerini yalnızca kullanıldıklarında öder. Uzun ve nadiren işe yarayan bir açıklama israf.
- **Hook'lar** neredeyse hiç bağlam yemez ama katıdır. Dokümanların tavsiyesi, hook'ları istisnasız kurallara saklamak. Kırk tanesi varsa çoğu muhtemelen tercih.
- **Alt ajanlar** yeni bir bağlam ve özet gidiş gelişi öder; raporlamadıkları ayrıntıyı da kaybedersiniz.
- **MCP sunucuları** bağlamda araç tanımları öder, tool search başta yalnızca adları yüklese de, artı büyük çıktıları.
- **Plugin'ler** her turda bağlam yer ve MCP sunucuları ile hook'larını her oturumda çalıştırır. Plugin, diğerlerini paylaşmak için paketler. Aynı iş için altıncı bir seçenek değil.

> **Bir terfi yolu**
Tavsiyeyle başlayın. Claude'un bir CLAUDE.md satırını çiğnediğini yakalarsanız kuralın istisnası var mı diye sorun. Yoksa hook'a terfi ettirin. Satır uzunsa ve yalnızca ara sıra ilgiliyse skill'e indirin.


## Her biri nerede durur

Bir şey ters gittiğinde nereye bakacağınızı bilmeniz için kaba bir harita.

- CLAUDE.md dosyaları ev klasörünüzde, projede ve alt klasörlerde
- Skill'ler `.claude/skills/` ya da `~/.claude/skills/` içinde
- Hook'lar `.claude/settings.json` ya da `.claude/settings.local.json` içinde; takım kuralları için paylaşılanı commit'leyin, kişisel ayarları yerel dosyada tutun
- Alt ajanlar `.claude/agents/` içinde
- MCP sunucuları proje için `.mcp.json` içinde ya da user scope'unda

Ayar önceliği managed'dan komut satırına, oradan project local'a, shared project'e ve user'a doğru gidiyor. `permissions.allow` gibi diziler scope'lar arasında birleşiyor.

> **Kendi listenizi ayırın**
Claude'a tekrar tekrar verdiğiniz beş talimatı yazın. Her birinin yanına tavsiye, prosedür, kural, hacimli iş ya da dışarıya erişim diye not düşün. Sonra her birini uyan araca taşıyın. En az birinin hook çıkmasını bekleyin.


**Question:** Ayda iki kez gereken uzun bir migration kontrol listesi nerede durmalı?

- CLAUDE.md, hep yüklü olsun diye
- Skill; ihtiyaç olana kadar bağlamda yalnızca açıklaması durur
- Her düzenlemede çalışan bir hook
- Bir MCP sunucusu

**Answer:** Skill; ihtiyaç olana kadar bağlamda yalnızca açıklaması durur. Ara sıra gereken prosedür skill'e uyar: açıklama bağlamda kalır, gövde yalnızca iş gerektirdiğinde yüklenir.
