スキルに引数と最新情報を渡す手順
結論
スキルを作るたびに中身を書き換えているなら、引数を使えば1つで足ります。番号や名前だけを変えて呼び出せるようになるためです。さらに、呼び出した時点の最新状態をスキルに差し込む書き方もあります。どちらも書く場所はSKILL.mdの中で、チャットに打ち込むものではありません。
引数の受け取り方
引数は、スキルの本文に$ARGUMENTSと書いておくと、そこに入ります。呼び出す側は、スキル名のあとに続けて書くだけです。
たとえば本文に「GitHubのissue $ARGUMENTSを、こちらのコーディング規約に沿って直してください」と書いたスキルを/fix-issue 123で呼ぶと、Claudeには「GitHubのissue 123を…」という形で届きます。あなただけでなく、Claudeがスキルを使うときにも引数を渡せます。
$ARGUMENTSを書き忘れた場合も、入力が捨てられるわけではありません。Claude Codeがスキルの内容の末尾にARGUMENTS: 入力した文字列という形で足すため、Claudeからは見えています。
引数を2つ以上受け取る
位置ごとに受け取りたいときは$ARGUMENTS[0]のように番号で指定します。短く書くなら$0・$1・$2という書き方も使えます。番号は0から始まる点に注意してください。
区切りはシェルと同じ考え方です。1つの引数に複数の単語を渡したいときは、引用符で囲みます。囲まないと、空白の位置で別々の引数として分かれます。
実行時の最新情報を差し込む
もう1つが!`コマンド`という書き方です。スキルの内容がClaudeに送られる前にそのコマンドが実行され、書いた場所が実行結果に置き換わります。Claudeが受け取るのはコマンドそのものではなく、その出力です。
作業ツリーの差分や、いまのブランチの状態など、その場で調べないと分からない材料を渡すのに向きます。「まず状況を調べて」と頼む往復を省けるという利点があります。
前提条件
- 対象のスキルの
SKILL.mdを編集できること $ARGUMENTSも!`コマンド`も、SKILL.mdの中に書くものです。チャット欄に打ち込んでも動きません- 差し込むコマンドは、そのプロジェクトで実行できるものにしておくこと
手順
- 対象の
SKILL.mdを開きます - 変わる部分を
$ARGUMENTSに置き換えます。複数あるなら$0・$1のように番号で分けます - 実行時の状態が要る場合は、その位置に
!`コマンド`を書きます - 保存し、
/スキル名 引数の形で呼び出します - 複数の単語を1つの引数として渡すときは、引用符で囲みます
検証の考え方
引数が届いているかは、Claudeの最初の応答で分かります。渡したはずの番号や名前がそのまま出てくれば、置き換えは成功しています。出てこない場合は、SKILL.md側の綴りを疑ってください。
差し込みの記法を使ったときは、応答の中に実際のデータ(差分や一覧の中身)が現れているかを見ます。コマンドの文字列がそのまま見えているなら、記法が正しく解釈されていません。
限界と注意
差し込まれるのは、あくまでコマンドの出力です。コマンドが失敗すれば、その失敗した状態がそのままClaudeに渡ります。おかしな応答が返るときは、まず同じコマンドを自分で実行して結果を確かめてください。
番号で受け取る書き方は、渡し忘れに弱い作りです。対応する引数がない$2などは、置き換えられずにそのまま残ります。
学習上の注意
引数を増やすほど、呼び出す側が覚えることも増えます。使い回しの利便と、思い出す手間は釣り合いの問題です。迷ったら、引数は1つにして、残りは会話で伝える形から始めてください。
出典・参考
- C: 一次発表 Extend Claude with skills
Claude Code講座 STEP 9「スキルを自分の道具にする」/ 全51本中 42本目
前の記事 スキルの自動起動と手動起動を切り替える手順 次に読む 重い作業を別の作業役に任せるスキルの設定手順