
Claude Code Slash Komutlarına Nasıl Bayrak Eklenir: Gerçekten İşe Yarayan 4 Yöntem
Claude Code, özel slash komutları için --bayrak sözdizimini beklediğiniz gibi ayrıştırmaz — ama dört farklı yöntem aynı deneyimi verir ve üçü CLI ayrıştırmasından çok daha temizdir. Claude Code slash komutlarına bayrak eklemenin doğru yolu şu: bugün kopyalayabileceğiniz çalışan .md dosyalarıyla.
Kısa Yanıt:
- Claude Code, özel komutlar için CLI bayraklarını (
--json,--verbose) ayrıştırmaz — motor içinde bayrak ayrıştırıcı yoktur. - CLI benzeri bir deneyim için bayrakları
$ARGUMENTSiçine yazın ve LLM bunları doğal dil olarak yorumlasın. - Türlü argümanlar için konumsal
$1/$2veya frontmatter'dakiarguments:alanında tanımlanan adlandırılmış argümanları kullanın. - Beklenen bayrakları
argument-hint:ile belgeleyin;/otomatik tamamlama kullanıcıya bunları gösterir.
Claude Code Slash Komut Argümanları Nasıl Çalışır?
Claude Code'un motoru, komutu LLM'e göndermeden önce üç tür belirteci değiştirir: $ARGUMENTS (komut adından sonraki tüm dizi), konumsal $0/$1/$2 (kabuk stili alıntılanmış parçalar) ve frontmatter'da tanımlanan adlandırılmış $değişkenAdı. Yerleşik bir CLI bayrak ayrıştırıcısı yoktur — --dry-run ifadesi $ARGUMENTS içinde düz metin olarak kalır.
İşte herkesi şaşırtan kısım. /deploy --staging --dry-run yazdığınızda Claude Code, --staging --dry-run üzerinde argparse çalıştırmaz. Motor, tüm o diziyi .md dosyanızın $ARGUMENTS referans verdiği yere yapıştırır ve ardından hazırlanan istemi modele gönderir. LLM, --staging --dry-run ifadesini düz İngilizce olarak görür ve ne yapacağına karar verir.
Bu bir hata değil — tasarımın kendisi bu. Motor bir değiştirme katmanıdır, ayrıştırıcı değil. /clear ve /help gibi yerleşik komutların (resmi CLI referansına bakın) gerçek bayrakları vardır, ancak yazdığınız özel komutlar farklı kurallara tabidir.
Claude Code'un motoru belirteçleri değiştirir, ardından hazırlanan istemi LLM'e iletir. Bayrak ayrıştırıcısı yoktur.
Kendi Claude Code çalışmalarımızda en sık karşılaşılan kafa karışıklığı tam olarak budur — geliştiriciler, LLM'in ayrıştırıcı olduğunu fark etmeden önce --verbose ifadesinin "neden algılanmadığını" anlamaya çalışarak bir saat harcar. Claude Code v2.1.126 itibarıyla (Mayıs 2026), bu davranış resmi slash-komutları belgelerinde belgelenmiştir ve yakın zamanda değişmesi beklenmemektedir. Slash komutları, Claude Code hook'larının bir kardeş primitifidir — her ikisi de motoru genişletir, ancak komutlar kullanıcı girdisinde tetiklenirken hook'lar araç olaylarında tetiklenir.
İşte değiştirme modelini kanıtlayan en küçük özel komut:
---
description: Echo whatever the user types after the command
argument-hint: [anything]
---
The user passed these arguments: $ARGUMENTS
Repeat them back verbatim, then describe what the user probably meant.Bunu .claude/commands/echo-args.md olarak kaydedin, /echo-args hello world --foo yazın; LLM hello world --foo dizisinin istemin içine düz metin olarak yerleştirildiğini görecektir. Zihinsel model tamamen bu kadar. Komut dosyalarının daha geniş skills sistemiyle nasıl ilişkilendiğinin daha derin bir anlatımı için Skills rehberimize bakın.
5 Dakikada İlk Parametrik Slash Komutunuzu Oluşturun
.claude/commands/greet.md dosyasını üç satır frontmatter ve $ARGUMENTS referans eden bir istem satırıyla oluşturun. Claude Code'u yeniden başlatın, /greet World yazın ve World ifadesinin LLM görmeden önce istemin içine yerleştiğini izleyin. Tüm tören beş adım, hiç derleme aracı yok.
İşte tarif:
- Dizini oluşturun. Proje köküzden
mkdir -p .claude/commandsçalıştırın..claude/klasörü kodunuzun yanında yer alır; içindeki komutlar Claude Code bir oturum başlattığında otomatik olarak keşfedilir. - Komut dosyasını yazın. Aşağıdaki kodu
.claude/commands/greet.mdolarak kaydedin. - Oturumunuzu yenileyin. Claude Code'dan çıkın ve yeniden başlatın (sürümünüz destekliyorsa
/reloadçalıştırın). Komutlar oturum başlangıcında bir kez okunur. - Çağırın. Sohbette
/greet Worldyazın. - Değiştirmeyi doğrulayın. Transkripti açın ve LLM'in
Worldifadesini istem gövdesine yerleşik olarak gördüğünü,$ARGUMENTSbelirtecini değil, doğrulayın.
Tam dosya şu:
---
description: Greet someone enthusiastically
argument-hint: <name>
---
You are a friendly assistant. Greet the person named "$ARGUMENTS" with one short, warm sentence. Then ask them what they're working on today.Terminal etkileşimi:
> /greet World
Hey World, great to see you! What are you working on today?Hepsi bu kadar. Artık parametrik bir slash komutunuz var. argument-hint alanı, / otomatik tamamlama menüsünün komutunuzun yanında <name> göstermesini sağlar — küçük bir UX dokunuşu, büyük bir kazanım.
$ARGUMENTSdeğiştirilmiyorsa 10 ihtimalden 9'unda$argsveya$ARGSyazmışsınızdır — belirteç kelimesi kelimesine büyük harfle yazılmalıdır.
Belirteç büyük/küçük harfe duyarlıdır ve tam olarak yazılmalıdır. $ARGUMENTS çalışır. $arguments, $args, $ARGS, ${ARGUMENTS} hepsi sessizce başarısız olur — LLM'e düz metin olarak gönderilirler ve model anlamsız bir şey görür. Daha derin bir hata varsaymadan önce yazımı üç kez kontrol edin.
Argüman İşlemeyi Hangi Frontmatter Alanları Kontrol Eder?
Beş frontmatter alanı slash komutunun argümanları nasıl ele aldığını belirler: argument-hint (otomatik tamamlamanın gösterdiği), allowed-tools (komutun çağırabileceği), arguments (adlandırılmış argüman bildirimi), model (hangi Claude varyantının çalıştığı) ve disable-model-invocation (komutu yalnızca kullanıcıya kilitler). Birlikte ihtiyacınız olacak neredeyse her parametrik kalıbı karşılarlar.
Claude Code v2.1.x özel komutları için tam frontmatter referansı:
| Alan | Amaç | Örnek | Zorunlu mu? |
|---|---|---|---|
description: | / menüsündeki tek satır özet | Run staging deploy | Tavsiye edilir |
argument-hint: | Komut adından sonra gösterilen otomatik tamamlama ipucu | [--dry-run] [--region us] | Tavsiye edilir |
allowed-tools: | Komutun çağırabileceği araçların izin listesi | Bash(git:*) Read Edit | İsteğe bağlı |
arguments: | Adlandırılmış argüman bildirimi | [issue, branch] | İsteğe bağlı |
model: | Bu komut için model geçersiz kılma | claude-opus-4-7 | İsteğe bağlı |
disable-model-invocation: | Agent'ın bu komutu çağırmasını engelle | true | İsteğe bağlı |
context: fork | İzole bağlamda çalıştır | fork | İsteğe bağlı |
Monitörünüze yapıştırmaya değer iki tuzak. Birincisi, allowed-tools virgülle değil boşlukla ayrılır. Bash(git:*), Read, Edit yazmak herhangi bir şeyi izin listesine sessizce eklemez — ayrıştırıcı tüm diziyi tek bir hatalı biçimlendirilmiş giriş olarak değerlendirir. Bash(git:*) Read Edit kullanın. Bunu zor yoldan öğrendik; benzer kalıplar için config dosyası kuralları hakkındaki CLAUDE.md en iyi uygulamalar rehberimize bakın.
İkincisi, model: alanı kullanıcının oturum için seçtiği modeli geçersiz kılar. Bir komut hesaplama açısından ucuzsa ve daha küçük bir varyanta zorlamak istiyorsanız kullanışlıdır — farklı komut türleri için Opus 4.7 ve Sonnet arasında seçim yapmak için model seçimi rehberimize bakın.
disable-model-invocation: true alanı, yıkıcı komutlar için güvenlik ağınızdır. /deploy-prod veya /drop-database üzerinde ayarlayın; diğer agent'lar bu komutları programlı olarak çağıramaz — yalnızca bir insan sohbete yazarak tetikleyebilir.
Gerçekten Kullanacağınız 4 Argüman Yöntemi Nedir?
Dört yöntem, gerçek Claude Code slash komutlarının yaklaşık %95'ini karşılar: (1) boolean bayrak — $ARGUMENTS içinden LLM tarafından ayrıştırılan /deploy --dry-run gibi; (2) değer bayrağı — $ARGUMENTS içinden çıkarılan /test --filter auth gibi; (3) zorunlu konumsal + isteğe bağlı bayrak — $1 ve $ARGUMENTS'ı bir arada kullanan /fix-issue 123 --priority high gibi; ve (4) kesin türlü konumsal — $0/$1/$2 kullanan /migrate-component SearchBar React Vue gibi.
Komutunuzun şekline uyan birini seçin. Her biri için çalışan bir .md dosyası burada.

Yöntem 1: Boolean Bayrak (--dry-run)
CLI bayrak deneyimi istiyorsanız ve bayrak sadece açık/kapalı ise, $ARGUMENTS içinde tespit etmesi için LLM'e güvenin. Ayrıştırma mantığı yok, konumsal karmaşıklık yok — sadece istemi kuralı açıklayın.
---
description: Deploy to staging or production
argument-hint: [--dry-run]
allowed-tools: Bash(git:*) Bash(npm:*) Read
---
Deploy the current branch to staging.
Arguments passed: $ARGUMENTS
If "$ARGUMENTS" contains "--dry-run", DO NOT actually deploy. Instead, print the deployment plan: which files would change, which env vars would be set, and which commands would run. Stop after printing the plan.
Otherwise, proceed with the real deployment using `git push staging main` and `npm run deploy:staging`./deploy --dry-run yazın; LLM bayrağı görür, planı yazdırır ve durur. /deploy yazın, gönderir. Motor hiç ayrıştırma yapmadı — LLM tüm işi yaptı; bu da zaten iyi olduğu şeydir.
Yöntem 2: Değer Bayrağı (--filter <kalıp>)
Aynı fikir, ama artık bayrak bir değer taşıyor. LLM, --filter auth ifadesini $ARGUMENTS'tan okur ve sonrasındaki alt dizeyi kullanır.
---
description: Run the test suite, optionally filtered
argument-hint: [--filter <pattern>]
allowed-tools: Bash(npm:*) Read
---
Run the project's test suite.
Arguments: $ARGUMENTS
If "$ARGUMENTS" contains "--filter <pattern>", run only tests matching <pattern>. Use `npm test -- --grep <pattern>` for the actual command.
If no `--filter` is present, run the full suite with `npm test`.
Report pass/fail counts at the end./test --filter auth yalnızca auth testlerini çalıştırır. /test her şeyi çalıştırır. LLM, --filter sonrasındaki kalıbı güvenilir biçimde çıkarır çünkü Claude bu tür yapılandırılmış metin çıkarımında gerçekten iyidir — insanların beklediğinden çok daha güvenilir.
Yöntem 3: Zorunlu Konumsal + İsteğe Bağlı Bayrak
Bu, kendi komut kütüphanemizde en çok kullandığımız melez yöntem. $1 zorunlu argümanı taşır, $ARGUMENTS her şeyi taşır (böylece LLM isteğe bağlı bayrakları hâlâ tespit edebilir). Bir argüman mutlaka gerekli olduğunda ve geri kalanı serbest biçimli bağlam olduğunda en temiz karışımdır.
---
description: Fix a GitHub issue
argument-hint: <issue-number> [--priority high|medium|low] [context...]
allowed-tools: Bash(gh:*) Bash(git:*) Read Edit
---
Fix GitHub issue #$1.
Full arguments: $ARGUMENTS
Steps:
1. Run `gh issue view $1` to load the issue body.
2. Read the codebase to locate the relevant file(s).
3. If "$ARGUMENTS" contains "--priority high", create a hotfix branch off main. Otherwise branch off develop.
4. Apply the fix, run tests, and open a PR linked to the issue.
Anything else in $ARGUMENTS after the issue number is freeform context — fold it into your understanding of the bug./fix-issue 1234 --priority high giriş formu başarısız denemeden sonra e-posta alanını temizliyor şeklinde çağırın. $1, 1234'e çözümlenir. $ARGUMENTS, LLM'in hem öncelik bayrağını hem de serbest biçimli açıklamayı ayrıştırdığı tüm sondaki dizeye çözümlenir.
Bu $1 + $ARGUMENTS karışımını kendi /fix-issue komutumuzdaki gibi kullanıyoruz — $1 sorun numarası için, geri kalanı LLM'in ayrıştırdığı serbest biçimli bağlam için. Bir yıllık günlük Claude Code kullanımında en yüksek yatırım getirisi sağlayan yöntem bu oldu.
Yöntem 4: Kesin Konumsal (Türlü)
Her argüman zorunlu ve sıra önemli olduğunda, $ARGUMENTS'ı tamamen bırakın. Belirsizliği ortadan kaldırılmış türlü yuvalar için $0/$1/$2 (veya arguments: frontmatter alanıyla adlandırılmış argümanlar) kullanın.
---
description: Migrate a component between frameworks
argument-hint: <component> <from-framework> <to-framework>
arguments: [component, fromFramework, toFramework]
allowed-tools: Read Edit Write
---
Migrate the component named "$component" from $fromFramework to $toFramework.
1. Read the existing component file (search for `$component.{jsx,tsx,vue,svelte}`).
2. Translate the component idioms from $fromFramework to $toFramework: lifecycle methods, state handling, prop syntax, event binding.
3. Write the new file in the matching extension for $toFramework.
4. Print a diff summary at the end.
If $fromFramework or $toFramework is unsupported, abort and tell the user which frameworks ARE supported (React, Vue, Svelte, Solid)./migrate-component SearchBar React Vue şeklinde çağırın. Adlandırılmış argüman bildirimi, otomatik tamamlamayı ve istem gövdesini kendi kendini belgeler hale getirir — migrate-component.md'yi okuyan herkes hangi yuvanın ne olduğunu bir bakışta anlayabilir. Bu yöntem, üç veya daha fazla zorunlu argümana sahip komutlarda parlar. Bu stili GitHub'daki wshobson/commands gibi topluluk kütüphanelerinde de görebilirsiniz.
Boolean ve değer bayrakları işe yarar çünkü LLM esnek bir ayrıştırıcıdır. Kesin konumsal işe yarar çünkü LLM zekasına gerek yoktur. İkisini birleştirmek sırdır.
$ARGUMENTS, Konumsal veya Adlandırılmış'ı Ne Zaman Kullanmalısınız?
CLI bayrak stili argümanlar istediğinizde ve LLM esnek ayrıştırma yapmasını istediğinizde $ARGUMENTS kullanın. Argümanlar türlü, sıralı ve LLM belirsizliği istemediğinizde konumsal $1/$2 kullanın. 3 veya daha fazla argüman olduğunda ve otomatik tamamlamada netlik özlülükten daha önemli olduğunda adlandırılmış arguments: kullanın. Karar matrisi:
| Kullanım durumu | En iyi seçim | Sözdizimi | Artıları | Eksileri | Örnek |
|---|---|---|---|---|---|
| İsteğe bağlı argümanlarla CLI bayrak deneyimi | $ARGUMENTS | Gövdede $ARGUMENTS | Esnek, Unix UX'ini yansıtır | LLM taraflı ayrıştırma, doğrulama yok | /deploy --staging --dry-run |
| Türlü, sıralı zorunlu argümanlar | Konumsal $0/$1 | Gövdede $0 $1 $2 | Sıfır belirsizlik, hızlı | Argüman sırasına kırılgan | /migrate Button React Vue |
| Netliğin önemli olduğu 3+ argüman | arguments: üzerinden adlandırılmış | arguments: [a, b, c] sonra $a $b $c | Kendi kendini belgeler | Ayrıntılı frontmatter | /issue 123 main high |
| Karışık zorunlu + isteğe bağlı | Melez ($1 + $ARGUMENTS) | $1 sonra $ARGUMENTS | İkisinin de iyisi | Tek dosyada iki zihinsel model | /fix-issue 123 --priority high |

Çoğu geliştiricinin içgüdüsü önce $ARGUMENTS'a ulaşmaktır çünkü bildikleri bash dünyasına en yakın hissettiriyor. Prototipler için sorun değil, ancak sözleşme istikrarlı olduğunda türlü konumsal gerçekten daha iyidir. LLM'in $1'i ayrıştırmasına gerek yoktur — zaten temiz bir dizedir.
Kaba bir kural: Komutun imzasını "veya" ve "isteğe bağlı" kelimelerini kullanmadan tek bir Türkçe cümleyle açıklayabiliyorsanız konumsal kullanın. Bu kelimelere ihtiyaç duyuyorsanız $ARGUMENTS kullanın.
Slash Komutları Artık Skills ile Aynı mı?
Anthropic, 2026 baharında özel komutları daha geniş skills sistemine dahil etti, ancak .claude/commands/*.md dosyaları hâlâ çalışıyor ve aynı frontmatter'ı kullanıyor. Bir skill, disable-model-invocation gibi ekstra çağırma kontrolüyle birlikte bir dizindir (.claude/skills/foo/SKILL.md artı destekleyici dosyalar). Bir komut, tek bir .md dosyasıdır. Aynı değiştirme kuralları, farklı ambalaj.
Pratik fark:
| Yön | .claude/commands/foo.md | .claude/skills/foo/ |
|---|---|---|
| Dosya şekli | Tek .md dosyası | SKILL.md + destekleyici dosyalardan oluşan dizin |
| En iyi kullanım | Hızlı tek seferlik komutlar, proje yerel otomasyonlar | Şablonlar ve referanslarla yeniden kullanılabilir paketler |
| Çağırma kontrolü | Yalnızca frontmatter | Frontmatter + dosya başına disable-model-invocation |
| Argüman işleme | Aynı ($ARGUMENTS, $1, adlandırılmış) | Aynı ($ARGUMENTS, $1, adlandırılmış) |

Yani hayır, .claude/commands/ kullanımdan kaldırılmadı. Anthropic, sistemleri birleştirirken dosya formunu açıkça çalışır durumda bıraktı — çok fazla projede sürüm kontrolüne sabitlenmiş komut kütüphaneleri var. Destekleyici dosyalar istiyorsanız (skill'in yüklediği bir CONTRIBUTING.md referansı veya kopyaladığı bir template.json gibi), skills'e geçin. Aksi takdirde komutlarla kalın.
Birleşme, açık agentskills.io standardına doğru daha geniş bir itişin parçasıdır ve bilmekte fayda olan birkaç v2.1.x değişikliğinden biridir — tam özellik manzarası için Claude Code v2.1 özellikleri yazımıza ve daha derin bir skills anlatımı için skills tutorial'ımıza bakın.
$ARGUMENTS Neden Değiştirilmiyor? Sık Karşılaşılan Hatalar
$ARGUMENTS'ın değiştirilmemesinin beş yaygın nedeni: (1) küçük harf veya kısaltma belirteç ($args, $ARGS, $arguments — tam olarak $ARGUMENTS olmalı), (2) çok kelimeli argümanlar tırnak işareti içine alınmamış (/komut merhaba dünya ayrışır; /komut "merhaba dünya" bir arada tutar), (3) allowed-tools boşluk yerine virgülle ayrılmış, (4) komut dosyası .claude/commands/ veya .claude/skills/ içinde değil, (5) dosyayı düzenledikten sonra Claude Code oturumunun yeniden başlatılması gerekiyor.
$ARGUMENTS LLM İsteminde Düz Metin Olarak Görünüyor
Belirti: İsteminiz modelin yanıtında $ARGUMENTS ifadesini düz metin olarak gösteriyor, sanki motor onu yoksaydı. Neden: Yanlış büyük/küçük harf veya yazım hatası. Belirteç tam olarak $ARGUMENTS — sekiz karakter, tamamı büyük harf. Düzeltme: .md'yi açın, $args, $ARGS, $arguments, ${ARGUMENTS} için grep yapın, $ARGUMENTS ile değiştirin. $args yazım hatası ekibimizden her geliştiriciye en az bir kez çarptı; "bilinmeyen slash komutu" ailesindeki tek yüksek hacimli hata budur.
Çok Kelimeli Argüman Beklenmedik Şekilde Bölünüyor
Belirti: /migrate-component Search Bar React Vue çalıştırdınız ve $1, Search; $2 ise Bar. Neden: Boşluk, konumsal argümanları böler. Düzeltme: Çok kelimeli argümanı tırnak içine alın: /migrate-component "Search Bar" React Vue. Artık $1, Search Bar. Bu, motorun kasıtlı olarak yansıttığı kabuk davranışıyla örtüşür.
allowed-tools Dikkate Alınmıyor
Belirti: Komut çalışıyor ancak Claude, izin listesine eklediğinizi düşündüğünüz araçları çağırmayı reddediyor veya listelemediniz araçları çağırıyor. Neden: Boşluk yerine virgülle ayrılmış. Düzeltme: allowed-tools: Bash, Read, Edit ifadesini allowed-tools: Bash Read Edit olarak değiştirin. Araç alt kalıpları için Bash(git:*) Bash(npm:*) Read biçimini kullanın.
Komut / Otomatik Tamamlamada Görünmüyor
Belirti: / yazıyorsunuz ve komutunuz listede yok. Neden: Dosya konumu, eksik frontmatter veya yanlış ayarlanmış disable-model-invocation. Düzeltme: Dosyanın proje köküne göre .claude/commands/yourcmd.md (veya .claude/skills/yourcmd/SKILL.md) konumunda olduğunu doğrulayın. Frontmatter'ın en azından bir description: alanına sahip olduğunu doğrulayın. disable-model-invocation: true ayarladıysanız, komut diğer agent'lara görünmez ancak insan tarafından yazılan / menüsünde hâlâ görünür.
.md Dosyasını Düzenlediniz Ama Hiçbir Şey Değişmedi
Belirti: Hatayı düzelttiniz, dosyayı kaydettiniz, komutu tekrar çalıştırdınız, aynı bozuk davranış. Neden: Claude Code, komut dosyalarını oturum başlangıcında önbelleğe alır. Düzeltme: Claude Code'dan çıkın ve yeniden başlatın veya sürümünüz destekliyorsa /reload çalıştırın.
Claude Code,
.mddosyalarını oturum başlangıcında okur. Bir komutu düzenledikten sonra "değişmiyor" gibi görünüyorsa, daha derin bir hata varsaymadan önce oturumunuzu yeniden başlatın.
Bu beşinin ötesindeki uç durumlar için Claude Code repo sorunları arama yapabileceğiniz en iyi yerdir. Gördüğümüz garip değiştirme hatalarının çoğu, yukarıdakilerin bir türüdür.
SSS: Claude Code Slash Komut Argümanları
Claude Code slash komutuna nasıl argüman geçirilir?
Argüman dizisini komut adından sonra yazın: /greet World. Komutunuzun .md dosyasının içinde, değere $ARGUMENTS (tüm dize), $1 (ilk konumsal) veya $değişkenAdı (frontmatter'da arguments: [değişkenAdı] bildirdiyseniz) olarak başvurun. Motor, istemi LLM'e göndermeden önce belirteci değiştirir.
Claude Code'da $ARGUMENTS nedir?
$ARGUMENTS, özel slash komut dosyalarındaki bir değiştirme belirtecidir; Claude Code motoru bunu kullanıcının komut adından sonra yazdığı tüm argüman dizisiyle değiştirir. Bir kullanıcı /deploy --staging --dry-run çalıştırırsa, $ARGUMENTS LLM onu görmeden önce hazırlanan istem içinde --staging --dry-run literal dizisi olur.
Claude Code slash komutları --json gibi CLI stili bayraklar alabilir mi?
Yerel olarak hayır — motorun özel komutlar için bayrak ayrıştırıcısı yoktur. --json ifadesini $ARGUMENTS'a yazarsınız ve istemiz LLM'e bunu tespit etmesini ve buna göre davranmasını söyler. Bu işe yarar çünkü Claude, yapılandırılmış metnin esnek bir ayrıştırıcısıdır. /clear ve /help gibi yerleşik komutların gerçek bayrakları vardır, ancak yazdığınız özel komutlar yalnızca değiştirme kurallarına tabidir.
Claude Code'da $1, $ARGUMENTS ve $isim arasındaki fark nedir?
$1, ilk boşlukla ayrılmış konumsal argümandır ($2 ikincisi, ve böyle devam eder). $ARGUMENTS, tüm bayraklar ve konumsal parçalar dahil tam argüman dizisidir. $isim, frontmatter arguments: [isim] alanında bildirilen adlandırılmış bir argümandır — sayısal indeksleme olmadan kendi kendini belgeleyen konumsal yuvalar istediğinizde kullanışlıdır.
Claude Code'da argument-hint nasıl çalışır?
argument-hint, / otomatik tamamlama menüsünün komut adınızın yanında neyi gösterdiğini kontrol eden bir frontmatter alanıdır. argument-hint: <issue-number> [--priority high] ayarlamak, kullanıcı / yazdığında tam olarak o şablonu gösterir. Yalnızca UX amaçlıdır — argümanları doğrulamaz veya ayrıştırmaz. Yine de ayarlamaya değer çünkü yazabileceğiniz en ucuz dokümantasyondur.
Birden fazla argümanla özel slash komutu nasıl oluştururum?
İki temiz seçenek. Konumsal için: istem gövdenizde $1, $2, $3'e başvurun. Adlandırılmış için: frontmatter'da arguments: [birinci, ikinci, ucuncu] bildirin ve $birinci, $ikinci, $ucuncu'ya başvurun. Adlandırılmış, üç ve üzeri argüman için daha okunabilirdir. $ARGUMENTS'ı yalnızca zorunlu konumsal yuvalardan sonra LLM'in serbest biçimli bir sondaki dizeyi ayrıştırmasını istediğinizde kullanın.
.claude/commands/, .claude/skills/ lehine kullanımdan kaldırıldı mı?
Hayır. Anthropic, iki sistemi 2026 baharında birleştirdi ancak .claude/commands/*.md dosyalarını aynı değiştirme kurallarıyla açıkça çalışır durumda bıraktı. Tek dosyalı otomasyonlar için komutları, çok dosyalı paketler için skills kullanın (SKILL.md artı şablonlar veya referanslar). Aynı frontmatter, aynı $ARGUMENTS davranışı, farklı ambalaj. Her ikisi de v2.1.126 itibarıyla birinci sınıftır.
Neden $ARGUMENTS komutumda değiştirilmiyor?
Sıklık sırasına göre üç temel neden: büyük/küçük harf hatası (büyük harf $ARGUMENTS olmalı, $args veya $arguments değil), dosya konumu yanlış (.claude/commands/ veya .claude/skills/ içinde olmalı) veya eski oturum (Claude Code komut dosyalarını oturum başlangıcında okur, bu yüzden düzenledikten sonra yeniden başlatın). Üçü de tamam görünüyorsa, sorunu izole etmek için H2 #1'deki minimal örnekle /echo-args foo çalıştırın.
Belirli argümanları zorunlu kılabilir miyim?
Motor düzeyinde hayır — yerel zorunlu argüman doğrulaması yoktur. Kalıp, LLM'e isteminizde talimat vermektir: "$1 boşsa dur ve kullanıcıya sorun numarası sağlamasını söyle." Model sözleşmeyi uygular. Kurşun geçirmez değildir, ancak pratikte, özellikle açık bir argument-hint ile eşleştirildiğinde günlük kullanım için yeterince güvenilirdir.
Frontmatter'daki model:, CLI bayraklarını geçersiz kılar mı?
Evet — frontmatter kazanır. Komut dosyanız model: claude-haiku-4 bildiriyorsa, kullanıcının oturum için seçtiği modelden bağımsız olarak bu komut Haiku üzerinde çalışır. Bu, Opus'un dışında tutmak istediğiniz ucuz, sık çağrılan komutlar için kullanışlıdır. Her komut türü için doğru varyantı seçmek üzere Claude modellerini değiştirme rehberimize bakın.
Sonuç
Dört yöntem. Komutunuzun şekline uyanı seçin:
- Boolean bayrak (
--dry-run) —$ARGUMENTS'a yazın, LLM tespit etsin. - Değer bayrağı (
--filter <kalıp>) — aynı yaklaşım, LLM değeri çıkarsın. - Zorunlu konumsal + isteğe bağlı bayrak — zorunlu olan için
$1, geri kalanı için$ARGUMENTS. - Kesin konumsal — her yuva zorunlu ve sıralı olduğunda
$0/$1/$2(veyaarguments:üzerinden adlandırılmış).
Komutlarınız artık parametrik olduğuna göre, sonraki adım bunları agent iş akışlarına bağlamaktır — çok dosyalı paketleme yükseltmesi için Claude Skills tutorial'ımızdan başlayın veya araç setlerini karşılaştırıyorsanız alternatif yapay zeka kodlama araçlarına göz atın. Her iki durumda da .claude/commands/ klasörünüz çok daha kullanışlı hale geldi.