コードベース全体のレビュー・監査。perf/sec/test/arch/cq/docs の6観点を並列委譲し、優先度付き issue ファイルと観点サマリをメモリディレクトリに生成する。コードベース全体の監査・定期レビュー・リリース前品質確認の依頼時、/codebase-review 実行時に使用。境界: PR 単位は pr-review、自ブランチの提出前確認は self-review。
herdr
Herdr(コーディングエージェント向けターミナルマルチプレクサ)の操作と、herdr CLI の構文・ID 規約・agent 状態モデル(idle / working / blocked / done)の真実源。
pane・tab・workspace・terminal・command の確認や操作、別 pane での agent 起動、pane 上の agent との通信の時に使用。HERDR_ENV=1 必須。
境界: pane へ委譲するかどうか・経路・モデル・指示書・結果回収の方針は context/herdr-delegation.md(本スキルは CLI のみ)。
含まれるファイル(1)
- SKILL.md10.0 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Herdr
Herdr is a terminal multiplexer and runtime for coding agents. It organizes terminals into workspaces, tabs, and panes, detects agent identity and status, and exposes the running session through the herdr CLI.
This skill is the truth source for the CLI itself: command syntax, ID conventions, and the agent status model. Delegating work to a pane is a separate concern. The route, the agent kind and model, the instruction file handed to the agent, and how its output files come back are governed by context/herdr-delegation.md, and delegated agents are launched through bin/herdr-delegate.sh rather than by the manual sequences below. Read that file when the task is to delegate; read this one when the task is to drive the CLI.
Before issuing any control command, check that this agent is running inside a Herdr-managed pane:
test "${HERDR_ENV:-}" = 1
If the check fails, say that you are not running inside Herdr and stop. Do not inspect or control the focused Herdr session from outside Herdr.
When the check passes, the herdr binary in PATH talks to the running session. Use it to inspect neighboring work, create isolated terminal contexts, start agents and commands, read their output, and wait for state changes.
Learn the current CLI
The installed binary is the authority for command syntax. Begin with:
herdr --help
Then print the relevant command group by running it without a subcommand:
herdr pane
herdr workspace
herdr worktree
herdr tab
herdr agent
herdr terminal
herdr notification
herdr integration
herdr session
Do not run bare herdr for discovery; it launches or attaches the TUI. Do not probe a mutating nested command by omitting arguments; some commands, including herdr workspace create, are valid with defaults and will execute. Use the command-group output above instead.
Most control commands print JSON. Read identifiers and state from those responses instead of predicting either one.
IDs and current context
Public IDs are short stable handles:
- workspace:
w1 - tab:
w1:t1 - pane:
w1:p1 - terminal:
term_...
The encoded suffix can contain letters and can grow beyond one character. Treat every ID as an opaque string.
Closed tab and pane IDs are not reused and do not retarget later resources. A pane moved into another workspace receives a new public pane ID. Re-read create, split, move, list, or get responses after mutations; never construct an ID from a workspace or display number.
Herdr injects the caller's stable context into every managed pane:
printf '%s\n' "$HERDR_WORKSPACE_ID" "$HERDR_TAB_ID" "$HERDR_PANE_ID"
Prefer --current when a pane command should target the calling pane. Omitting a target can use the UI-focused pane, which may belong to the user or another client.
Discover live state with:
herdr workspace list
herdr tab list --workspace "$HERDR_WORKSPACE_ID"
herdr pane current --current
herdr pane list --workspace "$HERDR_WORKSPACE_ID"
Control agents through panes
An agent runs inside a pane. Use the pane ID as the control target for agents, shells, servers, tests, and logs. This keeps spawning, input, reads, waits, and cleanup on one stable control surface.
Use workspace and tab commands for organization. Use worktree commands only when you intentionally want Herdr to create, open, or remove a Git checkout.
Pane records expose agent, agent_status, and native session metadata when available. Agent status is idle, working, blocked, done, or unknown.
idle and done are the same underlying semantic state with different attention state:
idle: the agent is waiting and its result is considered seen.done: the agent finished and its result has not been seen.
An agent that first opens at its prompt reports idle, including in a background pane. After a working or blocked agent completes, it reports done when its tab or workspace is in the background. It reports idle when it completes in the active tab while the foreground client is focused. If the foreground client is explicitly unfocused, completion can become done even in the active tab.
Focusing a pane, switching to its tab, or regaining outer terminal focus marks the visible tab as seen, so done becomes idle. Switching away does not turn an existing idle status into done; done is created by a later completion while the pane is unseen. With no foreground client, a new completion in the globally active tab is treated as seen while completions in background tabs still become done.
Start agents interactively
This section covers starting an agent the user will watch and talk to. For delegated work, use bin/herdr-delegate.sh: it creates its own tab, injects the instruction file, waits for the output files, and cleans up (context/herdr-delegation.md).
Default to a sibling pane in the current tab and current working directory. Do not create a workspace, tab, worktree, or different cwd unless the user explicitly requests that topology or location.
Honor a direction requested by the user. Otherwise inspect the caller pane's current rectangle:
herdr pane layout --pane "$HERDR_PANE_ID"
Split a wide pane to the right and a narrow or tall pane down. Avoid repeated same-direction splits that would create unusably narrow columns or short rows. Keep the user's focus in the calling pane:
herdr pane split --current --direction right --no-focus
Replace right with down when the layout calls for it.
Read result.pane.pane_id from the JSON response. Give the pane a useful label, then start the requested agent by running only its normal executable so its interactive TUI opens:
herdr pane rename <returned-pane-id> "reviewer"
herdr pane run <returned-pane-id> "codex"
Use the executable that belongs to the requested agent:
- Codex:
codex - Claude Code:
claude - pi:
pi - OpenCode:
opencode - OMP:
omp
Do not pass the task as an argv prompt by default. Do not add non-interactive flags. Only change the normal interactive launch when the user explicitly asks for a different launch mode or command.
Inspect the pane after launch. If agent_status is not yet idle, wait for the idle transition. Once it is idle, submit the task with pane run:
herdr pane get <returned-pane-id>
herdr agent wait <returned-pane-id> --until idle --timeout 30000
herdr pane run <returned-pane-id> "Review the current diff and report only actionable findings."
Status waits match the current status immediately or wait for a future matching transition.
pane run sends the text and Enter together. Use it for initial prompts and follow-ups instead of coordinating send-text and send-keys separately.
For normal background work, wait for the agent to start working. If the pane remains in a background tab or workspace, wait for done before reading its transcript:
herdr agent wait <returned-pane-id> --until working --timeout 30000
herdr agent wait <returned-pane-id> --until done --timeout 120000
herdr pane read <returned-pane-id> --source recent-unwrapped --lines 120
If the user is watching that tab, completion reports idle instead, so wait for idle. Always treat either idle or done as completed when inspecting pane get; the difference is whether the result has been seen.
If a wait times out, inspect herdr pane get <returned-pane-id> and pane read before deciding what to do. A blocked agent needs input; an unknown pane may not yet contain a detected or integrated agent.
Submit follow-ups the same way:
herdr pane run <returned-pane-id> "Now check the failing test."
Run an ordinary command in another pane
Split the calling pane using the same geometry rule without moving the user's focus:
herdr pane split --current --direction right --no-focus
Read the new pane_id from the JSON response, then run and inspect the command:
herdr pane run <returned-pane-id> "just test"
herdr pane wait-output <returned-pane-id> --match "test result" --timeout 120000
herdr pane read <returned-pane-id> --source recent-unwrapped --lines 120
Inspect existing output before waiting for future output. A wait timeout exits with status 1.
Use the read source that matches the task:
visible: the current rendered viewportrecent: recent scrollback as rendered, including soft wrapsrecent-unwrapped: recent scrollback with soft wraps joined; prefer it for logs and transcriptsdetection: the bottom-buffer snapshot used by agent detection
Use --format ansi when colors and terminal styling are evidence. Otherwise use text.
If the user explicitly asks for another tab, workspace, or worktree, discover that command group and use returned IDs. Do not infer a larger topology from a request to start an agent or command.
Safety and coordination rules
- Use
--no-focusfor background work unless the user asked to switch context. - Use
--currentor an explicit ID. Do not rely on another client's focused pane. - Parse IDs from JSON responses. Do not derive them from sidebar order or examples.
- Inspect before waiting. Read current output first, then wait for the next state or output you expect.
- Do not close workspaces, tabs, panes, or sessions you did not create unless the user explicitly asked.
- Never run
herdr server stopfrom an active session unless the user explicitly intends to stop the server and its pane processes. - Never kill the main Herdr process. Use named test sessions for experiments that need an isolated server.
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
変更をコミットする。/commit 実行時、「コミットして」「pushして」等の依頼時に使用。--push 引数または「pushして」の依頼で push も行う。
PR を Draft で作成する。PR テンプレートを全セクション埋め、対象 repo の既存 PR の分量に合わせて書きすぎを削る。PR 作成の依頼時、実装が一段落して PR 化する時、/create-draft-pr 実行時に使用(gh pr create を直接実行しない)。引数でベースブランチを指定できる。境界: 個別レビューコメントへの対応は pr-comment。
スキルを新規作成する。「スキルを作って」「この手順をスキル化して」等の依頼時、/create-skill 実行時に使用。AGENTS.md・context・既存スキルと整合させ、重複・競合を避ける。境界: 既存スキル・指示ファイルの修正は update-inst、指示ファイル全体の監査は instructions-audit。
抽象的な要件・事業側の要求を深掘りし、既存実装との整合を確認して実装マスタとシステム要件書を作成する。「こういう機能を作りたい」「この要求を満たす機能を設計して」等の抽象要件の提示時、既存機能の拡張や Phase 分割の要件定義開始時、/design-feature 実行時に使用。境界: 要件確定後の実装計画書・PR 分割と実装進行は plan-feature-prs。
画面の設計判断(ナビゲーション・重ね方・通知と空状態と読み込み・外枠とトークンと状態表現)の型を決定表で選び、アプリ内の全画面で揃える。画面・ページ・レイアウト・ナビゲーション・ダイアログ・コンポーネントを新しく作る・作り直す時、モックやダッシュボードを作る時、サイドバー・タブ・モーダル・シート・toast・バナー・空状態のどれを使うか決める時に使用。PJ に components.json があれば shadcn の部品とトークンへの対応も扱う。主要なデザインシステム(Material・HIG・Carbon・Primer・Atlassian・Fluent・GOV.UK・NN/g・WAI-ARIA APG・WCAG)の一致点を規則にし、食い違いの採否を定めてある。境界: 画面の文言は writing-ui-text、画面に何を出すかと提示前の完了基準は context/ui-artifact-standards.md、コードの実装原則は writing-code、shadcn 部品の API と組み立ては shadcn。