
Näin lisäät lippuja Claude Coden slash-komentoihin: 4 mallia, jotka oikeasti toimivat
Claude Code ei todellisuudessa jäsennä --flags-lippuja siten kuin odottaisit mukautetuille slash-komennoille, mutta neljä mallia tuottaa saman käyttökokemuksen, ja kolme niistä on puhtaampia kuin CLI-jäsennys koskaan oli. Tässä kerromme, miten lisäät lippuja Claude Coden slash-komentoihin oikein, toimivilla .md-tiedostoilla, jotka voit kopioida heti.
Pikavastaus:
- Claude Code ei jäsennä CLI-lippuja (
--json,--verbose) mukautetuille komennoille, käytössä ei ole lippujäsennintä. - CLI-tyylistä käyttökokemusta varten kirjoita liput
$ARGUMENTS-muuttujaan ja anna LLM:n tulkita ne luonnollisena kielenä. - Tyypitetyille argumenteille käytä positionaalisia
$1/$2tai nimettyjä argumentteja, jotka on määriteltyarguments:frontmatter -kentässä. - Dokumentoi odotetut liput
argument-hint:-kenttään, jotta/-automaattitäydennys näyttää ne käyttäjälle.
Miten Claude Coden slash-komentojen argumentit todella toimivat?
Claude Coden käyttö korvaa kolmenlaisia tokenkeja ennen komennon lähettämistä LLM:lle: $ARGUMENTS (koko merkkijono komennon nimen jälkeen), positionaaliset $0/$1/$2 (shell-tyyliset lainatut segmentit) ja nimetyt $variableName, jotka ilmoitetaan frontmatterissa. Sisäänrakennettua CLI-lippujäsentäjää ei ole – --dry-run päätyy $ARGUMENTS-muuttujaan sellaisenaan tekstinä.
Tässä on se kohta, joka hämmentää kaikkia. Kun kirjoitat /deploy --staging --dry-run, Claude Code ei aja argparse-jäsennystä merkkijonolle --staging --dry-run. Käyttö liittää koko merkkijonon siihen kohtaan, missä .md-tiedostosi viittaa $ARGUMENTS-muuttujaan, ja lähettää sitten renderöidyn kehotteen mallille. LLM näkee --staging --dry-run tavallisena englannin kielenä ja päättää, mitä tehdä.
Tämä ei ole bugi, vaan suunnitteluratkaisu. Käyttö on korvauskerros, ei jäsennin. Sisäänrakennetuilla komennoilla kuten /clear ja /help (katso virallinen CLI-viite) on lippuja, mutta itse laatimasi mukautetut komennot toimivat eri säännöillä.
Claude Coden käyttö korvaa tokenkeja ja antaa sitten renderöidyn kehotteen LLM:lle. Lippujäsentäjää ei ole.
Omassa Claude Code -työssämme yleisin hämmennyksen aihe on juuri tämä – kehittäjät käyttävät tunnin selvittääkseen, miksi --verbose "ei tunnistu", ennen kuin tajuavat, että LLM on jäsennin. Claude Code v2.1.126 (toukokuu 2026) -versiosta lähtien tämä käyttäytyminen on dokumentoitu virallisissa slash-komentojen ohjeissa, eikä se muutu lähiaikoina. Slash-komennot ovat Claude Code -koukkujen sisarprimitiivi – molemmat laajentavat käyttöä, mutta komennot käynnistyvät käyttäjän syötteestä, kun taas koukut käynnistyvät työkalutapahtumista.
Tässä on pienin mahdollinen mukautettu komento, joka todistaa korvausmallin:
---
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.Tallenna se nimellä .claude/commands/echo-args.md, kirjoita /echo-args hello world --foo, ja LLM näkee kirjaimellisen merkkijonon hello world --foo korvattuna kehotteeseen. Siinä on koko mentaalimalli. Syvällisempi läpikäynti siitä, miten komentotiedostot liittyvät laajempaan skills-järjestelmään, löytyy Skills-johdannostamme.
Rakenna ensimmäinen parametrinen slash-komentosi 5 minuutissa
Luo tiedosto .claude/commands/greet.md, jossa on kolme riviä frontmatteria ja yksi kehoterivi, joka viittaa $ARGUMENTS-tunnukseen. Käynnistä Claude Code uudelleen, kirjoita /greet World ja katso, kuinka World sijoittuu kehotteeseen ennen kuin LLM näkee sen. Siinä koko seremonia, viisi vaihetta, ei build-työkaluja.
Tässä ohje alusta loppuun:
- Luo hakemisto. Suorita projektisi juurihakemistossa komento
mkdir -p .claude/commands..claude/-kansio sijaitsee koodisi rinnalla; sen sisällä olevat komennot tunnistetaan automaattisesti, kun Claude Code käynnistää istunnon. - Kirjoita komentotiedosto. Tallenna alla oleva pätkä nimellä
.claude/commands/greet.md. - Lataa istunto uudelleen. Sulje ja käynnistä Claude Code uudelleen (tai suorita
/reload, jos versiosi tukee sitä). Komennot luetaan kerran istunnon alussa. - Kutsu komentoa. Kirjoita
/greet Worldchattiin. - Varmista korvaus. Avaa transkripti ja varmista, että LLM näki kehotteen runkoon interpoloidun
World-arvon eikä kirjaimellista$ARGUMENTS-tokenia.
Tässä koko tiedosto:
---
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.Ja vuorovaikutus terminaalissa:
> /greet World
Hey World, great to see you! What are you working on today?Siinä se. Sinulla on nyt parametrinen slash-komento. argument-hint-kentän ansiosta /-automaattitäydennysvalikko näyttää <name>-tekstin komentosi vieressä — pieni UX-hienous, suuri hyöty.
Jos
$ARGUMENTSei korvaudu, yhdeksän kertaa kymmenestä syynä on se, että kirjoitit$argstai$ARGS— token kirjoitetaan kirjaimellisesti isoilla kirjaimilla.
Token on kirjainkokoriippuvainen ja tarkka. $ARGUMENTS toimii. $arguments, $args, $ARGS ja ${ARGUMENTS} epäonnistuvat kaikki hiljaisesti; ne lähetetään LLM:lle kirjaimellisena tekstinä, ja malli näkee vain roskaa. Tarkista oikeinkirjoitus kolmeen kertaan, ennen kuin oletat vakavampaa bugia.
Mitkä frontmatter-kentät hallitsevat argumenttien käsittelyä?
Viisi frontmatter-kenttää määrittävät, miten slash-komento käsittelee argumentteja: argument-hint (mitä automaattitäydennys näyttää), allowed-tools (mitä komento saa kutsua), arguments (nimettyjen argumenttien määritys), model (mikä Claude-variantti sen suorittaa) ja disable-model-invocation (lukitsee komennon vain käyttäjän käynnistettäväksi). Yhdessä ne kattavat käytännössä kaikki tarvitsemasi parametrilliset mallit.
Tässä on täydellinen frontmatter-viite Claude Code v2.1.x:n mukautetuille komennoille:
| Kenttä | Tarkoitus | Esimerkki | Pakollinen? |
|---|---|---|---|
description: | Yhden rivin yhteenveto /-valikossa | Run staging deploy | Suositeltu |
argument-hint: | Automaattitäydennyksen vihje komennon nimen jälkeen | [--dry-run] [--region us] | Suositeltu |
allowed-tools: | Sallittujen työkalujen lista, joita komento saa kutsua | Bash(git:*) Read Edit | Valinnainen |
arguments: | Nimettyjen argumenttien määritys | [issue, branch] | Valinnainen |
model: | Ohittaa mallin tälle komennolle | claude-opus-4-7 | Valinnainen |
disable-model-invocation: | Estää agenttia kutsumasta tätä komentoa | true | Valinnainen |
context: fork | Suorittaa eristetyssä kontekstissa | fork | Valinnainen |
Kaksi sudenkuoppaa, jotka kannattaa kiinnittää näytön reunaan. Ensinnäkin allowed-tools on välilyönnein eroteltu, ei pilkuin eroteltu. Jos kirjoitat Bash(git:*), Read, Edit, mikään ei hiljaisesti päädy sallittujen listalle – jäsentäjä käsittelee koko merkkijonon yhtenä virheellisenä merkintänä. Käytä muotoa Bash(git:*) Read Edit. Opimme tämän kantapään kautta; lisää vastaavia malleja löydät CLAUDE.md-parhaista käytännöistämme, jotka käsittelevät asetustiedostojen konventioita.
Toiseksi model:-kenttä ohittaa sen mallin, jonka käyttäjä on valinnut istuntoa varten. Hyödyllistä, kun komento on laskennallisesti kevyt ja haluat pakottaa sen pienemmälle variantille – katso oppaamme mallin valinnasta, jossa vertaillaan Opus 4.7:ää ja Sonnetia erityyppisille komennoille.
disable-model-invocation: true -kenttä on turvaverkkosi tuhoisille komennoille. Aseta se komennoille /deploy-prod tai /drop-database, jolloin muut agentit eivät voi kutsua näitä komentoja ohjelmallisesti – vain chattiin kirjoittava ihminen voi käynnistää ne.
Mitkä ovat ne 4 argumenttimallia, joita oikeasti käytät?
Neljä mallia kattavat suunnilleen 95 % todellisista Claude Code -kauttaviivakomennoista: (1) totuusarvolippu kuten /deploy --dry-run, jonka LLM jäsentää $ARGUMENTS-muuttujasta, (2) arvolippu kuten /test --filter auth, joka poimitaan $ARGUMENTS-muuttujasta, (3) pakollinen positionaalinen + valinnainen lippu kuten /fix-issue 123 --priority high, jossa yhdistyvät $1 ja $ARGUMENTS, sekä (4) tiukasti tyypitetty positionaalinen kuten /migrate-component SearchBar React Vue, jossa käytetään $0/$1/$2.
Valitse se, joka vastaa komentosi muotoa. Tässä on toimiva .md-tiedosto jokaiselle.

Malli 1: Totuusarvolippu (--dry-run)
Kun haluat CLI-lippumaisen käyttökokemuksen ja lippu on pelkkä päälle/pois-kytkin, anna LLM:n tunnistaa se $ARGUMENTS-muuttujasta. Ei jäsennyslogiikkaa, ei sijaintipohjaista kikkailua — kuvaat vain säännön promptissa.
---
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`.Kirjoita /deploy --dry-run, niin LLM näkee lipun, tulostaa suunnitelman ja pysähtyy. Kirjoita /deploy, niin se julkaisee. Käyttäjä ei tehnyt lainkaan jäsennystä, LLM teki kaiken työn — juuri se, missä se on parhaimmillaan.
Malli 2: Arvolippu (--filter <pattern>)
Sama idea, mutta nyt lipulla on arvo. LLM lukee merkkijonon --filter auth muuttujasta $ARGUMENTS ja käyttää sen jälkeistä alimerkkijonoa.
---
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 ajaa vain auth-testit. /test ajaa kaiken. LLM poimii --filter-lipun jälkeisen kuvion luotettavasti, koska Claude on aidosti hyvä tämän tyyppisessä jäsennellyn tekstin poiminnassa — huomattavasti luotettavammin kuin yleensä odotetaan.
Kuvio 3: Pakollinen positionaalinen + valinnainen lippu
Tämä on hybridi, jota käytämme eniten omassa komentokirjastossamme. $1 kuljettaa pakollisen argumentin, $ARGUMENTS kuljettaa kaiken (jotta LLM voi edelleen tunnistaa valinnaiset liput). Se on puhtain yhdistelmä, kun yksi argumentti on ehdoton ja loput ovat vapaamuotoista kontekstia.
---
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.Kutsu muodossa /fix-issue 1234 --priority high the login form blanks the email field after a failed attempt. $1 ratkeaa arvoon 1234. $ARGUMENTS ratkeaa koko loppumerkkijonoon, josta LLM jäsentää mielellään sekä prioriteettilipun että vapaamuotoisen kuvauksen.
Käytämme tätä täsmälleen samaa $1 + $ARGUMENTS-yhdistelmää /fix-issue-komennossamme, $1 ongelman numerolle ja loput vapaamuotoiselle kontekstille, jonka LLM jäsentää. Se on ollut tuottoisin kuvio vuoden päivittäisessä Claude Code -käytössä.
Malli 4: Tiukka sijaintiperusteinen (tyypitetty)
Kun jokainen argumentti on pakollinen ja järjestyksellä on väliä, jätä $ARGUMENTS kokonaan pois. Käytä $0/$1/$2 (tai nimettyjä argumentteja arguments:-frontmatter-kentän kautta), niin saat yksiselitteiset tyypitetyt paikat.
---
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).Kutsu muodossa /migrate-component SearchBar React Vue. Nimettyjen argumenttien määrittely tekee automaattitäydennyksestä ja kehotteen rungosta itsestään selviävän — kuka tahansa migrate-component.md-tiedoston lukija näkee yhdellä silmäyksellä, mikä paikka on mikä. Tämä malli on parhaimmillaan komennoissa, joissa on kolme tai useampi pakollinen argumentti. Voit nähdä tämän tyylin myös yhteisön kirjastoissa, kuten wshobson/commands GitHubissa.
Totuusarvo- ja arvoliput toimivat, koska LLM on joustava jäsennin. Tiukka sijaintiperusteinen malli toimii, koska LLM-älykkyyttä ei tarvita. Näiden kahden yhdistäminen on salaisuus.
Milloin kannattaa käyttää $ARGUMENTS-muotoa vs. positionaalisia vs. nimettyjä argumentteja?
Käytä $ARGUMENTS-muotoa, kun argumentit ovat CLI-lippumaisia ja haluat joustavan jäsentämisen LLM:n puolella. Käytä positionaalisia $1/$2-argumentteja, kun argumentit ovat tyypitettyjä, järjestettyjä ja haluat välttää LLM:n tulkintaepäselvyydet kokonaan. Käytä nimettyä arguments:-kenttää, kun argumentteja on vähintään 3 ja selkeys automaattitäydennyksessä on tärkeämpää kuin tiiviys. Tässä on päätösmatriisi:
| Käyttötapaus | Paras valinta | Syntaksi | Edut | Haitat | Esimerkki |
|---|---|---|---|---|---|
| CLI-lippumainen UX valinnaisilla argumenteilla | $ARGUMENTS | $ARGUMENTS runko-osassa | Joustava, mukailee Unix-UX:ää | Jäsennys LLM:n puolella, ei validointia | /deploy --staging --dry-run |
| Tyypitetyt, järjestetyt pakolliset argumentit | Positionaaliset $0/$1 | $0 $1 $2 runko-osassa | Ei monitulkintaisuutta, nopea | Hauras argumenttien järjestyksen suhteen | /migrate Button React Vue |
| Yli 3 argumenttia, joissa selkeys on tärkeää | Nimetyt arguments:-kentän kautta | arguments: [a, b, c], sitten $a $b $c | Itsedokumentoiva | Laaja frontmatter | /issue 123 main high |
| Pakollisten ja valinnaisten yhdistelmä | Hybridi ($1 + $ARGUMENTS) | $1 then $ARGUMENTS | Molempien parhaat puolet | Kaksi mentaalimallia yhdessä tiedostossa | /fix-issue 123 --priority high |

Useimpien kehittäjien ensivaisto on tarttua ensin $ARGUMENTS-muotoon, koska se tuntuu lähimmältä heille tuttua bash-maailmaa. Se sopii prototyypeille, mutta tyypitetyt positionaaliset argumentit ovat aidosti parempia, kun sopimus on vakaa. LLM:n ei tarvitse jäsentää $1-argumenttia, sillä se on jo siisti merkkijono.
Karkea nyrkkisääntö: jos pystyt kuvailemaan komennon signaatuurin yhdellä englanninkielisellä lauseella käyttämättä sanoja "or" ja "optionally", käytä positionaalisia argumentteja. Jos tarvitset näitä sanoja, käytä $ARGUMENTS-muotoa.
Ovatko slash-komennot nyt sama asia kuin Skills?
Anthropic yhdisti mukautetut komennot laajempaan Skills-järjestelmään keväällä 2026, mutta .claude/commands/*.md -tiedostot toimivat edelleen ja käyttävät samaa frontmatteria. Skill on hakemisto (.claude/skills/foo/SKILL.md ja tukitiedostot), jossa on lisäominaisuuksia kutsun hallintaan, kuten disable-model-invocation. Komento on yksittäinen .md-tiedosto. Samat korvaussäännöt, eri pakkaus.
Tässä käytännön ero:
| Ominaisuus | .claude/commands/foo.md | .claude/skills/foo/ |
|---|---|---|
| Tiedostomuoto | Yksittäinen .md-tiedosto | Hakemisto, jossa SKILL.md + tukitiedostoja |
| Paras käyttökohde | Nopeat kertakäyttöiset komennot, projektikohtaiset automaatiot | Uudelleenkäytettävät paketit, joissa malleja, viitteitä, alitiedostoja |
| Kutsun hallinta | Vain frontmatter | Frontmatter + tiedostokohtainen disable-model-invocation |
| Argumenttien käsittely | Identtinen ($ARGUMENTS, $1, nimetyt) | Identtinen ($ARGUMENTS, $1, nimetyt) |

Eli ei, .claude/commands/ ei ole vanhentunut. Anthropic piti nimenomaan tiedostomuodon toimivana yhdistäessään järjestelmiä, sillä liian monilla projekteilla on komentokirjastoja, jotka on lukittu versionhallintaan. Jos haluat tukitiedostoja (kuten CONTRIBUTING.md-viitteen, jonka skillisi lataa, tai template.json, jonka se kopioi), valitse Skills. Muuten pysy komennoissa.
Yhdistäminen on osa laajempaa siirtymää kohti avointa agentskills.io -standardia, ja se on yksi useista v2.1.x-muutoksista, jotka kannattaa tuntea, katso katsauksemme Claude Code v2.1 -ominaisuuksista saadaksesi täydellisen kuvan ominaisuuksista, ja Skills-opastuksemme syvällisempään läpikäyntiin.
Miksi $ARGUMENTS ei korvaudu? Yleisimmät virheet korjattuna
Viisi yleistä syytä, miksi $ARGUMENTS ei korvaudu: (1) token on kirjoitettu pienin kirjaimin tai lyhennettynä ($args, $ARGS, $arguments – sen on oltava kirjaimellisesti $ARGUMENTS), (2) monisanaisia argumentteja ei ole lainausmerkeissä (/cmd hello world jakautuu osiin; /cmd "hello world" pysyy yhtenä), (3) allowed-tools on eroteltu pilkuin välilyöntien sijaan, (4) komentotiedosto ei ole kansiossa .claude/commands/ tai .claude/skills/, (5) Claude Code -istunto on ladattava uudelleen tiedoston muokkaamisen jälkeen.
$ARGUMENTS näkyy kirjaimellisesti LLM-promptissa
Oire: Promptisi näyttää $ARGUMENTS pelkkänä tekstinä mallin vastauksessa, ikään kuin sitä ei olisi huomioitu. Syy: Väärä kirjainkoko tai väärä kirjoitusasu. Token on kirjaimellisesti $ARGUMENTS, kahdeksan merkkiä, kaikki isoilla kirjaimilla. Korjaus: Avaa .md-tiedosto, etsi grepillä $args, $ARGS, $arguments, ${ARGUMENTS} ja korvaa ne tokenilla $ARGUMENTS. $args-kirjoitusvirhe on osunut jokaiseen tiimimme kehittäjään ainakin kerran; se on yleisin yksittäinen bugi "tuntematon slash-komento" -perheessä.
Monisanainen argumentti hajoaa odottamattomasti
Oire: Suoritit komennon /migrate-component Search Bar React Vue, ja $1 on Search sekä $2 on Bar. Syy: Tyhjämerkki pilkkoo positionaaliset argumentit. Korjaus: Laita monisanainen argumentti lainausmerkkeihin: /migrate-component "Search Bar" React Vue. Nyt $1 on Search Bar. Tämä vastaa komentotulkin toimintaa, jota käyttö tietoisesti noudattaa.
allowed-tools -asetusta ei noudateta
Oire: Komento suoritetaan, mutta Claude kieltäytyy kutsumasta työkaluja, joiden luulit olevan sallittujen listalla, tai kutsuu työkaluja, joita et listannut. Syy: Pilkulla erotettu välilyönnillä erottamisen sijaan. Korjaus: Muuta allowed-tools: Bash, Read, Edit muotoon allowed-tools: Bash Read Edit. Työkalujen alikuviot muotoillaan näin: Bash(git:*) Bash(npm:*) Read.
Komento ei näy /-automaattitäydennyksessä
Oire: Kirjoitat /, eikä komentoasi näy luettelossa. Syy: Tiedoston sijainti, puuttuva frontmatter tai virheellisesti asetettu disable-model-invocation. Korjaus: Varmista, että tiedosto sijaitsee polussa .claude/commands/yourcmd.md (tai .claude/skills/yourcmd/SKILL.md) suhteessa projektisi juurihakemistoon. Varmista, että frontmatter sisältää vähintään description:-kentän. Jos asetat disable-model-invocation: true, komento ei näy muille agenteille, mutta se näkyy silti ihmisen kirjoittamassa /-valikossa.
Muokkasit .md-tiedostoa, mutta mikään ei muuttunut
Oire: Korjasit bugin, tallensit tiedoston, suoritit komennon uudelleen, sama rikkoutunut käytös. Syy: Claude Code tallentaa komentotiedostot välimuistiin istunnon alussa. Korjaus: Sulje ja käynnistä Claude Code uudelleen, tai suorita /reload, jos versiosi tukee sitä.
Claude Code lukee
.md-tiedostot istunnon alussa. Jos muokkaat komentoa eikä se "muutu", käynnistä istunto uudelleen ennen kuin oletat syvempää bugia.
Näiden viiden lisäksi tulevien erikoistapausten osalta Claude Code -repon ongelmat ovat paras paikka etsiä. Useimmat oudot korvausbugit, joita olemme nähneet, ovat jonkin yllä olevan muunnelma.
UKK: Claude Coden slash-komentojen argumentit
Kuinka välitän argumentteja Claude Coden kauttakomentoon?
Kirjoita argumenttijono komennon nimen perään: /greet World. Viittaa arvoon komentosi .md-tiedostossa muodossa $ARGUMENTS (koko jono), $1 (ensimmäinen positionaalinen argumentti) tai $variableName (jos määritit arguments: [variableName] frontmatterissa). Käyttö korvaa tokenin ennen kehotteen lähettämistä LLM:lle.
Mikä $ARGUMENTS on Claude Codessa?
$ARGUMENTS on mukautettujen slash-komentotiedostojen korvaustunnus, jonka Claude Code korvaa koko argumenttimerkkijonolla, jonka käyttäjä kirjoitti komennon nimen jälkeen. Jos käyttäjä suorittaa komennon /deploy --staging --dry-run, $ARGUMENTS muuttuu renderöidyn kehotteen sisällä kirjaimelliseksi merkkijonoksi --staging --dry-run, ennen kuin LLM näkee sen.
Voivatko Claude Coden slash-komennot vastaanottaa CLI-tyylisiä lippuja kuten --json?
Eivät luonnostaan — mukautetuille komennoille ei ole lippujen jäsennintä. Kirjoitat --json-lipun $ARGUMENTS-muuttujaan, ja kehote ohjeistaa LLM:ää havaitsemaan sen ja toimimaan sen mukaisesti. Tämä toimii, koska Claude on joustava jäsennin strukturoidulle tekstille. Sisäänrakennetuilla komennoilla, kuten /clear ja /help, on oikeat liput, mutta itse laatimasi mukautetut komennot toimivat pelkkien korvaussääntöjen mukaan.
Mitä eroa on $1:llä, $ARGUMENTS:lla ja $name:lla Claude Codessa?
$1 on ensimmäinen välilyönnein erotettu positionaalinen argumentti ($2 on toinen ja niin edelleen). $ARGUMENTS on koko argumenttimerkkijono sellaisenaan, mukaan lukien kaikki positionaaliset osat ja mahdolliset liput. $name on nimetty argumentti, joka määritellään frontmatterin arguments: [name] -kentässä, ja se on hyödyllinen, kun haluat itsestään selviävät positionaaliset paikat ilman numeerista indeksointia.
Miten argument-hint toimii Claude Codessa?
argument-hint on frontmatter-kenttä, joka määrittää, mitä automaattisen täydennyksen valikko näyttää komentosi nimen vieressä. Kun asetat arvoksi argument-hint: <issue-number> [--priority high], tämä malli näytetään täsmälleen sellaisenaan, kun käyttäjä kirjoittaa /. Se vaikuttaa vain käyttökokemukseen, eikä validoi tai jäsennä argumentteja. Se kannattaa silti asettaa, koska se on halvinta dokumentaatiota, mitä tulet koskaan kirjoittamaan.
Miten luon mukautetun kautoviivakomennon useilla argumenteilla?
Kaksi selkeää vaihtoehtoa. Positionaalisille: viittaa $1, $2, $3 promptin rungossa. Nimetyille: määrittele arguments: [first, second, third] frontmatterissa ja viittaa $first, $second, $third. Nimetyt ovat luettavampia, kun argumentteja on kolme tai enemmän. Käytä $ARGUMENTS vain, kun haluat LLM:n jäsentää vapaamuotoisen loppumerkkijonon pakollisten positionaalisten paikkojen jälkeen.
Onko .claude/commands/ poistettu käytöstä .claude/skills/-hakemiston hyväksi?
Ei. Anthropic yhdisti nämä kaksi järjestelmää keväällä 2026, mutta piti nimenomaisesti .claude/commands/*.md-tiedostot toiminnassa täysin samoilla korvaussäännöillä. Käytä komentoja yksittäistiedostoisissa automaatioissa ja taitoja usean tiedoston kokonaisuuksissa (SKILL.md sekä mallipohjat tai viitteet). Sama frontmatter, sama $ARGUMENTS-käyttäytyminen, eri pakkaustapa. Molemmat ovat täysivaltaisia versiosta v2.1.126 alkaen.
Miksi $ARGUMENTS ei korvaudu komennossani?
Kolme yleisintä syytä yleisyysjärjestyksessä: kirjainkokovirhe (tulee olla isolla kirjoitettu $ARGUMENTS, ei $args tai $arguments), väärä tiedostosijainti (tiedoston on sijaittava kansiossa .claude/commands/ tai .claude/skills/) tai vanhentunut istunto (Claude Code lukee komentotiedostot istunnon alkaessa, joten käynnistä uudelleen muokkaamisen jälkeen). Jos kaikki kolme ovat kunnossa, suorita /echo-args foo käyttäen minimaalista esimerkkiä H2-osiosta #1 ongelman rajaamiseksi.
Voinko vaatia tiettyjä argumentteja?
En käyttötasolla — pakollisten argumenttien natiivia validointia ei ole. Tyypillinen ratkaisu on ohjeistaa LLM:ää promptissasi: "Jos $1 on tyhjä, pysähdy ja pyydä käyttäjää antamaan issue-numero." Malli valvoo sopimusta. Se ei ole aukoton, mutta käytännössä riittävän luotettava päivittäiseen käyttöön, erityisesti yhdistettynä selkeään argument-hint-määritykseen.
Ohittaako frontmatterin model: CLI-liput?
Kyllä, frontmatter voittaa. Jos komentotiedostosi määrittelee model: claude-haiku-4, kyseinen komento suoritetaan Haikulla riippumatta siitä, minkä mallin käyttäjä on valinnut istunnolle. Tämä on hyödyllistä edullisille, tiheästi kutsutuille komennoille, jotka haluat pitää poissa Opukselta. Katso oppaamme Claude-mallien vaihtamisesta oikean variantin valitsemiseksi kutakin komentotyyppiä kohden.
Yhteenveto
Neljä mallia. Valitse se, joka sopii komentosi muotoon:
- Totuusarvolippu (
--dry-run), kirjoita se muuttujaan$ARGUMENTSja anna LLM:n tunnistaa se. - Arvolippu (
--filter <pattern>), sama lähestymistapa, LLM poimii arvon. - Pakollinen sijaintiparametri + valinnainen lippu,
$1pakolliselle,$ARGUMENTSlopuille. - Tiukka sijaintiparametri,
$0/$1/$2(tai nimettynäarguments::n kautta), kun jokainen paikka on pakollinen ja järjestetty.
Nyt kun komentosi ovat parametrillisia, seuraava vaihe on kytkeä ne agenttien työnkulkuihin. Aloita Claude Skills -oppaastamme monitiedostoista paketointipäivitystä varten, tai selaa vaihtoehtoisia AI-koodaustyökaluja, jos vertailet valjaita. Joka tapauksessa .claude/commands/-kansiostasi tuli juuri huomattavasti hyödyllisempi.