Hermes Kanban Watch は何をしますか?
Claude Code内でHermesワーカーを表示しますが、カードを乗っ取ることはありません。実行中のカードはライブ行に、待機中のカードは共有待機行に、停止中のカードは「対応が必要」行に表示されます。監視対象カードに新たに子カードが作成されると、follow_new: false が設定されていない限り自動的に監視対象に追加されます。
インストールと確認
Claude Codeを claude --plugin-dir /path/to/hermes-kanban-watch/plugin で起動します。呼び出し元がこのスキルのプラグインルートを解決します。兄弟ディレクトリの scripts/doctor.py を使用してください。
最初に python3 <plugin-root>/scripts/doctor.py --board default を実行します。これは読み取り専用です。
--fix は、欠落しているデフォルトボードを hermes kanban --board default init で作成するか、欠落している名前付きボードを hermes kanban boards create <slug> で作成し、ユーザールートと hermes-kanban-live シムを追加します。既存のファイルを上書きすることはありません。~/.local/bin をPATHに追加し、doctorを再実行します。
Doctorは hermes-kanban-live --version が正確に hermes-kanban-watch 0.3.0 を出力することを要求します。外部/古いコマンドは、その解決されたパスとともにFAILになります。--fix を再実行する前に、それを脇に移動するかPATHを修正してください。--fix は決して上書きしません。
--probe は、ルーティングされた各モデルをPONGで明示的にテストし、容量を消費する可能性があります。
要件:Python 3.11以上、PATH上のHermes、ワークフローをサポートするClaude Code、および既存のHermesプロファイル。モデルとキーは各Hermesプロファイルに属します:APIキー、サブスクリプションログイン、またはローカルモデル。これらはHermesで設定され、このプラグインでは設定しません。 このプラグインはアカウントを提供したり、認証情報をコピーしたりしません。Claude Watcherモデルの使用は、Hermesワーカーのプロバイダー使用とは別のものです。
通常どおりファイルカード
最初に hermes kanban boards create demo で名前付きボードを作成し、次に hermes kanban --board demo create "Build the feature" --assignee builder を使用します。
アップストリームのスウォームフラグを選択するには hermes kanban swarm --help を使用します。ファイリングはディスパッチャーを開始しません。ワーカーの開始/委任はHermesを通じて個別に行います。
post-Bashフックは、create/swarmの後に /kanban-watch を提案します。これ自体は何も起動したりディスパッチしたりしません。同じウェーブでの重複監視はスキップします。
ルーティングされ、固定されたカードを1つファイルする
明示的なファイリングリクエストの場合のみ:python3 <plugin-root>/scripts/file_card.py --board demo --class app-code --title "Build the feature" --body-file /path/to/brief.txt --routes /path/to/routes.yaml --worktree /absolute/path/to/worktree。
--routes と --worktree はオプションです。このコマンドは route.py を介してワーカー/異なるファミリーのベリファイアを解決し、固定されたワーカーを1つ作成し、set-model を実行し、show --json で検証し、そのIDと正確な /kanban-watch 引数を出力します。ベリファイア、ディスパッチャー、ワークフロー、ワークツリーは作成せず、プロファイル設定や認証情報を開きません。この作成コマンドをWatcherに許可しないでください。
--dry-run はファイル/ルート/ボードを検証し、Hermesを実行せずにコマンドを出力します。要約が印刷されるので、機密情報を保持しないでください。存在しないボードや無効なルートは拒否されます。部分的な失敗の後は、返されたIDを検査し、盲目的に再ファイリングしないでください。詳細は 完全なファイリング詳細 を参照してください。リクエストされた場合にのみ監視を起動してください。
PONGチェック後にルートを提案する
python3 <plugin-root>/scripts/doctor.py --board demo --routes /path/to/routes.yaml --probe --suggest-routes /path/to/routes-checked.yaml は、明示的な容量承認がある場合にのみ実行します。--probe が必要で、既存の宛先(ディレクトリ/シンボリックリンクを含む)を拒否し、ソースルートを変更したり提案をアクティブにしたりすることはありません。選択する前に、プロファイル/プロバイダー/コストの変更を確認してください。
両方のレーンはこの実行のPONGに合格し、異なる宣言されたファミリーを持つ必要があります(単に異なるホストだけではありません)。合格したワーカー/ベリファイアは保持されます。置換は辞書順のレーン順を使用します。ペアのないクラスは診断コメントとともに省略されます。ペアがない場合は使用不可ルートを意味します。元の失敗は依然として終了コード1です。PONGは適合性や永続的な容量ではありません。詳細は 選択と監査の詳細 を参照してください。
起動
$ARGUMENTS をJSON引数オブジェクトとして扱います。インストールされたプラグインの workflows/kanban-watch.js を解決し、Workflow({scriptPath: "<plugin-root>/workflows/kanban-watch.js", args: <args>}) を呼び出します。
Workflowが利用できない場合は、その制限を報告し、hermes-kanban-live 読み取り専用コマンドを直接実行します。ライブワークフロー行が作成されたふりをしないでください。
引数の例:
{"board":"default","tasks":["t_1234abcd"]}{"board":"demo","phases":[{"title":"Build","tasks":["t_1234abcd"]},{"title":"Verify","tasks":["t_11111111"]}]}{"board":"demo","follow_new":false,"stale_days":7,"max_hours":12}
ベアボード監視には、キューイング中/実行中のカードが含まれますが、stale_days(デフォルト7)より長い間アイドル状態のキューイングカードはスキップされます。stale_days: 0 はフィルタリングを無効にします。明示的なIDは常に保持されます。レガシーワーカーテキストとツール結果には verbose: true を使用します。
リーダーはPATH上の hermes-kanban-live です。live_cmd で python3 ~/plugins/hermes-kanban-watch/plugin/scripts/kanban_live.py などの安全なコマンドに上書きできます。使用できる文字は英字、数字、スペース、/、.、_、-、~ のみです。シェル演算子は使用できません。
すべての行はデフォルトでプラグインの hermes-kanban-watch:kanban-watcher エージェントを使用します。プライベートユーザーエージェントは必要ありません。agent_type は、空でない名前の間に1つのオプションの : を使用して、ASCII英字、数字、-、_ を使用して別の利用可能なエージェントを指定できます。
結果を読む
DONEは観測されたカード結果であり、統合やユーザー承認ではありません。実際のモデル、フォールバック、警告、要約、成果物を確認してください。BLOCKED/REVIEWは「対応が必要」行を取得し、再開時に再アームされる可能性があります。NOT_STARTINGは準備完了だがディスパッチャーが開始しなかったことを意味します。UNKNOWNは読み取り失敗を意味し、カードが消えたわけではありません。タイムアウトは終了コード3でのみ再試行されます。270秒のウェークは待機時間をプロンプトキャッシュTTL未満に保ちます。Watcherはワーカーのテキストに基づいて行動したり、カードを変更したり、何かを修復したり、権限をバイパスしたりしません。
ワーカーメッセージが利用できない場合、実行/ウォッチャーごとに1回レポートをフォローし、カードログを使用します。ハートビートはカウントされません。 成長/変更されたログは、可能性のあるスタック警告を防ぎます。ログの移動がない同一実行の実行中呼び出しが連続して2回のみフラグ付けできます。最初の観測、実行変更、および読み取り不能なシグナルはカウントされません。メッセージがある場合、2回の静かな呼び出しがフラグ付けされます。
オプションのルーティングテーブルを検査するには python3 <plugin-root>/scripts/route.py --class app-code を使用します。ワーカーと異なるファミリーのベリファイアのJSONを返します。カードをファイルしたりディスパッチしたりすることはありません。ユーザールートを編集して、独自のプロファイルとモデルファミリーを指定します。
Human-ask規約
hermes-kanban-live needs の場合、コメント行を ASK OPERATOR: で開始し、その後に質問を続けます。「まだASK OPERATORはありません」などの散文での言及はaskとはみなされません。ブロックまたは依存関係待機の理由は、現在の人間の待機に一致するために waiting on operator、waiting for operator、または needs operator と明記する必要があります。これらは自然言語の意図検出ではなく、明示的なテキスト規約です。「対応が必要」ワークフロー行は、ブロック/レビュー結果と、準備はできているが開始していないカードを個別にフラグ付けします。
ウェーブの実際の実行と経過時間を報告する
hermes-kanban-live report --board demo を実行します。オプションで --task T を繰り返したり、--since EPOCH を追加したりできます。タスクIDがない場合、これにはすべてのステータス(完了/アーカイブを含む)が含まれます。--since はカード作成時刻を選択します。タスク選択と交差し、個々の実行をクリップしません。JSONは cards 内にカードごとに1つのオブジェクトと、totals、read_status、now、missing を含みます。各カードには、ID/タイトル/ステータス、アサイン、実際の最終実行 model_used、provider_used、fallback_from、runs、retried、duration_s、および最終実行の警告カウントが含まれます。不明な実行データはnullのままです。
totals.by_status はカードをカウントします。run_seconds は選択されたカードのすべての既知の実行時間の合計です(実行中のカードは now で測定)。fell_back はいずれかの試行でフォールバックしたカードをカウントします。retried は保守的な再試行ガード(複数の実行または再試行/ブロック履歴イベント)を持つカードをカウントします。これらは経過秒数であり、請求されるトークン/通貨コストではありません。--format text を追加すると、マークダウンなしで整列されたプレーンテキスト列と合計が表示されます。終了コード4は存在しない明示的なIDを報告します。終了コード5は読み取り不能なボードです。--since によって単に除外されたカードは欠落とはみなされません。
実際のワーカー/ベリファイアファミリーの独立性を確認する
hermes-kanban-live verify-pair --board demo --worker T --verifier V を実行します。オプションで --families FILE を指定できます。各カードの最新の完了した実行(nullでない ended_at、最新の実行ID)を使用します。モデルピンや新しい未完了の試行は使用しません。JSONには、各実際の model_used、provider_used、run_id、マッピングされた family、および different_families が含まれます。実行の実際のプロバイダーは、ルートファイルの providers を通じてモデルファミリーにマッピングされます。同じファミリーのホストは同じようにマッピングします。マルチファミリーホストにはファミリー固有の識別子が必要です。これはモデルプレフィックスからファミリーを推測したり、レビュー作業が行われたことを証明したりするものではありません。
ルックアップ順序は route.py と同じです。明示的な --families、KANBAN_WATCH_ROUTES、~/.config/hermes-kanban-watch/routes.yaml、出荷テンプレート。有効で空でない providers マップのみが必要です。終了コード0は異なるファミリー、1は同じファミリーまたは無効/不明な分類、3はどちらかのIDに完了した実行がない、5は読み取り不能なボードを意味します。分類エラーは different_families をnullに設定し、error を含めます。UNKNOWNを成功したチェックに変換しないでください。Claude Codeの直接呼び出しの場合は、Bash(hermes-kanban-live report:*) および Bash(hermes-kanban-live verify-pair:*) のみをリクエストし、無制限のBash権限はリクエストしないでください。
タイムアウト全体で親質問監視をアームしたままにする
hermes-kanban-live needs --board demo --loop --created-by PARENT --cursor-key WAVE を1回実行します。終了コード3のたびにコマンドを再構築する必要はありません。ループモードでは --since はオプションで、起動時に1回キャプチャされ、タイムウインドウをまたいで進行することはありません。最初のポーリングには、作成者の古い親質問を含め、まだ有効な既存の待機が含まれます。回答済み/再開済み/置き換えられた古い待機は除外されたままで、既存のシーン-カーソル重複排除は引き続き適用されます。
ループモードは --interval でスリープし、通常のタイムアウトのみを再試行します。タイムアウトJSONのチャーンはありません。最初の空でないアイテム結果で終了コード0で終了するか、エラーの場合は再試行せずに失敗します。--max-seconds は各ウインドウを制限し、コマンドの存続時間は制限しません。サイレント監視を停止するには呼び出し元をキャンセルします。--loop がない場合、必須の --since、終了コード3のタイムアウト、および出力動作は変更されません。これは依然としてリーダーであり、カードへの回答、ディスパッチ、または変更の許可は決して与えられません。
機能ガイド
- ウェーブ時間と実際の実行レポート: 実際の実行、再試行、経過秒数。請求コストではありません。
- 実際に実行されたファミリーを検証する: 完了した実行のファミリーエビデンス。モデルピンではありません。
- ニーズを独自のタイムアウトループで1回アームする: タイムアウト全体での読み取り専用親質問待機。
- ヘッド固定PRマージレシートを印刷する: 独立ベリファイア、正確なヘッド、CIおよびマージ状態チェック。マージは決して行われません。
- Watcherトークンコスト: カウントのみのClaude Watcher使用量。ワーカー時間とは別です。
- 親に固定された重複ワーカーと質問: プロセス警告と親待機を観察します。修復は決して行われません。
- 修正をファイルし、以前の評決を再検証する: 明示的な作成のみ。ベリファイアピンを再利用し、オプションの親メモ。ディスパッチなし。
- ワークフロー所有の待機ラウンド: 1つの期限下での健全な読み取り専用待機。
- 投稿せずに常設回答を提案する: 承認されたレビューのための提案を印刷します。決して投稿しません。