AIのいろは AI NO IROHA

Claude Code と ChatGPT の使い方を、いろはから。

スキルに引数と最新情報を渡す手順

最終更新: / レビュー日:

結論

スキルを作るたびに中身を書き換えているなら、引数を使えば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の中に書くものです。チャット欄に打ち込んでも動きません
  • 差し込むコマンドは、そのプロジェクトで実行できるものにしておくこと

手順

  1. 対象のSKILL.mdを開きます
  2. 変わる部分を$ARGUMENTSに置き換えます。複数あるなら$0$1のように番号で分けます
  3. 実行時の状態が要る場合は、その位置に!`コマンド`を書きます
  4. 保存し、/スキル名 引数の形で呼び出します
  5. 複数の単語を1つの引数として渡すときは、引用符で囲みます

検証の考え方

引数が届いているかは、Claudeの最初の応答で分かります。渡したはずの番号や名前がそのまま出てくれば、置き換えは成功しています。出てこない場合は、SKILL.md側の綴りを疑ってください。

差し込みの記法を使ったときは、応答の中に実際のデータ(差分や一覧の中身)が現れているかを見ます。コマンドの文字列がそのまま見えているなら、記法が正しく解釈されていません。

限界と注意

差し込まれるのは、あくまでコマンドの出力です。コマンドが失敗すれば、その失敗した状態がそのままClaudeに渡ります。おかしな応答が返るときは、まず同じコマンドを自分で実行して結果を確かめてください。

番号で受け取る書き方は、渡し忘れに弱い作りです。対応する引数がない$2などは、置き換えられずにそのまま残ります。

学習上の注意

引数を増やすほど、呼び出す側が覚えることも増えます。使い回しの利便と、思い出す手間は釣り合いの問題です。迷ったら、引数は1つにして、残りは会話で伝える形から始めてください。

出典・参考

出典等級について(編集方針)