<< All versions

Skill v1.0.0

currentLLM-judged scan95/100
ancienttwo/repo-harness/repo-harness-herdr-portal
──Details
PublishedOctober 23, 2026 at 02:43 PM
Content Hashsha256:e1b1ca2898e70472...
Git SHA3a2124341a3b
──Files
Files (1 file, 3.1 KB)
SKILL.md3.1 KBactive
SKILL.md · 64 lines · 3.1 KB

version: "1.0.0" name: repo-harness-herdr-portal description: Start or reuse a named Claude CLI worker in a visible Herdr pane from a Claude Code session (App Code tab first), return its portal record, then coordinate through Claude Code cross-session messaging. when_to_use: "herdr portal, portal worker, start claude in herdr, spawn claude cli worker, App 开 herdr worker, 在 herdr 里起 claude"


repo-harness-herdr-portal

Bot entrypoint. Explicit invoke only. Herdr owns pane and agent identity. Claude Code owns the message channel. The Skill owns no state, daemon, registry or transport.

Outcome

One live Claude CLI agent named portal-<slug> in a visible Herdr pane, with its cwd under /private/tmp. The caller gets one portal record (v1) copied from command output in the same run. After one bootstrap brief, all task traffic uses SendMessage or an @mention of portal-<slug>.

Mode Selection

  • Spawn or reuse, gates, record and error codes: references/spawn.md.
  • Find the worker, send work, repair a missing row: references/messaging.md.
  • Not for review or acceptance: use repo-harness-cross-review or

repo-harness review round --launch app-terminal.

  • Already inside a Herdr pane (HERDR_ENV=1) and only need pane control: use

the herdr skill.

  • Not for Codex or any second-model pane in v1.

Gates

Stop with the failure code. Do not repair a gate.

GateCheckCode
MessagingListAgents and SendMessage are tools of this sessionmessaging_unavailable
CLIclaude --version ≥ 2.1.224claude_cli_too_old
Herdr versionherdr --version ≥ HERDR_OBSERVATION_VERSION (src/effects/terminal/herdr-observation.ts)herdr_too_old
Herdr serverherdr status --json: server.status == "running" and server.endpoint_compatible == trueherdr_down
Socketherdr status --json transport errorherdr_unreachable
cwdrealpath under /private/tmp/, and it is the worktree top levelcwd_outside_tmp, cwd_not_worktree

herdr_down: tell the operator to start Herdr in a terminal (herdr). Never run herdr server headless. The App Bash sandbox can block the Herdr socket. Report that transport error as is; this path is not verified yet.

Boundaries

The Skill and the bootstrap brief never:

  • merge, push to main, tag, publish, release or deploy;
  • approve, close or comment on PRs or issues for the operator;
  • drive the App UI, computer-use, Claude in Chrome or other browser automation;
  • pass --dangerously-skip-permissions, --permission-mode or other permission flags;
  • read, write or forward credentials, .env files or tokens;
  • send input to a pane it did not start, or to an agent not named portal-*;
  • answer an approval or question dialog in the worker pane;
  • close, kill or rename a pane, tab or workspace it did not create;
  • close a portal pane without an explicit operator request;
  • use a worktree outside /private/tmp, start a headless Herdr server or change Herdr config.

The real enforcement is the operator's Claude settings, the repo hooks and GitHub branch protection. This text is guidance.

All versions