shunk031-herdr-tab-status について
Herdr Tab Status は、Herdr のタブに現在の作業状態を表示するスキルです。状態ラベルの規則を定め、現在のペインに属するタブの名前変更を検証します。
主な機能
- 01進捗状態ラベルの設定
- 02現在のペインのタブ ID を取得
- 03タブ名変更の検証
- 04オーケストレーターとワーカーのラベルを区別
- 05ブロック理由の報告
活用シーン
- 01ワーカーの進行中またはブロック状態を表示
- 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 環境および現在のタブに関する安全要件に従ってください。