cli-developer について
CLI Developer は、コマンドラインアプリやターミナルインターフェースを構築するためのスキルです。コマンド解析、対話型 TUI、シェル自動化、多言語でのパッケージ化を扱います。
主な機能
- 01コマンドとオプションの解析
- 02対話型ターミナル UI の設計
- 03シェルスクリプトと自動化
- 04REPL 形式アプリの指針
- 05CLI のパッケージ化と配布
活用シーン
- 01コマンドとサブコマンドの構成
- 02対話型ターミナルインターフェースの構築
- 03検証、ヘルプ、出力形式の追加
- 04CLI の配布準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill cli-developerインストール後、Claude Code で/cli-developerを入力して読み込まれたか確認します。
詳細
CLI 開発者
目的
堅牢で使いやすいコマンドラインアプリケーションとターミナルインターフェースの構築に関する専門知識を提供します。複数の言語における引数解析、対話型プロンプト、TUI フレームワーク、シェル自動化を扱います。
使用する場面
- 任意の言語で CLI アプリケーションを構築する
- 対話型ターミナルユーザーインターフェースを作成する
- コマンドライン引数解析を実装する
- シェルスクリプトや自動化ツールを構築する
- プログレスバー、スピナー、色を追加する
- REPL スタイルのアプリケーションを作成する
- CLI ツールをパッケージとして配布する
クイックスタート
このスキルを呼び出す場面:
- 任意の言語で CLI アプリケーションを構築する
- 対話型ターミナルユーザーインターフェースを作成する
- コマンドライン引数解析を実装する
- シェルスクリプトや自動化ツールを構築する
- REPL スタイルのアプリケーションを作成する
呼び出さない場面:
- GUI デスクトップアプリケーションを構築する場合(windows-app-developer を使用)
- Web ベースのインターフェースを作成する場合(frontend スキルを使用)
- PowerShell 固有のツールを作成する場合(powershell スキルを使用)
- モバイルアプリケーションを構築する場合(mobile-developer を使用)
判断フレームワーク
CLI Framework Selection:
├── Node.js → Commander.js, Yargs, Oclif
├── Python → Click, Typer, argparse
├── Go → Cobra, urfave/cli
├── Rust → Clap, structopt
├── TUI needed
│ ├── Node.js → Ink, Blessed
│ ├── Python → Textual, Rich
│ ├── Go → Bubbletea, tview
│ └── Rust → Ratatui, crossterm
└── Simple script → Shell (bash/zsh)
主なワークフロー
1. CLI アプリケーションのセットアップ
- 言語や要件に基づいてフレームワークを選択する
- コマンド構成とサブコマンドを定義する
- 引数とオプションの解析を実装する
- 入力検証とヘルプテキストを追加する
- コマンドの中核となるロジックを実装する
- 出力形式(JSON、テーブルなど)を追加する
- 配布用にパッケージ化する
2. 対話型 TUI の開発
- TUI フレームワークを選択する
- 画面レイアウトとコンポーネントを設計する
- 入力処理とナビゲーションを実装する
- 状態管理を追加する
- ターミナルのサイズ変更イベントに対応する
- さまざまなターミナルエミュレーターでテストする
3. CLI の配布
- 適切なバージョン管理を追加する
- man ページまたはヘルプドキュメントを作成する
- 対象プラットフォーム向けにパッケージ化する
- パッケージマネージャー経由のインストールを設定する
- シェル補完を作成する
- 更新の仕組みを追加する
ベストプラクティス
- フラグと引数には POSIX 規約に従う
- 短いオプション(-v)と長いオプション(--verbose)の両方を用意する
- --help フラグと --version フラグを含める
- 終了コードを適切に使用する(成功時は 0)
- パイプと stdin 入力に対応する
- シェル補完スクリプトを追加する
アンチパターン
| アンチパターン | 問題 | 適切な方法 |
|---|---|---|
| ヘルプテキストがない | ユーザーがコマンドを見つけられない | 包括的な --help を追加する |
| エラーが通知されない | ユーザーが問題の原因を把握できない | 明確なエラーメッセージと終了コードを使用する |
| パスがハードコードされている | 他のシステムで動作しない | 環境変数や XDG を使用する |
| stdin に対応していない | データをパイプで渡せない | stdin からの読み取りに対応する |
| パイプへの色付き出力 | 解析に支障をきたす | TTY を検出し、パイプでは色を無効にする |
コメント
Markdown 対応