mcpField
C
cmux-ref

cmux-ref

github.com/manaflow-aiエージェントワークフロー39720 回インストール9 週間前に更新
リポジトリ

cmux-ref について

cmux-refは、ユーザーが指定したcmuxのワークスペース、ペイン、サーフェス、ウィンドウの識別子を解釈するエージェントスキルです。対象を検証して最も具体的な指定先を使い、画面上のフォーカス先にはフォールバックしません。

主な機能

  1. 01cmux参照とUUIDの解析
  2. 02最も具体的な対象の選択
  3. 03操作前の対象検証
  4. 04UUIDを使った古い参照の復旧
  5. 05明示されたルーティング情報の維持

活用シーン

  1. 01指定した端末サーフェスへのコマンド送信
  2. 02指定ワークスペースとペインでのコンテンツ表示
  3. 03cmux状態変更後の古い参照の解決
  4. 04画面上のフォーカス先での誤操作回避

インストール

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

$npx skills add https://github.com/manaflow-ai/cmux-skills --skill cmux-ref

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

同梱ファイルagents/openai.yaml

詳細

cmux Ref

ユーザーが cmux のトポロジー識別子を貼り付け、エージェントがその特定のワークスペース、ペイン、サーフェス、またはウィンドウを対象にすることを期待している場合は、このスキルを使用します。これらの識別子は、後続の指示における明示的なルーティングコンテキストとして扱います。

認識する内容

ユーザーは、次のフィールドを任意に組み合わせて、プレーンテキスト、Markdown、JSON、YAML、シェル形式の代入文、またはログで貼り付けることがあります。

workspace_ref=workspace:1
workspace_id=D9C23F06-55C8-4EF6-96D2-F2531B3327A8
pane_ref=pane:2
pane_id=60495E4A-56E3-469D-A274-A7877F48B54D
surface_ref=surface:370
surface_id=661B301A-2423-44F1-B789-7AEA1021CFCE

次のキーを認識します。

  • window_ref、window_id
  • workspace_ref、workspace_id
  • pane_ref、pane_id
  • surface_ref、surface_id

また、ユーザーの意図の近くにある workspace:1、pane:2、surface:370 などの単独の参照も認識します。

意味

  • *_ref の値は、workspace:1、pane:2、surface:370 などの短い cmux 参照です。同じ cmux インスタンス内で CLI をすぐに呼び出す際に便利ですが、状態が変わると番号が振り直されることがあります。
  • *_id の値は、同じオブジェクトを示す UUID です。両方の形式がある場合は、識別の確認や古くなった参照からの復旧に UUID を優先します。
  • 指定されたオブジェクトのうち、最も具体的なものをデフォルトの対象とします。surface は pane より優先され、pane は workspace より優先され、workspace は window より優先されます。
  • ひとまとまりの完全なブロックは階層を表します。ユーザーが同じ階層に属すると明示していない限り、貼り付けられた別のブロックにある surface_id と workspace_ref を組み合わせないでください。

ワークフロー

ステップ 1:ブロックを解析する

キーは大文字と小文字を区別せずに抽出します。= または : の区切りを受け入れ、引用符、カンマ、コードフェンスは無視します。

便利なパターン:

\b(window|workspace|pane|surface)_(ref|id)\b\s*[:=]\s*["']?([A-Za-z0-9:-]+)["']?

ユーザーが単独の参照のみを指定した場合は、最も具体的なものを対象として割り当てます。

workspace:1 pane:2 surface:370
ステップ 2:対象を伝える

操作する際は、正確な対象を簡潔に伝えます。

I will target surface:370 in pane:2, workspace:1.

UUID がある場合は、内部の対象レコードに保持し、曖昧さの解消に役立つ場合は提示します。

I will target surface:370 (661B301A-2423-44F1-B789-7AEA1021CFCE).
ステップ 3:変更前に確認する

テキストの送信、何かを閉じる、サーフェスの移動、レイアウトの変更、または現在対象ではない画面の読み取りを行う前に、対象がアクティブな cmux ソケット内に存在することを確認します。

現在の cmux CLI を使用し、参照と UUID の両方を要求します。

cmux --json --id-format both tree --all
cmux --json --id-format both identify
cmux --json --id-format both list-pane-surfaces --workspace <workspace_ref_or_id>

参照が古くても UUID が tree --all に存在する場合は、その UUID に対応する現在の参照を使用します。参照も UUID も見つからない場合は、処理を中止し、新しい cmux 参照ブロックをユーザーに求めます。

ステップ 4:対象を明示する

ユーザーが明示的な参照を貼り付けた場合、視覚的にフォーカスされているワークスペースにフォールバックしないでください。解析したワークスペース、ペイン、サーフェスを cmux コマンドに渡します。

例:

cmux read-screen --workspace workspace:1 --surface surface:370 --scrollback --lines 120
cmux send --workspace workspace:1 --surface surface:370 "npm test\n"
cmux new-surface --workspace workspace:1 --pane pane:2 --type terminal --focus false
cmux open ./report.html --workspace workspace:1 --pane pane:2 --no-focus

コマンドがハンドルを 1 つしか受け付けない場合は、関連するもののうち最も具体的なハンドルを使用します。コマンドが UUID を受け付け、意図したオブジェクトに対応することを確認済みの場合は、UUID を優先します。

曖昧さに関するルール

対象を安全に推測できない場合に限り、簡潔な質問を 1 つだけします。

  • 関連性のない複数の参照ブロックが貼り付けられ、指示が「これを使って」または「あれ」としか述べていない場合。
  • ワークスペース参照とサーフェス参照の両方があり、確認した結果、それらが現在は異なる階層に属している場合。
  • 貼り付けられた識別子が古く、cmux --json --id-format both tree --all に UUID の一致がない場合。

完全なブロックが 1 つある場合は、質問しないでください。そのブロック内の最も具体的な対象を使用します。

安全性に関するルール

  • ユーザーが指定した cmux 参照は、呼び出し元の環境変数や視覚的なフォーカスより優先されます。
  • 可能な場合は、メモやスクリプトに参照と UUID の両方を保持します。
  • 対象の確認や使用のためだけにフォーカスを変更しないでください。非破壊的なコマンドを優先し、対応している場合は --focus false または --no-focus を使用します。
  • 現在のソケット内にあることを確認するまでは、対象を閉じたり、移動したり、入力を送信したりしないでください。
  • ブラウザーのスナップショット要素参照は、cmux のトポロジー参照とは別のものです。DOM や WebView のスナップショット参照には cmux-browser を使用します。

コメント