🎏

Agentic Coding の workflow でよく見る argument-hint の書き方

に公開

Cladue Code の Custom Slash Command や、Roo Code の Slash Command などでコマンドのメタデータとして、argument-hint が与えらえる仕組みがあります。
これらの情報はある程度文脈が読み取れる形で渡っていれば LLM の解釈をへていい感じに処理されます。なので厳密に間違っていない状態を目指さなくてもいいっちゃいいし、それなりに動いちゃいます。
が、まあ、気になるよねということで、自分なりに書き方の調査をしたので、メモとして残しておこうと思います。

[] を使うパターン

任意 (optional) を表す

よく使う -- とか - のオプションのときに使う、|または が表現できる
argument-hint: [--draft | -d]
/create [--draft | -d]

<> を使うパターン

必須 (required) を表す

引数がないと成立しないとき
argument-hint: <branch>
/branch-switch <branch>

[] と <> を同時に使うパターン

値を与えることが任意、または任意でキーを与える場合

引数が無いときはデフォルト値で処理されるとき
argument-hint: [<branch>]
/review [<brach>]
[branch]とすると branch という文字列を渡すという解釈もできてしまうので、<branch>が placeholder と分かる様にしつつ、[]で任意を表現する

-u を与える場合は user を与えないといけないとき
argument-hint: [-u <user>]
/create [-u <user>]

-p は必須だが、password は任意のとき
argument-hint: -p [<password>]
/change-password -p [<password>]

... を使った繰り返し表現

<arg>... 1回以上繰り返し必須
[<arg>...] 0回以上繰り返し可能


Claude Code の document を改めてみたら require と optional の書き方だけ追記されてました。
https://docs.claude.com/en/docs/claude-code/slash-commands#parameters

Discussion