cli-for-agents について
cli-for-agentsは、エージェント向けのコマンドラインインターフェースを設計・レビューするスキルです。予測しやすい非対話型の操作、役立つヘルプ、機械処理しやすい結果を重視します。
主な機能
- 01非対話型コマンドの設計
- 02例を含む段階的なサブコマンドヘルプ
- 03stdinとパイプのサポート
- 04実行例付きの明確なエラー
- 05冪等性とdry-runの指針
- 06一貫した構造と機械処理向け出力
活用シーン
- 01ヘッドレスエージェント向けCLIの設計
- 02CLIのパイプとstdin対応のレビュー
- 03エラーと成功時の出力の改善
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ cursor/ plugins --skill cli-for-agentsインストール後、Claude Code で/cli-for-agentsを入力して読み込まれたか確認します。
詳細
エージェント向け CLI
人間向けの CLI は、対話型プロンプト、最初に表示される膨大なドキュメント、コピーして使える例のないヘルプテキストによって、エージェントの利用を妨げることがよくあります。ヘッドレスで動作し、パイプラインで連結できるパターンを優先してください。
非対話型を優先する
- すべての入力は、フラグまたはフラグの値で指定できるようにしてください。矢印キー、メニュー、制限時間付きプロンプトを必須にしないでください。
- フラグが不足している場合は、対話型モードにフォールバックしてください。その逆にしてはいけません。
悪い例: mycli deploy → ? Which environment? (use arrow keys)
良い例: mycli deploy --env staging
コンテキストを大量に出力せずに見つけやすくする
- エージェントはサブコマンドを段階的に見つけます。まず
mycli、次にmycli deploy --helpを実行します。実行のたびにマニュアル全体を出力しないでください。 - 各サブコマンドに独自のドキュメントを用意し、使用しないコマンドがコンテキストに含まれないようにしてください。
機能する --help
- すべてのサブコマンドに
--helpを用意してください。 - すべての
--helpに、実際に実行できるコマンドを含む例を記載してください。パターンを把握するには、説明文よりも例のほうが役立ちます。
Options:
--env Target environment (staging, production)
--tag Image tag (default: latest)
--force Skip confirmation
Examples:
mycli deploy --env staging
mycli deploy --env production --tag v1.2.3
mycli deploy --env staging --force
stdin、フラグ、パイプライン
- 適切な場合は stdin を受け付けてください(例:
cat config.json | mycli config import --stdin)。 - 不自然な位置引数の順序は避け、値が不足している場合に対話型プロンプトへフォールバックしないでください。
- コマンドの連結をサポートしてください:
mycli deploy --env staging --tag $(mycli build --output tag-only)。
すぐに失敗し、対処方法を明確に示す
- 必須フラグが不足している場合は、処理をすぐに終了し、ハングせずに、明確なメッセージと正しい実行例を表示してください。
Error: No image tag specified.
mycli deploy --env staging --tag <image-tag>
Available tags: mycli build list --output tags
冪等性
- エージェントは頻繁に再試行します。同じ成功済みのコマンドを2回実行しても安全であるべきです(何も起こらない、または「すでに完了しています」と明示するなど)。副作用を重複させないでください。
破壊的な操作
- 変更を確定する前にエージェントが計画を確認できるよう、
--dry-run(または同等の機能)を追加してください。 - 人間にとっての安全なデフォルト動作は維持しつつ、確認をスキップする
--yes/--forceを用意してください。
予測可能な構造
- すべてのコマンドで一貫したパターンを使用してください。たとえば、
resource+verbの形です。mycli service listがあるなら、mycli deploy listとmycli config listも同じ形式にしてください。
成功時の出力
- 成功時には、ID、URL、所要時間など、機械で利用できるデータを返してください。プレーンテキストで構いません。装飾的な出力だけに頼らないでください。
deployed v1.2.3 to staging
url: https://staging.myapp.com
deploy_id: dep_abc123
duration: 34s
既存の CLI をレビューする場合
- 非対話型の実行経路、段階的なヘルプ、
--helpの例、stdin/パイプラインの対応、実行例を含むエラーメッセージ、冪等性、ドライラン、確認をスキップするフラグ、一貫したコマンド構造、構造化された成功時の出力を確認してください。
コメント
Markdown 対応