cli-developer
CLIツールの構築、引数解析の実装、インタラクティブプロンプトの追加が必要な場合に使用できます。フラグやサブコマンドのパース、プログレスバーやスピナーの表示、bash/zsh/fish補完スクリプトの生成、CLIデザイン、シェル補完、およびcommander、click、typer、cobraなどを用いたクロスプラットフォーム対応ターミナルアプリケーションの構築に活用します。
description の原文を見る
Use when building CLI tools, implementing argument parsing, or adding interactive prompts. Invoke for parsing flags and subcommands, displaying progress bars and spinners, generating bash/zsh/fish completion scripts, CLI design, shell completions, and cross-platform terminal applications using commander, click, typer, or cobra.
SKILL.md 本文
CLI デベロッパー
コアワークフロー
- UX 分析 — ユーザーのワークフロー、コマンド階層、一般的なタスクを特定します。すべてのコマンドとその想定される
--help出力をリストアップして検証してからコードを書きます。 - コマンド設計 — サブコマンド、フラグ、引数、設定を計画します。フラグの命名が一貫していることを確認し、既存のシグネチャが破損していないことを確認します。
- 実装 — 言語に適したCLIフレームワークで構築します(以下のリファレンスガイドを参照)。コマンドを配線した後、
<cli> --helpを実行してヘルプテキストが正しくレンダリングされることを確認し、<cli> --versionを実行してバージョン出力を確認します。 - ポーランド — 補完、ヘルプテキスト、エラーメッセージ、進捗インジケーターを追加します。カラー出力の TTY 検出と Ctrl+C の適切なハンドリングを確認します。
- テスト — クロスプラットフォーム スモークテストを実行します。起動時間をベンチマークします(目標: 50ms未満)。
リファレンスガイド
コンテキストに基づいて詳細なガイダンスを読み込みます:
| トピック | リファレンス | 読み込む時機 |
|---|---|---|
| デザインパターン | references/design-patterns.md | サブコマンド、フラグ、設定、アーキテクチャ |
| Node.js CLI | references/node-cli.md | commander、yargs、inquirer、chalk |
| Python CLI | references/python-cli.md | click、typer、argparse、rich |
| Go CLI | references/go-cli.md | cobra、viper、bubbletea |
| UX パターン | references/ux-patterns.md | プログレスバー、色、ヘルプテキスト |
クイックスタート例
Node.js (commander)
#!/usr/bin/env node
// npm install commander
const { program } = require('commander');
program
.name('mytool')
.description('Example CLI')
.version('1.0.0');
program
.command('greet <name>')
.description('Greet a user')
.option('-l, --loud', 'uppercase the greeting')
.action((name, opts) => {
const msg = `Hello, ${name}!`;
console.log(opts.loud ? msg.toUpperCase() : msg);
});
program.parse();
Python (click/typer) と Go (cobra) のクイックスタート例については、references/python-cli.md と references/go-cli.md を参照してください。
制約
必須事項
- 起動時間を 50ms 未満に保つ
- 明確で実行可能なエラーメッセージを提供する
--helpと--versionフラグをサポートする- 一貫性のあるフラグ命名規則を使用する
- SIGINT (Ctrl+C) を適切にハンドリングする
- ユーザー入力を早期に検証する
- インタラクティブモードと非インタラクティブモードの両方をサポートする
- Windows、macOS、Linux でテストする
禁止事項
- 不必要に同期 I/O をブロックしない — 代わりに非同期読み込みまたはストリーム処理を使用します。
- 出力がパイプされる場合は stdout に出力しない — ログ/診断は stderr に書き込みます。
- 出力が TTY でない場合は色を使わない — 色を適用する前に検出します:
// Node.js const useColor = process.stdout.isTTY;# Python import sys use_color = sys.stdout.isatty()// Go import "golang.org/x/term" useColor := term.IsTerminal(int(os.Stdout.Fd())) - 既存のコマンドシグネチャを破損させない — フラグ/サブコマンドの名前変更は破壊的変更として扱います。
- CI/CD 環境でインタラクティブ入力を要求しない — 常にフラグまたは環境変数を通じた非インタラクティブなフォールバックを提供します。
- パスやプラットフォーム固有のロジックをハードコードしない — 代わりに
os.homedir()/os.UserHomeDir()/Path.home()を使用します。 - シェル補完なしでリリースしない — 上記のすべてのフレームワークには補完生成が組み込まれています。
出力テンプレート
CLI 機能を実装する場合、以下を提供します:
- コマンド構造(メインエントリーポイント、サブコマンド)
- 設定ハンドリング(ファイル、環境変数、フラグ)
- エラーハンドリングを伴うコア実装
- 該当する場合はシェル補完スクリプト
- UX の決定についての簡潔な説明
ナレッジリファレンス
CLIフレームワーク(commander、yargs、oclif、click、typer、argparse、cobra、viper)、ターミナルUI(chalk、inquirer、rich、bubbletea)、テスト(スナップショットテスト、E2E)、配布(npm、pip、homebrew、リリース)、パフォーマンス最適化
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- cedriclefoudelatech
- ライセンス
- MIT
- 最終更新
- 2026/5/10
Source: https://github.com/cedriclefoudelatech/TIMLEMEILLEURIDF / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。