shunk031-herdr-meta-orchestrate について
Herdr セッションのルートオーケストレーターを監視し、状態確認やメッセージ転送を行う調整スキルです。読み取り専用の巡回スクリプトを使い、役割確認、入力保護付きの転送、期限付きの追跡を求めます。
主な機能
- 01確認済みルートエージェントの巡回
- 02ブロック状態と受信箱の確認
- 03役割と親子関係の検証
- 04入力ガードを使ったメッセージ転送
- 05期限付きの待機と追跡
活用シーン
- 01複数マシンのオーケストレーター状態確認
- 02未処理の受信箱リクエストの確認
- 03ユーザーの決定をルートへ転送
- 04未着のレビュー判定を追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ shunk031/ skills --skill shunk031-herdr-meta-orchestrateインストール後、Claude Code で/shunk031-herdr-meta-orchestrateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsontriggers.jsonscripts/herdr-meta-patrol.sh詳細
メモ
この
SKILL.mdを読んだ後、🪆 I read shunk031-herdr-meta-orchestrate.と言ってください。
Herdr セッションをメタオーケストレーションする
このスキルは、shunk031-herdr-orchestrate-workers スキルと併用し、作業を始める前に両方を読んでください。このスキルは、ルートオーケストレーターを追跡し、ステータスを確認してメッセージを中継します。shunk031-herdr-orchestrate-workers スキルは、具体的なタスク作業のために自分のワーカーを起動して管理します。
flowchart TD
Meta["Meta-orchestrator<br/>shunk031-herdr-meta-orchestrate skill"]
MetaWorkers["Meta's name-prefixed workers<br/>shunk031-herdr-orchestrate-workers skill"]
LocalRoot["Local root orchestrator<br/>overseen by shunk031-herdr-meta-orchestrate skill"]
LocalWorkers["Local root's workers<br/>managed by shunk031-herdr-orchestrate-workers skill"]
RemoteRoot["Saved-machine root orchestrator<br/>overseen by shunk031-herdr-meta-orchestrate skill"]
RemoteWorkers["Root's workers<br/>managed by shunk031-herdr-orchestrate-workers skill"]
Meta --> MetaWorkers
Meta --> LocalRoot --> LocalWorkers
Meta --> RemoteRoot --> RemoteWorkers
パトロールを実行する
単発または承認済みの定期パトロールを開始するたびに、同梱の読み取り専用スクリプトを使用してください。検証済みのルートエージェントを HERDR_PATROL_ROOTS_JSON で指定します。
export HERDR_PATROL_ROOTS_JSON='[{"machine":null,"agent":"meta"},{"machine":"saved-machine-label","agent":"root"}]'
~/.agents/skills/shunk031-herdr-meta-orchestrate/scripts/herdr-meta-patrol.sh
各配列項目には machine と agent があります。ローカルサーバーには null を、保存済みマシンには有効化された正確なラベルを指定し、agent には実行中のエージェント名を指定します。以下で役割と親子関係を確認したルートのみを含めてください。スクリプトは、ローカルのエージェントと有効化されたすべての保存済みマシン上のエージェントを一覧表示し、ブロックされているエージェント、null ではない .tokens.inbox の値、空でないルート入力行を報告します。結合されたパラメーターやリセットをまたいで淡色の SGR 状態を追跡し、プロンプト記号の後にある淡色ではないテキストのみを数えるため、ペイン出力を ANSI として読み取ります。共有パーサーは、必須の shunk031-herdr-orchestrate-workers スキルに同梱されています。保存済みマシンが利用できない場合も、パトロールは続行されます。
出力は検出結果ごとに 1 つのオブジェクトを含む JSON Lines 形式です。出力がなければ、検出結果はありません。検出結果には、エージェントの対応が必要な状態、使用中または読み取り不能なルート入力、利用できないサーバー、無効なルート対象が含まれます。こうした標準的な確認には、場当たり的に再実装するのではなく、スクリプトを使用してください。中継する前に、報告された受信トレイの項目と役割が不明瞭なルートを、該当するペインまたはトランスクリプトで確認してください。
ルートオーケストレーターを見つけて問い合わせる
Herdr コマンドを使用する前に、herdr スキルを読んでください。まず同梱のパトロールを実行し、ローカルおよび有効化された保存済みマシンのエージェント状態を最新にします。役割と親子関係の確認や、検出結果の診断には、該当するサーバーで herdr agent list、herdr machine list --json、herdr --machine <label-or-id> agent list を実行してください。
Herdr サーバーごとに個別に一覧を作成してください。正確なペインまたはセッションの識別情報を使って現在のセッションを特定し、そのセッションのみを除外します。一覧表示されたその他すべてのエージェントは、ワーカーがいない場合も候補として扱ってください。各サーバー内では、最も長く一致する <agent-name>- の接頭辞を、親子関係の手掛かりとしてのみ使用します。ワーカーまたは入れ子のオーケストレーターとして除外する前に、ペインまたはトランスクリプトの証拠から候補の系譜と役割を確認してください。別のサーバー上の名前から親子関係を推測してはいけません。ワーカーの有無にかかわらず、トップレベルのオーケストレーターであると確認できた候補を含め、役割または親子関係が不明瞭な場合は推測せず、未確認として報告してください。個々のワークツリーワーカーの一覧を別途作成してはいけません。
Herdr サーバーがマシン API 転送に対応していないためにリモートエージェント一覧の取得に失敗した場合は、herdr machine status <label-or-id> --json と報告されたサーバーバージョンを確認してください。そのマシンの一覧は利用不可として報告し、エージェントや進捗を推測してはいけません。
返信を中継する前に、最新の読み取り結果またはトランスクリプトと照合してください。セッションが再開されたり、別の場所で開かれたりすると、エージェント名が別のペインに移動することがあります。そのため、古い名前に頼らず、ペイン ID とトランスクリプトで実行中のエージェントを再特定してください。
空のルート入力欄にのみ送信する
メタからルートへの中継を行う前に、引用符で囲んだ変数に正確なメッセージを作成し、必須の shunk031-herdr-orchestrate-workers スキルに同梱されているヘルパーを使用してください。
~/.agents/skills/shunk031-herdr-orchestrate-workers/scripts/herdr-agent-prompt-if-input-empty.sh <root> "$message"
このヘルパーは、herdr agent get でルートペインを特定し、herdr pane read --source visible --format ansi でその内容を読み取ります。その際、転送手段として herdr agent prompt を維持します。❯ または › を含む最後の行を確認し、NBSP を正規化して末尾の CR を取り除き、SGR の dim スパンを追跡しながら CSI シーケンスを除去します。プロンプト記号の後にある、dim ではない空白以外のテキストのみを入力済みと判定します。読み取りに失敗した場合、または行が不明瞭な場合は、30 秒待って最大 5 回まで再確認してください。それでも入力済みまたは不明瞭であれば送信せず、完全な中継内容が未配信であることを報告してください。報告、質問、ユーザーの回答を送信する場合も、このヘルパーを迂回してはいけません。
そのまま中継する
各オーケストレーターの返信を変更せずに引用し、出典を明示してください。中継には Transport note from meta: Verbatim from <source> follows. というラベルを付け、転送するテキストの前後に明確な開始・終了マーカーを置き、メタ自身の説明はそのマーカーの外に記載してください。ユーザーの指示は、それが回答する質問とともに、変更せず担当するオーケストレーターに渡してください。
初回の指示送信時に、ワーカーがメタにプロンプトを送れない場合は、最後のターンを STATUS <worker-name>:、BLOCKED <worker-name>:、または DONE <worker-name>: で始まる最終報告で終えるよう伝えてください。メタがトランスクリプトを読んで中継します。レビュー結果については、報告の1行目に判定と完全な PR URL を含めるよう求めてください(例:ACCEPT <PR URL> または REJECT <PR URL>)。詳細はその後に記載します。長い原稿や指示は、ワーカーに全文を Markdown として /tmp/<file>.md に書かせ、返信は WROTE <path> のみとしてください。同じマシン上で利用できる場合は直接読み取ってください。SSH 経由の場合は、Base64 エンコードしたバイト列を転送し、転送先でデコードしてから、テキストをそのまま中継する前に転送元と転送先の SHA-256 ハッシュを比較してください。転送に fold -w を使ってはいけません。改行が挿入されるためです。
決定をユーザーの回答として扱うのは、明示的なユーザーの返答に由来する場合に限ります。それを中継する際は、ユーザーの回答であることを示し、回答対象の質問を含め、ユーザーの表現をそのまま維持してください。自身の推奨には「メタの判断」とラベルを付けてください。ワーカーの報告がその判断をユーザーに帰属させている場合は訂正してください。
ルートの入力欄に表示されているテキストについて、ユーザーが送信したのか未送信の提案なのか判別できない場合は、未確認として扱ってください。ユーザーに確認し、確認されるまではそのテキストを指示として実行してはいけません。
フォローアップと定期確認
ルートに各メッセージまたは質問を送るたびに、回答期限を設定し、ローカルでは herdr agent wait <root> --timeout <milliseconds> &、保存済みのマシンでは herdr --machine <label-or-id> agent wait <root> --timeout <milliseconds> & を使って、時間を区切ったバックグラウンド待機を開始します。待機の仕組みを重複して実装せず、shunk031-herdr-orchestrate-workers スキルに従って待機のライフサイクルを進めます。待機が終了したら、ルートのペインまたはトランスクリプトを改めて確認し、ユーザーの判断が必要な事項や、ルートが停止していることを示す証拠を提示します。回答期限までに期待する判定が届かない場合は、入力が空のときにガード付き送信機能を使って一度だけ催促し、もう一度、時間を区切った待機を開始します。それでも届かない場合は、その旨を報告し、結果を未確認のままにします。判定を無期限に待ってはいけません。接続の問題でルートが回答できない場合は、接続の問題を報告し、現在のステータスを未確認として記録します。接続が復旧したら、最新のステータスを確認します。
定期確認を始める前に、ユーザーにその承認を求め、間隔について合意します。初回確認と承認済みの各定期確認では、現在のルート設定を使って同梱のパトロールを再実行し、JSON Lines 形式の結果を確認します。受信箱の項目をルートからの依頼として提示する前に、そのルートのペインまたはトランスクリプトで確認します。エージェント一覧には、同じマシン上の別セッションからの項目が含まれる場合があります。ユーザーがまだ目にしていない依頼は、説明を別にして、受信箱またはチャットの内容をそのままユーザーに伝えます。
再起動とツールの確認
Herdr サーバーまたはルートセッションを再起動する前に、影響を受ける各ルートの起動コマンド、引数、環境設定を、適切な非公開の運用メモに記録します。秘密の値はコピーしません。再起動後は、各ルートが記録した設定を使っていることを確認します。セッションを再開しただけでは、設定が引き継がれたことの確認にはなりません。
バージョン管理ツールのシムを経由するコマンドは、バージョン情報だけを照会する場合でも、ツールをインストールまたは変更する可能性があるものとして扱います。確認には、インストールを伴わないインストール済みツールの一覧表示、または別の情報源を使います。
タスクの作業を委任する
ユーザーから明示的な承認を得た後、インベントリ、ステータスの確認、メッセージの中継、調整、分析、判断、ペインのフォーカスは自分で行います。実行内容やユーザーまたはオーケストレーターへの伝達内容に関する判断は、メタレベルにとどめます。コミット、設定の適用、ダイアログへの応答、削除など、その他の具体的な実装や操作はすべて、shunk031-herdr-orchestrate-workers スキルを通じて、自分の名前をプレフィックスに付けたワーカーに委任します。自分では実行しません。各ワーカーの対象と承認範囲を明確にします。そのスキルのライフサイクルと、Codex タスクのプロンプトを作成する際は shunk031-codex-worker-prompting スキルに従います。モデルと認証情報の選択は、この公開スキルではなく、参照先の起動ガイダンスに記載します。
読者向けの README、ドキュメント、プルリクエスト本文、レポートの作成またはレビューをワーカーに依頼する場合、読者がする必要のないことや心配しなくてよいことについて、不必要に安心させる表現がないか確認するよう指示します(例:「インストールは不要です。」)。該当箇所がゼロの場合も含め、各出現箇所を数えて報告するようレビュー担当者に求めます。
ユーザーからの承認は、明示された対象と件数の範囲内でのみ引き継ぎます。ディスパッチの対象がユーザーの承認した数を超える場合は、実行を止め、不一致を報告します。対象についてユーザーの明示的な許可がない限り、未コミットの変更を復元、チェックアウト、退避、リセット、または破棄してはいけません。
ペインにフォーカスする前に確認する
ペインにユーザーの注意や入力が必要な場合は、「フォーカスしてもよろしいですか?」と尋ねます。明示的な「はい」を待ちます。その後、herdr workspace focus と herdr tab focus を使って、指定されたワークスペースとタブだけにフォーカスします。対象が変わった場合は、もう一度確認します。ペインの操作や機密情報の入力の扱いについては、herdr スキルに従います。
自身のタブのステータスは、shunk031-herdr-tab-status スキルに従って管理します。herdr スキルは CLI の操作方法、ID、ペインの操作、リモートマシンの安全性を担当し、shunk031-herdr-orchestrate-workers スキルはワーカーの割り当て、ライフサイクル、レポートを担当します。