mcpField
S
shunk031-herdr-tab-status

shunk031-herdr-tab-status

github.com/shunk031エージェントワークフロー073 回インストール5 日前に更新
リポジトリ

shunk031-herdr-tab-status について

Herdr Tab Status は、Herdr のタブに現在の作業状態を表示するスキルです。状態ラベルの規則を定め、現在のペインに属するタブの名前変更を検証します。

主な機能

  1. 01進捗状態ラベルの設定
  2. 02現在のペインのタブ ID を取得
  3. 03タブ名変更の検証
  4. 04オーケストレーターとワーカーのラベルを区別
  5. 05ブロック理由の報告

活用シーン

  1. 01ワーカーの進行中またはブロック状態を表示
  2. 02ペイン移動後に正しいタブの変更を確認

インストール

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

$npx skills add https://github.com/shunk031/skills --skill shunk031-herdr-tab-status

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

同梱ファイルagents/openai.yaml

詳細

メモ

この SKILL.md を読んだら、🚦 I read shunk031-herdr-tab-status. と発言してください。

Herdr のタブステータス

ワーカーは現在のタブを自分で管理し、進行状況が変わるたびに、リトライの開始や終了も含めて、herdr スキルに従ってタブ名を変更します。タスクラベルは省略される場合があるため、先頭の絵文字が主な識別情報となります。ステータスはタブラベルにのみ設定し、ワークスペースとワークツリーのラベルには絵文字を付けないでください。

自分のタブ名を変更する前に、必ず現在のペインからタブを特定してください。移動したペインには、古い HERDR_TAB_ID が継承されている場合があります。herdr pane current --current は、.result.pane.tab_id として現在有効な ID を返します。そのタブ名を変更し、Herdr が同じタブ ID とラベルを返すことを確認してください。

label="🚧 <current step>"
rename_result=""
tab_id="$(herdr pane current --current | jq -er '.result.pane.tab_id')" &&
    rename_result="$(herdr tab rename "$tab_id" "$label")" &&
    printf '%s\n' "$rename_result" |
    jq -e --arg tab_id "$tab_id" --arg label "$label" \
        '.result.tab | .tab_id == $tab_id and .label == $label' >/dev/null ||
    { printf 'tab rename not verified: %s\n' "${rename_result:-no response}" >&2; false; }

終了コードが 0 以外の場合、ラベルは自分のタブに設定されていません。設定済みと報告しないでください。

🚧、✅、⛔ はワーカーのタブにのみ適用されます。現在のエージェントがオーケストレーターの場合は、shunk031-herdr-orchestrate-workers に従って 🤖 Orchestrator を維持するか設定してください。作業を振り分けている間、これをワーカーのステータスに置き換えてはいけません。

以下のステータスのみを使用してください。

  • 🚧 <current step> は、リトライや診断の実行中も含め、作業が進行中であることを示します。
  • ⛔ <next action> は、回答、レビュー、承認、マージを待っている、外部依存関係によって妨げられている、または停止・置き換えられて引き継ぎやクリーンアップを待っているなど、ワーカーが作業を進めたり完了したりできないことを示します。
  • ✅ <task> <PR number> は、ワーカーの作業と必要な引き継ぎが完了し、残りの作業がないことを示します。

DONE と報告済みでも、公開された PR が未マージで、レビューまたはマージがユーザーにしか行えない場合、ワーカーは依然としてブロックされています。その対応が解決するまで、⛔ の次のアクションラベルを維持してください。完了ラベルに変更するのは、残りの作業がなくなってからです。ワーカーは自分のタブ名を変更します。オーケストレーターがブロック中のラベルを設定できるのは、応答のないワーカーまたは停止したワーカーに限り、その場合も pane move が返した移動先タブ ID を使用します。pane current --current で特定できるのはオーケストレーター自身のタブであり、ワーカーのタブ名の変更には使用できません。オーケストレーターは通常の作業中、別の稼働中ワーカーのタブを変更してはいけません。完了ラベルには、汎用的な DONE ではなく、簡潔なタスク名と PR 番号を必ず含めてください。

ラベルの選択を求められた場合は、1 行目にラベルをそのまま記載し、その後に説明してください。

BLOCKED と報告する前に、タブ名の変更と報告を、1 つのガード付きシーケンスで実行してください。通常の BLOCKED 報告は、Herdr が要求されたタブ ID とラベルを返した後にのみ送信します。失敗した場合は、タブ名の変更を確認できなかったと報告してください。

label="⛔ <next action>"
report="BLOCKED <worker>: <reason>"
failure_report="BLOCKED <worker>: tab lookup or rename failed, so the label was not set. <reason>"
rename_result=""
if tab_id="$(herdr pane current --current | jq -er '.result.pane.tab_id')" &&
    rename_result="$(herdr tab rename "$tab_id" "$label")" &&
    printf '%s\n' "$rename_result" |
    jq -e --arg tab_id "$tab_id" --arg label "$label" \
        '.result.tab | .tab_id == $tab_id and .label == $label' >/dev/null; then
    herdr agent prompt <orchestrator> "$report"
else
    printf 'tab rename not verified: %s\n' "${rename_result:-no response}" >&2
    herdr agent prompt <orchestrator> "$failure_report"
    false
fi

BLOCKED の理由には、利用できない外部依存関係や停止・置き換えによる引き継ぎなど、ワーカーが作業を進めたり完了したりできない理由を明記してください。

タブコマンドを実行する前に、herdr スキルの Herdr 環境および現在のタブに関する安全要件に従ってください。

コメント