feat: hand items off to a configured command; branch: field #58

Closed
jwarykowski wants to merge 1 commit from feat/handoff into master
jwarykowski commented 2026-10-11 23:24:29 +00:00 (Migrated from github.com)

Replaces the agent orchestration in #51 with a generic hook, so shepherd stays a board plus a command API and doesn't drive herdr, git worktrees, gh or agent CLIs itself.

  • handoff = [...] in config.toml: the command an item is handed to, with placeholders {prompt} {text} {note} {id} {board} {dir} {branch} and the same values in SHEPHERD_* env vars. Runs in the board's working directory, attached to the terminal.
  • shepherd handoff <ref> and @ on the board: a subtask goes with its parent as context; the item is marked in-progress once the command is known to exist, so an unset or missing command leaves it untouched (exit 2, or a notice on the board).
  • branch:<name> token, as in #51: stored, in list --json, the schema and the filter, so a hand-off script or drover can find the item again.
  • README (new "hand off an item" section, config key), AGENTS.md and the skill.

Tests: argv parsing (commas and escapes inside arguments, trailing comments), placeholder expansion and env, the CLI run and its failure paths, @ on the board, and the branch token. Smoke-tested the built binary.

Pairs with #57 (settings save keeps handoff and other unmanaged keys).

Replaces the agent orchestration in #51 with a generic hook, so shepherd stays a board plus a command API and doesn't drive herdr, git worktrees, gh or agent CLIs itself. - `handoff = [...]` in config.toml: the command an item is handed to, with placeholders `{prompt}` `{text}` `{note}` `{id}` `{board}` `{dir}` `{branch}` and the same values in `SHEPHERD_*` env vars. Runs in the board's working directory, attached to the terminal. - `shepherd handoff <ref>` and `@` on the board: a subtask goes with its parent as context; the item is marked in-progress once the command is known to exist, so an unset or missing command leaves it untouched (exit 2, or a notice on the board). - `branch:<name>` token, as in #51: stored, in `list --json`, the schema and the filter, so a hand-off script or drover can find the item again. - README (new "hand off an item" section, config key), AGENTS.md and the skill. Tests: argv parsing (commas and escapes inside arguments, trailing comments), placeholder expansion and env, the CLI run and its failure paths, `@` on the board, and the branch token. Smoke-tested the built binary. Pairs with #57 (settings save keeps `handoff` and other unmanaged keys).
jwarykowski commented 2026-10-12 00:14:39 +00:00 (Migrated from github.com)

Closing: replaced by #63. Sending a task to an agent now goes through drover (the @ key and shepherd go), so there's one way to do it and every run is logged. The branch: field isn't needed; drover links the PR it opens.

Closing: replaced by #63. Sending a task to an agent now goes through drover (the @ key and shepherd go), so there's one way to do it and every run is logged. The branch: field isn't needed; drover links the PR it opens.

Pull request closed

Sign in to join this conversation.
No description provided.