mcpField
C
cli-anything-hermes

cli-anything-hermes

github.com/hkuds開発57.6k266 回インストール5 週間前に更新
リポジトリ

cli-anything-hermes について

CLI-Anything for Hermes Agent は、ソフトウェア向け CLI ハーネスの作成、改良、テスト、検証を Hermes Agent に案内するスキルです。開発手順やパッケージ要件、バックエンド選択の指針を示します。

主な機能

  1. 01CLI ハーネスの作成と改良
  2. 02単体・エンドツーエンドテストの計画
  3. 03パッケージとコマンド動作の検証
  4. 04可能な場合はネイティブバックエンドを使用

活用シーン

  1. 01ローカルソースからハーネスを作成
  2. 02GitHub プロジェクト向けにハーネスを調整
  3. 03既存ハーネスを確認してテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-hermes

インストール後、Claude Code で/cli-anything-hermesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
hermes.yaml
scripts/
install.ps1
install.sh

詳細

Hermes Agent 向け CLI-Anything

ユーザーが Hermes Agent に CLI-Anything ビルダーのように動作させたい場合に、このスキルを使用します。

実装の前に、利用可能であれば方法論の完全なソースオブトゥルースを使用してください:

  1. このスキルが CLI-Anything リポジトリ内から使用されている場合は、まず ../cli-anything-plugin/HARNESS.md を読んでください。
  2. そのローカルファイルが利用できない場合は、https://github.com/HKUDS/CLI-Anything/tree/main/cli-anything-plugin から cli-anything-plugin をクローンまたはダウンロードし、そのフォルダーの HARNESS.md とその周辺のリソースを使用してください。
  3. ローカルとネットワークの両方からの取得が失敗した場合にのみ、以下の簡略化されたルールに従ってください。

入力

以下のいずれかを受け付けます:

  • ./gimp や /path/to/software のようなローカルソースパス
  • GitHub リポジトリの URL

必要に応じて、クローン後にローカルディレクトリ名からソフトウェア名を導出します。

Hermes ツールバインディング

Hermes エージェントは、これらの組み込みツールを組み合わせてハーネスを構築します:

ツールハーネスワークフローにおける役割
terminalシェルコマンドの実行、パッケージのインストール、CLI ツールの実行、テストの実行
execute_codePython ファイル (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> を公開する

ワークフロー

  1. ソースツリーをローカルに取得します (クローンするか、既存のパスを使用します)。
  2. アーキテクチャ、データモデル、既存の CLI、GUI から API へのマッピングを分析します。
  3. コマンドグループと状態モデルを設計します。
  4. ハーネスを実装します。
  5. TEST.md を書き、次にテストを書き、それから実行します。
  6. README の使用ドキュメントを更新します。
  7. pip install -e . でローカルインストールを検証します。

既存のハーネス (リファレンス)

サポートされているハーネスとそのバックエンドパターンの最新のリストについては、リポジトリルートの registry.json を参照してください。

出力の期待事項

進捗や最終結果を報告する際には、以下を含めてください:

  • 対象ソフトウェアとソースパス
  • 追加または変更されたファイル
  • 実行された検証コマンド
  • 未解決のリスクまたはバックエンドの制限事項

コメント