Skip to content

Claude Skills: Kavram, Kurulum ve Pratik Kullanım Rehberi

·10 dk okuma·Ahmet Kaan Celenk
ClaudeClaude CodeAISkillsAnthropic

Claude'u her gün kullananlar için tanıdık bir senaryo: aynı talimatları, aynı kontrol listelerini, aynı çok adımlı prosedürleri her seferinde sohbete yapıştırmak. Bir süre sonra bu tekrar hem zamanınızı yer hem de tutarsızlıklara yol açar. Anthropic bu sorunu çözmek için Claude Skills özelliğini geliştirdi: tek bir Markdown dosyasıyla Claude'a yeni yetenekler kazandırabileceğiniz, paylaşılabilir ve versiyonlanabilir bir mimari.

Bu yazıda Skills'in ne olduğunu, nasıl çalıştığını, MCP protokolüyle araç geliştirme rehberimizde anlattığımız MCP ile Hooks'tan nasıl farklılaştığını ve kendi ilk skill'inizi nasıl oluşturacağınızı adım adım anlatıyoruz.

Claude Skills Nedir?#

Claude Skills, Claude'a uzun ömürlü talimatlar ve prosedürler kazandırmak için tasarlanmış bir uzantı sistemidir. Her skill, bir klasör içindeki SKILL.md dosyasıyla tanımlanır. Bu dosya iki bölümden oluşur: YAML frontmatter (skill'in kimliği ve davranışı) ve Markdown içeriği (Claude'un takip edeceği talimatlar).

Bir analoji yardımcı olabilir: bir asistana iş başında verdiğiniz prosedür dosyası gibi düşünün. "Bir blog yazısı yazarken şu adımları izle, şu kuralları uygula, sonunda bana raporla" gibi. Skill aynı işi Claude için yapar — hem de kalıcı olarak.

NOTE

Skills, Agent Skills açık standardına dayanır. Yani Claude Code dışındaki diğer AI araçlarıyla da uyumlu çalışabilir. Anthropic bu standarda ek olarak alt-ajan yürütme, dinamik bağlam enjeksiyonu ve çağırma kontrolü gibi özellikler katmıştır.

Skill Ne Zaman Yararlıdır?#

Aşağıdaki durumlardan herhangi birini yaşıyorsanız bir skill yazma zamanıdır:

  • Aynı uzun talimatları tekrar tekrar yapıştırıyorsunuz
  • CLAUDE.md dosyanızda bir prosedür şişmiş, artık "bilgi" değil "iş akışı" olmuş
  • Takımınızdaki herkesin aynı kuralla çalışmasını istiyorsunuz
  • Bir görevi /komut şeklinde tetiklenebilir hale getirmek istiyorsunuz

Skill'in en güçlü tarafı şudur: içeriği yalnızca çağrıldığında yüklenir. Yani uzun referans materyali bağlam penceresinde yer kaplamaz, ihtiyaç duyduğunuzda devreye girer.

Skills, MCP ve Hooks: Hangisi Ne İşe Yarar?#

Claude ekosisteminde üç farklı uzantı mekanizması var ve sık sık karıştırılırlar. Aralarındaki farkı netleştirelim:

ÖzellikNe yaparNe zaman kullanılır
SkillsClaude'a talimat ve prosedür paketi yüklerTekrarlayan görevler, iş akışları, kontrol listeleri
MCPHarici araç ve veri kaynaklarına bağlanırCanlı veri (API, veritabanı), dış sistem entegrasyonu
HooksOlay tetikli otomasyon kurarTool kullanımı öncesi/sonrası, lifecycle olayları

Basitçe söylemek gerekirse:

  • Skill → "Claude'a ne yapacağını öğret"
  • MCP → "Claude'a neye erişebileceğini ver"
  • Hook → "Claude bir şey yaptığında otomatik olarak başka bir şey çalıştır"

MCP araç geliştirme yazımızda anlattığımız gibi, MCP yapay zekayı dış dünyaya açmak için kullanılır. Skills ise Claude'un kendi içindeki davranışını şekillendirir. Bu üç özellik aslında birbirinin alternatifi değil, birbirini tamamlayan araçlardır.

TIP

Çelenk Yazılım olarak hem MCP araçları hem de Skills'i aynı projede birlikte kullanıyoruz. Örneğin bir döviz kuru MCP aracını veri kaynağı olarak kullanırken, finansal rapor üretimi için bir Skill çalıştırıyoruz.

Bir Skill Nasıl Çalışır?#

Skill'in çalışma akışı şu şekildedir:

Loading diagram...

İki çağırma yöntemi vardır:

  1. Manuel çağırma: /skill-adi yazarak doğrudan tetiklersiniz
  2. Otomatik tetiklenme: Claude description alanını okuyarak ilgili olduğuna karar verirse skill'i otomatik yükler

Skill içeriği bir oturumda yalnızca bir kez yüklenir ve oturum boyunca bağlamda kalır. Bu yüzden talimatları "tek seferlik adımlar" değil, "her zaman geçerli kurallar" gibi yazmak en iyi pratiktir.

Skill'ler Nerede Yaşar?#

Bir skill'i nereye koyduğunuz, kimlerin erişebileceğini belirler:

KonumYolKimin için
EnterpriseYönetilen ayarlarTüm organizasyon
Personal~/.claude/skills/<isim>/SKILL.mdTüm projeleriniz
Project.claude/skills/<isim>/SKILL.mdYalnızca bu proje
Plugin<plugin>/skills/<isim>/SKILL.mdPlugin etkinleştirildiği yerler

Aynı isimde birden fazla skill varsa öncelik şu sırayla işler: Enterprise > Personal > Project. Plugin skill'leri ise plugin-adi:skill-adi namespace'i kullandığı için çakışmaz.

IMPORTANT

Project seviyesindeki skill'ler .claude/skills/ klasöründe bulunur ve git ile versiyonlanabilir. Bu, takım çalışmasında her geliştiricinin aynı standartlarla çalışmasını sağlar. Çelenk Yazılım'da tüm proje skill'lerini repository içinde tutuyoruz ve kod gibi versiyonluyoruz.

SKILL.md Yapısı#

Bir skill klasörü şu şekilde organize edilir:

my-skill/
├── SKILL.md           # Zorunlu — ana talimatlar
├── template.md        # İsteğe bağlı — şablon dosyası
├── examples/          # İsteğe bağlı — örnek çıktılar
│   └── sample.md
└── scripts/           # İsteğe bağlı — çalıştırılabilir betikler
    └── helper.sh

SKILL.md zorunludur ve şu yapıya sahiptir:

SKILL.md
---
name: my-skill
description: Bu skill ne yapar ve ne zaman kullanılır
---
 
Skill talimatlarınız buraya gelir.
 
## Adımlar
 
1. İlk adım
2. İkinci adım
3. Üçüncü adım

Frontmatter Alanları#

YAML frontmatter alanları skill'in davranışını yönetir. En sık kullanılanlar:

AlanZorunluAçıklama
nameHayırSlash komut adı. Boşsa klasör adı kullanılır.
descriptionÖnerilirSkill'in ne yaptığı. Otomatik tetiklenme için kritik.
disable-model-invocationHayırtrue ise yalnızca kullanıcı tetikleyebilir.
user-invocableHayırfalse ise yalnızca Claude otomatik kullanır, / menüsünde görünmez.
allowed-toolsHayırSkill aktifken Claude'un izin sormadan kullanabileceği araçlar.
argument-hintHayırOtomatik tamamlamada gösterilen argüman ipucu.
contextHayırfork ile alt-ajan içinde izole çalışır.
pathsHayırGlob desenleri — sadece eşleşen dosyalarla çalışırken etkin olur.

description alanı kritik öneme sahiptir çünkü Claude bunu okuyarak skill'i ne zaman kullanacağına karar verir. İlk 250 karakter otomatik tamamlamada kesilir, bu yüzden en önemli kelimeleri başa koyun.

WARNING

description alanı zayıfsa skill otomatik tetiklenmez. "Bu skill kod inceler" yerine "Pull request'leri inceler, kod stilini doğrular ve hata aramaya yardımcı olur — code review için kullan" gibi anahtar kelime zengin bir açıklama yazın.

İlk Skill'inizi Adım Adım Oluşturun#

Şimdi pratik bir örnek yapalım: git commit mesajı standardize eden bir skill. Çelenk Yazılım'da kullandığımız bu skill, conventional commits formatına göre commit mesajı üretir.

Adım 1: Klasörü Oluşturun#

Proje seviyesinde bir skill oluşturuyoruz:

mkdir -p .claude/skills/commit-mesaji

Adım 2: SKILL.md Dosyasını Yazın#

.claude/skills/commit-mesaji/SKILL.md
---
name: commit-mesaji
description: Conventional Commits standardına uygun git commit mesajı oluşturur. Yapılan değişikliklere göre tip seçer (feat, fix, refactor vb.) ve açıklayıcı bir başlık yazar. Git commit yapılacağı zaman kullan.
disable-model-invocation: false
allowed-tools: Bash(git diff *) Bash(git status *)
---
 
Conventional Commits formatında bir commit mesajı oluştur:
 
## Adımlar
 
1. `git status` ve `git diff --staged` çıktısını incele
2. Değişikliklerin türünü belirle:
   - **feat:** Yeni özellik
   - **fix:** Hata düzeltmesi
   - **refactor:** İşlevsellik değişmeden kod düzenleme
   - **docs:** Dokümantasyon değişikliği
   - **style:** Formatlama, noktalama
   - **test:** Test ekleme/güncelleme
   - **chore:** Yapı, konfigürasyon değişikliği
3. Kısa ve net bir başlık yaz (max 72 karakter)
4. Gerekirse açıklayıcı bir gövde ekle
5. Commit mesajını oluştur ve onay için kullanıcıya göster
 
## Kurallar
 
- Mesajlar Türkçe olmalı
- "neden" odaklı yaz, "ne" odaklı değil
- Buyurgan kip kullan: "Ekle" değil "Eklendi"
- Breaking change varsa `BREAKING CHANGE:` notuyla belirt

Adım 3: Skill'i Test Edin#

İki şekilde test edebilirsiniz:

Doğrudan çağırarak:

/commit-mesaji

Otomatik tetiklemeyi deneyerek:

git commit yapacağım, mesaj hazırlar mısın?

Her iki durumda da Claude git diff çıktısını okuyacak, değişiklikleri analiz edecek ve uygun bir commit mesajı önerecektir.

TIP

Skill çalışırken allowed-tools alanında belirttiğiniz Bash komutları için izin sorulmaz. Bu, sık kullanılan iş akışlarını sürtünmesiz hale getirir. Ancak güvenlik için yalnızca okuma işlemleri (git diff, git status) için pre-approval verin. git push veya rm gibi geri alınamaz komutlar için asla pre-approval vermeyin.

Pratik Skill Örnekleri#

İşte gerçek dünyada kullandığımız ve sizin de uyarlayabileceğiniz birkaç skill fikri:

1. Code Review Skill#

Pull request'i inceler, kod stilini, hataları ve güvenlik açıklarını kontrol eder. git diff çıktısını analiz eder ve yapılandırılmış bir rapor üretir.

2. Blog Yazısı Skill'i#

Bu yazıyı oluştururken kullandığımız blog-yaz skill'i, SEO uyumlu MDX blog yazıları üretir. Anahtar kelime araştırması, internal linking ve frontmatter standardizasyonu içerir. Tek bir /blog-yaz komutuyla tüm süreç tetiklenir.

3. PR Oluşturma Skill'i#

Mevcut branch'ten ana dala karşı değişiklikleri analiz eder, başlık ve açıklama üretir, gh pr create komutunu çalıştırır.

4. Test Üretme Skill'i#

Bir fonksiyonu okur, edge case'leri analiz eder, ilgili test framework'üne (Jest, Pytest, vs.) uygun test dosyası üretir.

5. Dokümantasyon Skill'i#

Bir kod dosyasını okur, public API'lerini çıkarır, JSDoc/Docstring/Markdown formatında dokümantasyon üretir.

İleri Düzey Özellikler#

Skills temel kullanımın ötesinde güçlü özellikler sunar.

Argüman Geçirme#

Skill'lere argüman geçebilir ve bunları içeride kullanabilirsiniz:

---
name: issue-coz
description: GitHub issue'yu çöz
---
 
GitHub issue #$ARGUMENTS'i çöz:
 
1. Issue açıklamasını oku
2. Gereksinimleri anla
3. Çözümü uygula
4. Test yaz
5. Commit oluştur

/issue-coz 123 çağrısı $ARGUMENTS'i 123 ile değiştirir.

İndeksli erişim için $0, $1, $2 gibi shortcut'lar kullanılır.

Dinamik Bağlam Enjeksiyonu#

!`komut` sözdizimi, skill içeriği Claude'a gönderilmeden önce shell komutu çalıştırır. Çıktı yerine yapışır:

---
name: pr-ozet
description: Pull request özetini çıkar
allowed-tools: Bash(gh *)
---
 
## PR bağlamı
- Diff: !`gh pr diff`
- Yorumlar: !`gh pr view --comments`
 
## Görev
Bu PR'yi özetle ve risk noktalarını belirt.

Bu sayede skill çağrıldığında Claude canlı veriyle çalışır, statik talimatlarla değil.

Alt-Ajan İçinde Çalıştırma#

context: fork eklediğinizde skill izole bir alt-ajanda çalışır. Ana sohbetinizden ayrı bir bağlam alır:

---
name: derin-arastirma
description: Bir konuyu derinlemesine araştır
context: fork
agent: Explore
---
 
$ARGUMENTS konusunu kapsamlı şekilde araştır:
 
1. Glob ve Grep ile ilgili dosyaları bul
2. Kodu oku ve analiz et
3. Bulguları dosya referanslarıyla özetle

Bu yaklaşım, ana bağlamınızı kirletmeden ağır araştırma görevlerini delege etmenize imkan verir.

Skills'i Paylaşma ve Versiyonlama#

Skills'in en güçlü yanlarından biri paylaşılabilir olmasıdır. Üç ana paylaşım modeli vardır:

  1. Project Skills: .claude/skills/ klasörünü git'e commit edin. Repo'yu klonlayan herkes aynı skill'lere otomatik erişir.
  2. Plugins: Bir plugin içinde skills/ klasörü oluşturarak skill'lerinizi başkalarına dağıtabilirsiniz.
  3. Managed Settings: Organizasyon genelinde dağıtım için yönetilen ayarlar üzerinden deploy edin.

TIP

Çelenk Yazılım olarak müşteri projelerimizde her zaman proje seviyesinde skill'ler tutuyoruz. Yeni bir geliştirici takıma katıldığında, repo'yu klonlamak yeterli — tüm proje standartları, commit mesajı kuralları ve workflow'ları skill'ler aracılığıyla otomatik aktarılıyor.

En İyi Uygulamalar ve Tuzaklar#

Skills yazarken dikkat etmeniz gereken bazı noktalar:

Yapılması Gerekenler#

  • SKILL.md dosyasını 500 satırın altında tutun. Daha uzun referans materyalleri ayrı dosyalara taşıyın ve SKILL.md içinden referans verin.
  • description alanını anahtar kelime zengin yazın. Otomatik tetiklenme bu alana bağlı.
  • Başa en önemli kelimeleri koyun. İlk 250 karakter kritik.
  • Yan dosyaları (templates, examples) klasörünüze ekleyin. Skill içinde "şu dosyaya bak" diyerek referans verin.
  • Test edin. Skill'i hem manuel hem otomatik çağırarak doğrulayın.

Yapılmaması Gerekenler#

  • disable-model-invocation: true olmadan tehlikeli işlemler eklemeyin. Deploy, push gibi işlemleri Claude otomatik tetiklememeli.
  • Çok geniş allowed-tools izni vermeyin. Yalnızca skill'in ihtiyaç duyduğu komutlara izin verin.
  • Geçici görev talimatları yerine kalıcı kurallar yazın. Skill içeriği oturum boyunca geçerlidir.
  • description'da "kullan" kelimesini unutmayın. "Kod inceler" yerine "Code review için kullan" daha güçlü tetikleme yapar.

Sonuç#

Claude Skills, AI destekli iş akışlarını sürdürülebilir ve paylaşılabilir hale getiren güçlü bir özelliktir. Tek bir SKILL.md dosyasıyla, takımınızın tamamının aynı standartlarla çalışmasını sağlayabilir, tekrarlayan görevleri tek komuta indirgeyebilir ve Claude'u kendi iş akışlarınıza özelleştirebilirsiniz.

Skill'lerin asıl gücü, MCP ile geliştirdiğiniz araçlarla ve Hooks ile birleştirildiğinde ortaya çıkar. Skill ne yapacağını söyler, MCP neye erişeceğini sağlar, Hooks ise ne zaman tetikleneceğini yönetir. Bu üçlü kombinasyon, modern AI tabanlı geliştirme süreçlerinin temelidir.

Aynı modellerin güvenlik tarafında nasıl yeni bir dönem açtığını merak ediyorsanız, Claude Mythos ve yapay zeka güvenlik analizi yazımızı inceleyebilirsiniz.

ℹ️

Çelenk Yazılım olarak hem AI destekli geliştirme süreçlerinin kurulumu hem de Claude Skills, MCP ve Hooks gibi özelliklerin müşteri projelerine entegrasyonu konusunda hizmet veriyoruz. Projeniz için danışmanlık almak isterseniz iletişim sayfamızdan bize ulaşabilirsiniz.

Kaynaklar#

Paylaş:

İlgili Yazılar