# Skill'ler, yalnızca gerektiğinde yüklenir

Skill, açıklaması bağlamda duran, gövdesi ise iş gerektirdiğinde gelen bir klasördür. Bu ayrım skill'leri ucuz yapıyor, kötü yazılmış bir açıklamayı da pahalı.

## Kullanılana kadar maliyeti olmayan talimatlar

CLAUDE.md'ye yazdığınız her şey her oturumun başında okunur. Birkaç kural için bu sorun değil. Ama haftada bir kez gereken yirmi adımlık bir yayın prosedürü için israf.

**Skill** bunu çözüyor. İçinde `SKILL.md` dosyası olan bir klasör: üstte YAML frontmatter, altta markdown talimatlar. Bağlamda yalnızca açıklama kalıyor. Gövde, skill kullanıldığında yükleniyor; ya siz çağırdığınız için ya da Claude açıklamanın işe uyduğuna karar verdiği için.

Yani skill, içindekiler listesindeki bir satır gibi, gerektiğinde bir bölüme açılabiliyor. Satır hep orada. Bölüm değil.

## Skill nerede durur

Bir skill birkaç yerde bulunabilir ve yer, onu kimin göreceğini belirler.

- `~/.claude/skills/`: kendi skill'leriniz, her projede geçerli
- projenin içindeki `.claude/skills/`: git ile paylaşılır
- bir plugin: sonraki derste göreceksiniz
- managed settings: kurumlar için

Aynı isim iki yerde varsa kurumsal olan kişisel olanı, kişisel olan da proje olanı yener. `.claude/commands/` içindeki özel komutlar skill'lerle birleştirildi, yani ikisi için de tek mekanizma var.

## Dosyanın içinde ne var

Frontmatter alanlarının hepsi isteğe bağlı ama işin çoğunu ikisi yapıyor: `name` ve `description`. Küçük ve gerçekçi bir örnek:

```markdown
---
name: release-notes
description: Draft release notes from the commits since the last tag. Use when asked for a changelog or release summary.
disable-model-invocation: true
---

Summarise the commits since the last tag.

!`git log $(git describe --tags --abbrev=0)..HEAD --oneline`

Group them under Added, Changed and Fixed. Skip merge commits.
```

`!` ve ters tırnakla başlayan satır, Claude metni görmeden önce bir kabuk komutu çalıştırıyor; commit listesi prompt'un içine hazır geliyor. Tuzağı şu: komut başarısız olursa skill çağrısının tamamı iptal oluyor. Hatanın önemi yoksa komutun sonuna `|| true` ekleyin.

`disable-model-invocation: true` skill'i yalnızca sizin başlatabileceğiniz anlamına geliyor. Yan etkisi olan her şeyde, yani yayına almada ya da bir şey göndermede bunu kullanın. Yayınlayan bir skill, Claude "ilgili gibi" bulduğu için çalışmamalı.

**Question:** Şu anda kullanılmayan bir skill'den bağlamda sürekli ne durur?

- SKILL.md dosyasının tamamı
- Yalnızca açıklaması
- Hiçbir şey
- Yalnızca destek dosyaları

**Answer:** Yalnızca açıklaması. Claude skill'in uygun olup olmadığına açıklamaya bakarak karar verir. Gövde yalnızca skill kullanıldığında yüklenir.


## İşe yarayan bir skill yazmak

Kalitenin çoğu açıklamada, çünkü karar verirken Claude'un gördüğü tek parça o.

- Asıl kullanım durumunu başa koyun. Skill listesinde `description` ve `when_to_use` metni birlikte 1.536 karakterde kesiliyor.
- Yalnızca ne olduğunu değil, ne zaman kullanılacağını da yazın. "Yayın notu taslağı çıkar. Changelog istendiğinde kullan" cümlesi, "Yayın notu yardımcısı"ndan iyi.
- `SKILL.md` dosyasını yaklaşık 500 satırın altında tutun, başvuru malzemesini aynı klasördeki destek dosyalarına taşıyın.
- En önemli talimatları başa koyun, çünkü kesme işlemi baştakini koruyor.

> **Sessiz hatalar**
Frontmatter yalnızca `---` dosyanın en ilk satırıysa ayrıştırılıyor. Bilinmeyen alanlar hiçbir uyarı vermeden yok sayılıyor; yani yanlış yazılmış bir `disable-model-invocation` sadece hiçbir şey yapmıyor.


## Maliyeti görmek

Skill'leri token sayılarıyla listelemek için `/skills`, maliyet ve kullanımı görmek için `/skill-doctor` çalıştırın. Açıklaması uzun ve nadiren işe yarayan bir skill'in bedeli her turda boşuna ödeniyor.

Var olan bir skill dosyasındaki değişiklikler anında alınıyor. Yepyeni bir üst düzey skill klasörünün görünmesi için `/reload-skills` gerekiyor.

> **Bir alışkanlığı skill'e çevirin**
Bu ay Claude'a üç kez anlattığınız bir şey düşünün. `.claude/skills/<name>/SKILL.md` oluşturun, ne zaman kullanılacağını söyleyen bir açıklama yazın, `/reload-skills` çalıştırın, sonra maliyetini görmek için `/skills` komutuna bakın.


**Question:** Bir deploy skill'ine neden disable-model-invocation: true yazılır?

- Skill daha hızlı yüklenir
- Yalnızca siz çalıştırabilirsiniz, Claude tahmin yürütüp tetikleyemez
- Açıklama bağlamdan çıkar
- Skill daha fazla araç kullanabilir

**Answer:** Yalnızca siz çalıştırabilirsiniz, Claude tahmin yürütüp tetikleyemez. Yan etkisi olan iş akışları yalnızca siz karar verdiğinizde başlamalı. Bu bayrak varken Claude skill'i kendi başına çağıramaz.
