cli-anything-hermes について
CLI-Anything for Hermes Agent は、ソフトウェア向け CLI ハーネスの作成、改良、テスト、検証を Hermes Agent に案内するスキルです。開発手順やパッケージ要件、バックエンド選択の指針を示します。
主な機能
- 01CLI ハーネスの作成と改良
- 02単体・エンドツーエンドテストの計画
- 03パッケージとコマンド動作の検証
- 04可能な場合はネイティブバックエンドを使用
活用シーン
- 01ローカルソースからハーネスを作成
- 02GitHub プロジェクト向けにハーネスを調整
- 03既存ハーネスを確認してテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hkuds/ cli-anything --skill cli-anything-hermesインストール後、Claude Code で/cli-anything-hermesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/hermes.yamlscripts/install.ps1install.sh詳細
Hermes Agent 向け CLI-Anything
ユーザーが Hermes Agent に CLI-Anything ビルダーのように動作させたい場合に、このスキルを使用します。
実装の前に、利用可能であれば方法論の完全なソースオブトゥルースを使用してください:
- このスキルが
CLI-Anythingリポジトリ内から使用されている場合は、まず../cli-anything-plugin/HARNESS.mdを読んでください。 - そのローカルファイルが利用できない場合は、
https://github.com/HKUDS/CLI-Anything/tree/main/cli-anything-pluginからcli-anything-pluginをクローンまたはダウンロードし、そのフォルダーのHARNESS.mdとその周辺のリソースを使用してください。 - ローカルとネットワークの両方からの取得が失敗した場合にのみ、以下の簡略化されたルールに従ってください。
入力
以下のいずれかを受け付けます:
./gimpや/path/to/softwareのようなローカルソースパス- GitHub リポジトリの URL
必要に応じて、クローン後にローカルディレクトリ名からソフトウェア名を導出します。
Hermes ツールバインディング
Hermes エージェントは、これらの組み込みツールを組み合わせてハーネスを構築します:
| ツール | ハーネスワークフローにおける役割 |
|---|---|
terminal | シェルコマンドの実行、パッケージのインストール、CLI ツールの実行、テストの実行 |
execute_code | Python ファイル (Click CLI、バックエンドモジュール、テスト) の生成と書き込み |
delegate_task | 分析または生成のサブタスクの並列化 |
read_file / write_file | ハーネスのソースファイルの読み取りと書き込み |
patch | 生成されたコードへの的を絞った編集 |
正確なツール呼び出し構文については、Hermes Agent のドキュメントを参照してください。
モード
Build
ユーザーが新しいハーネスを希望する場合に使用します。
次の構造を生成します:
<software>/
└── agent-harness/
├── <SOFTWARE>.md
├── setup.py
└── cli_anything/
└── <software>/
├── README.md
├── __init__.py
├── __main__.py
├── <software>_cli.py
├── core/
├── utils/
└── tests/
以下を備えたステートフルな Click CLI を実装します:
- ワンショットのサブコマンド
- サブコマンドが指定されていない場合のデフォルトとしての REPL モード
--jsonによる機械可読な出力- 対象ソフトウェアが対応している場合の、undo/redo を伴うセッション状態
Refine
ハーネスがすでに存在する場合に使用します。
まず現在のコマンドとテストを棚卸しし、次に対象ソフトウェアに対するギャップ分析を行います。優先するもの:
- 影響の大きい不足機能
- 既存のバックエンド API や CLI を包む簡単なラッパー
- 既存のコマンドとうまく組み合わせられる追加機能
ユーザーが明示的に破壊的変更を求めない限り、既存のコマンドを削除しないでください。
Test
テストを書く前に計画を立てます。以下の両方を維持します:
- ユニットカバレッジ用の
test_core.py - ワークフローとバックエンドの検証用の
test_full_e2e.py
可能な場合は、モジュールのインポートだけでなく、cli-anything-<software> を使用してサブプロセス経由でインストール済みのコマンドをテストしてください。
Validate
ハーネスが以下を満たしていることを確認します:
cli_anything.<software>名前空間パッケージのレイアウトを使用している- インストール可能な
setup.pyエントリポイントがある - JSON 出力をサポートしている
- REPL のデフォルトパスがある
- 使用方法とテストが文書化されている
バックエンドのルール
再実装よりも実際のソフトウェアバックエンドを優先してください。可能な場合は、実際の実行ファイルまたはスクリプトインターフェイスを utils/<software>_backend.py でラップします。合成による再実装は、プロジェクトが明示的にそれを要求している場合、または実行可能なネイティブバックエンドが存在しない場合にのみ使用してください。
パッケージングのルール
find_namespace_packages(include=["cli_anything.*"])を使用するcli_anything/はトップレベルの__init__.pyを持たない名前空間パッケージとして維持するconsole_scriptsを通じてcli-anything-<software>を公開する
ワークフロー
- ソースツリーをローカルに取得します (クローンするか、既存のパスを使用します)。
- アーキテクチャ、データモデル、既存の CLI、GUI から API へのマッピングを分析します。
- コマンドグループと状態モデルを設計します。
- ハーネスを実装します。
TEST.mdを書き、次にテストを書き、それから実行します。- README の使用ドキュメントを更新します。
pip install -e .でローカルインストールを検証します。
既存のハーネス (リファレンス)
サポートされているハーネスとそのバックエンドパターンの最新のリストについては、リポジトリルートの registry.json を参照してください。
出力の期待事項
進捗や最終結果を報告する際には、以下を含めてください:
- 対象ソフトウェアとソースパス
- 追加または変更されたファイル
- 実行された検証コマンド
- 未解決のリスクまたはバックエンドの制限事項