Modül 3 · Controlling Context · ⏱ 12 dakika

Custom commands

Custom commands

Bu derste neler öğreneceksin

  • .claude/commands/ altında kendi slash komutlarını oluşturmak
  • Frontmatter ile argüman ve scope kontrolü yapmak
  • Takımla paylaşılabilir komut setleri tasarlamak

Aynı prompt’u 5’inci kez yazıyorsan bir custom command yazmanın zamanı geldi. Slash komutlar, tekrarlanan kalıpları tek kelimeye düşürür.

1. Komut nereye yazılır?

İki yer:

KonumKapsam
~/.claude/commands/Kullanıcı seviyesi — tüm projelerinde çalışır
.claude/commands/ (repo içinde)Proje seviyesi — repo’yu klonlayan herkes alır

Dosya adı kebab-case.md. Örneğin: .claude/commands/code-review.md → çağrı /code-review.

2. İçerik formatı

---
description: Mevcut branch'i ana branch'le karşılaştırıp kod review et
argument-hint: "[base-branch]"
allowed-tools: ["Bash", "Read", "Grep"]
---

Bu task için:

1. Git status ve diff'i incele (base: $1 yoksa main)
2. Yeni dosyaları kontrol et
3. Test coverage'ın değişip değişmediğine bak
4. Çıkardığın bulguları madde madde özetle.
  • description: /help listesinde görünür
  • argument-hint: kullanıcıya argüman beklendiğini gösterir
  • allowed-tools: sadece bu tool’ları kullanmasına izin verir
  • $1, $2, $ARGUMENTS: argümanlar

3. Argümanlar

---
description: Bir endpoint'e pagination ekle
argument-hint: "<endpoint-path>"
---

@$1 dosyasını oku. GET handler'ına page ve pageSize query
parametreleri ekle. Default page=1, pageSize=20.

Çağrı:

/add-pagination src/api/users.ts

$1src/api/users.ts olur.

4. $ARGUMENTS ile tüm satırı al

Argümanı yapısal değil serbest metin almak istiyorsan:

---
description: Türkçe LinkedIn post taslağı
argument-hint: "<konu cümlesi>"
---

Aşağıdaki konu hakkında Türkçe, 1500 karakter altı bir LinkedIn post yaz:

$ARGUMENTS

Başlangıçta çarpıcı bir hook, sonra 3 ana fikir, sonunda CTA.

5. Tool sınırlama

allowed-tools ile komutun sadece belirli tool’lara erişmesini sağlarsın:

---
description: Repo'yu read-only inceleme
allowed-tools: ["Read", "Grep", "Glob"]
---

Bu komut hiçbir şeyi yazamaz. Güvenli inceleme akışları için harika.

6. Takım için repo’ya commit et

.claude/commands/*.md dosyalarını commit et. Repo’yu klonlayan herkesin /code-review, /deploy-check, /add-tests gibi tüm takım komutlarına anında erişimi olur — onboarding dakikalara iner.

Özet

  • Aynı prompt’u 3’üncü kez yazıyorsan → custom command
  • .claude/commands/<isim>.md + frontmatter
  • $1, $ARGUMENTS ile argüman
  • allowed-tools ile sınırla
  • Takımla commit ederek paylaş

Sırada ne var?

Bir sonraki derste MCP server’larla Claude Code’u dış sistemlere (Linear, GitHub, Slack, custom database) bağlamayı işliyoruz.