📅 3 Nisan 2026 Lokasyon: /simplify, /batch Anthropic docs ↗

En İyi Uygulama

Claude Code'da Beceriler (Skills) ile Yetenekleri Genişletme

Claude Code, beceriler (skills) sayesinde Claude'un yeteneklerini genişletmenize olanak tanır. Bir SKILL.md dosyası oluşturup talimatlar ekleyerek Claude'un araç setine yeni yetenekler kazandırabilirsiniz. Claude, becerileri ihtiyaç duyduğunda otomatik olarak kullanır veya siz /beceri-adi yazarak doğrudan çağırabilirsiniz.

Beceriler, sürekli olarak sohbete yapıştırdığınız talimatlar, kontrol listeleri veya çok adımlı prosedürler için idealdir. CLAUDE.md içeriğinden farklı olarak, bir becerinin gövdesi yalnızca kullanıldığında yüklenir, bu nedenle uzun referans materyalleri ihtiyaç duyulana kadar neredeyse hiç maliyet oluşturmaz.

Dahil Edilen Beceriler (Bundled Skills)

Claude Code, her oturumda kullanılabilen bir dizi dahil edilmiş beceri (bundled skill) ile birlikte gelir:

Bu beceriler, çoğu yerleşik komutun aksine, sabit mantık yürütmek yerine prompt tabanlıdır: Claude'a ayrıntılı talimatlar verir ve araçlarını kullanarak işi organize etmesini sağlar. Bunları diğer beceriler gibi / ve ardından beceri adını yazarak çağırırsınız.

Başlarken (Getting Started)

İlk Becerinizi Oluşturun

Bu örnek, git deponuzdaki commit edilmemiş değişiklikleri özetleyen ve riskli olanları işaretleyen bir beceri oluşturur:

  1. Beceri dizinini oluşturun:
mkdir -p ~/.claude/skills/summarize-changes
  1. SKILL.md dosyasını yazın:
---
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---

## Current changes
!`git diff HEAD`

## Instructions
Summarize the changes above in two or three bullet points, then list any risks you notice such as missing error handling, hardcoded values, or tests that need updating. If the diff is empty, say there are no uncommitted changes.
  1. Beceriyi test edin: Bir git projesi açın, küçük bir düzenleme yapın ve claude komutunu çalıştırın. Beceriyi otomatik olarak çağırması için "What did I change?" gibi bir soru sorun veya /summarize-changes yazarak doğrudan çağırın.

Becerilerin Yaşadığı Yerler (Where Skills Live)

Beceriyi nerede sakladığınız, kimlerin kullanabileceğini belirler:

Konum Yol Kapsam
Kurumsal (Managed) Yönetici ayarları Organizasyondaki tüm kullanıcılar
Kişisel (Personal) ~/.claude/skills/<beceri-adi>/SKILL.md Tüm projeleriniz
Proje (Project) .claude/skills/<beceri-adi>/SKILL.md Yalnızca bu proje
Eklenti (Plugin) <eklenti>/skills/<beceri-adi>/SKILL.md Eklentinin etkin olduğu yer

Aynı ada sahip beceriler olduğunda öncelik sırası: kurumsal > kişisel > proje. Eklenti becerileri eklenti-adi:beceri-adi ad alanını kullanır, bu nedenle diğer seviyelerle çakışamaz.

Canlı Değişiklik Algılama (Live Change Detection)

Claude Code, beceri dizinlerindeki dosya değişikliklerini izler. ~/.claude/skills/, proje .claude/skills/ veya --add-dir ile eklenmiş bir dizindeki .claude/skills/ altında beceri ekleme, düzenleme veya silme işlemleri, oturumu yeniden başlatmadan geçerli olur.

Otomatik Keşif (Automatic Discovery)

Proje becerileri, başlangıç dizininizdeki ve depo köküne kadar olan her üst dizindeki .claude/skills/ klasörlerinden yüklenir. Monorepo yapılarında, alt dizinlerdeki .claude/skills/ klasörleri de ihtiyaç halinde keşfedilir.

Becerileri Yapılandırma (Configure Skills)

Beceri İçerik Türleri (Types of Skill Content)

Frontmatter Referansı (Frontmatter Reference)

Tüm alanlar isteğe bağlıdır. Yalnızca description önerilir:

Alan Zorunlu Açıklama
name Hayır Beceri görünen adı. Atlanırsa dizin adı kullanılır.
description Önerilen Becerinin ne yaptığı ve ne zaman kullanılacağı.
when_to_use Hayır Claude'un beceriyi ne zaman çağırması gerektiğine dair ek bağlam.
argument-hint Hayır Otomatik tamamlama sırasında beklenen argüman ipucu.
arguments Hayır $name değiştirmesi için adlandırılmış konumsal argümanlar.
disable-model-invocation Hayır true olarak ayarlanırsa Claude'un otomatik yüklemesini engeller.
user-invocable Hayır false olarak ayarlanırsa / menüsünden gizlenir.
allowed-tools Hayır Beceri etkinken Claude'un izinsiz kullanabileceği araçlar.
model Hayır Beceri etkinken kullanılacak model.
effort Hayır Beceri etkinken çaba seviyesi (low, medium, high, xhigh, max).
context Hayır fork olarak ayarlanırsa alt-agent bağlamında çalıştırır.
agent Hayır context: fork ayarlandığında kullanılacak alt-agent türü.
hooks Hayır Beceri yaşam döngüsüne bağlı hook'lar.
paths Hayır Becerinin ne zaman etkinleştirileceğini sınırlayan glob desenleri.
shell Hayır !command`` ve ```! blokları için kabuk (bash veya powershell).

Kullanılabilir Dize Değiştirmeleri (Available String Substitutions)

Değişken Açıklama
$ARGUMENTS Beceri çağrılırken geçirilen tüm argümanlar.
$ARGUMENTS[N] 0 tabanlı indeksle belirli bir argümana erişim.
$N $ARGUMENTS[N] için kısayol.
$name arguments frontmatter listesinde bildirilen adlandırılmış argüman.
${CLAUDE_SESSION_ID} Geçerli oturum kimliği.
${CLAUDE_EFFORT} Geçerli çaba seviyesi.
${CLAUDE_SKILL_DIR} Becerinin SKILL.md dosyasını içeren dizin.

Destekleyici Dosyalar Ekleme (Add Supporting Files)

Beceriler, dizinlerinde birden fazla dosya içerebilir. Bu, SKILL.md dosyasını temel bilgilerle sınırlı tutarken Claude'un yalnızca ihtiyaç duyulduğunda ayrıntılı referans materyallerine erişmesini sağlar:

my-skill/
├── SKILL.md (gerekli - genel bakış ve yönlendirme)
├── reference.md (ayrıntılı API dokümanları)
├── examples.md (kullanım örnekleri)
└── scripts/
    └── helper.py (yardımcı script)

SKILL.md dosyasını 500 satırın altında tutun. Ayrıntılı referans materyallerini ayrı dosyalara taşıyın.

Beceriyi Kimin Çağırabileceğini Kontrol Etme (Control Who Invokes a Skill)

Varsayılan olarak hem siz hem de Claude herhangi bir beceriyi çağırabilir. İki frontmatter alanı bunu kısıtlamanıza olanak tanır:

Frontmatter Siz çağırabilir Claude çağırabilir Bağlama yüklendiğinde
Varsayılan Evet Evet Açıklama her zaman bağlamda, beceri çağrıldığında yüklenir
disable-model-invocation: true Evet Hayır Açıklama bağlamda değil, siz çağırdığınızda yüklenir
user-invocable: false Hayır Evet Açıklama her zaman bağlamda, çağrıldığında yüklenir

Beceri İçerik Yaşam Döngüsü (Skill Content Lifecycle)

Bir beceri çağrıldığında, işlenmiş SKILL.md içeriği konuşmaya tek bir mesaj olarak girer ve oturum boyunca orada kalır. Claude Code, sonraki turlarda beceri dosyasını yeniden okumaz. Otomatik sıkıştırma (auto-compaction), çağrılan becerileri bir token bütçesi dahilinde taşır. Her becerinin en son 5.000 token'ı korunur ve yeniden eklenen beceriler toplam 25.000 token'lık bir bütçeyi paylaşır.

Bir Beceri için Araçları Önceden Onaylama (Pre-approve Tools for a Skill)

allowed-tools alanı, beceri etkinken listelenen araçlar için izin verir, böylece Claude bunları her kullanımda onay istemeden kullanabilir. Bu, hangi araçların kullanılabileceğini kısıtlamaz; her araç çağrılabilir durumda kalır.

Becerilere Argüman Geçirme (Pass Arguments to Skills)

Hem siz hem de Claude, bir beceriyi çağırırken argümanlar geçirebilirsiniz. Argümanlar $ARGUMENTS yer tutucusu aracılığıyla kullanılabilir:

---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---

Fix GitHub issue $ARGUMENTS following our coding standards.
1. Read the issue description
2. Understand the requirements
3. Implement the fix
4. Write tests
5. Create a commit

/fix-issue 123 yazdığınızda, Claude "Fix GitHub issue 123 following our coding standards..." mesajını alır.

Gelişmiş Desenler (Advanced Patterns)

Dinamik Bağlam Ekleme (Inject Dynamic Context)

!`` sözdizimi, beceri içeriği Claude'a gönderilmeden önce kabuk komutlarını çalıştırır. Komut çıktısı yer tutucunun yerini alır, böylece Claude gerçek verileri alır:

## Pull request context
- PR diff: !`gh pr diff`
- PR comments: !`gh pr view --comments`
- Changed files: !`gh pr diff --name-only`

Çok satırlı komutlar için ```! ile açılan bir kod bloğu kullanın.

Becerileri Alt-Agent'ta Çalıştırma (Run Skills in a Subagent)

Frontmatter'a context: fork ekleyerek bir becerinin izole bir ortamda çalışmasını sağlayabilirsiniz. Beceri içeriği, alt-agent'ı yönlendiren prompt haline gelir. Konuşma geçmişinize erişimi olmaz:

---
name: deep-research
description: Research a topic thoroughly
context: fork
agent: Explore
---

Research $ARGUMENTS thoroughly:
1. Find relevant files using Glob and Grep
2. Read and analyze the code
3. Summarize findings with specific file references

Claude'un Beceri Erişimini Kısıtlama (Restrict Claude's Skill Access)

Claude'un hangi becerileri çağırabileceğini kontrol etmenin üç yolu:

  1. Tüm becerileri devre dışı bırakma: /permissions içinde Skill aracını reddetme
  2. Belirli becerilere izin verme/reddetme: İzin kuralları kullanma (Skill(commit), Skill(deploy *))
  3. Bireysel becerileri gizleme: Frontmatter'a disable-model-invocation: true ekleme

Beceri Görünürlüğünü Ayarlardan Geçersiz Kılma (Override Skill Visibility from Settings)

skillOverrides ayarı, beceri görünürlüğünü becerinin kendi frontmatter'ı yerine ayarlarınızdan kontrol eder:

{
  "skillOverrides": {
    "legacy-context": "name-only",
    "deploy": "off"
  }
}

Her değer dört durumdan birini alır: "on", "name-only", "user-invocable-only", "off".

Becerileri Paylaşma (Share Skills)

Beceriler farklı kapsamlarda dağıtılabilir:

Görsel Çıktı Oluşturma (Generate Visual Output)

Beceriler, herhangi bir dilde script'ler paketleyip çalıştırabilir. Güçlü bir desen, etkileşimli HTML dosyaları oluşturmaktır. Örnek olarak, kod tabanı görselleştirici becerisi, Python script'i ile proje yapısını gösteren etkileşimli bir ağaç görünümü oluşturur.

Sorun Giderme (Troubleshooting)

Beceri Tetiklenmiyor (Skill Not Triggering)

Beceri Çok Sık Tetikleniyor (Skill Triggers Too Often)

Beceri Açıklamaları Kesiliyor (Skill Descriptions Are Cut Short)

Beceri açıklamaları bağlama yüklenir. Çok sayıda beceriniz varsa, açıklamalar karakter bütçesine sığacak şekilde kısaltılabilir. /doctor komutunu çalıştırarak bütçenin taşıp taşmadığını ve hangi becerilerin etkilendiğini görebilirsiniz.

İlgili Kaynaklar (Related Resources)

Örnek Kullanım Senaryosu

Bir geliştirici, büyük bir monorepo projesinde çalışıyor ve sık sık yaptığı değişiklikleri özetleyip commit mesajı oluşturması gerekiyor. Ayrıca, belirli bir GitHub issue'sunu düzeltmek için standart bir iş akışı izlemek istiyor.

  1. Kişisel beceri dizinini oluşturun:

    mkdir -p ~/.claude/skills/commit-helper
    
  2. ~/.claude/skills/commit-helper/SKILL.md dosyasını oluşturun:

    ---
    description: Summarizes uncommitted changes and creates a commit message. Use when the user asks to commit changes or wants a commit message.
    disable-model-invocation: true
    allowed-tools: Bash(git add *) Bash(git commit *) Bash(git status *) Bash(git diff *)
    ---
    
    ## Current changes
    !`git diff HEAD`
    
    ## Instructions
    1. Summarize the changes above in bullet points
    2. Create a descriptive commit message following conventional commits format
    3. Stage all changes with `git add -A`
    4. Commit with the generated message using `git commit -m "<message>"`
    
  3. Proje bazlı bir issue düzeltme becerisi oluşturun:

    mkdir -p .claude/skills/fix-issue
    
  4. .claude/skills/fix-issue/SKILL.md dosyasını oluşturun:

    ---
    name: fix-issue
    description: Fix a GitHub issue by number
    disable-model-invocation: true
    ---
    
    Fix GitHub issue $ARGUMENTS following our coding standards:
    1. Read the issue description from GitHub
    2. Understand the requirements
    3. Implement the fix
    4. Write tests for the fix
    5. Create a commit with the changes
    
  5. Kullanım: Projede değişiklik yaptıktan sonra /commit-helper yazın. Claude, değişiklikleri özetleyecek, bir commit mesajı oluşturacak ve commit işlemini gerçekleştirecek. Bir issue'yu düzeltmek için /fix-issue 42 yazın, Claude issue'yu okuyup standart iş akışını uygulayacak.