Refusals
Part of team worktree — every message that refuses it, the exit each carries, and the runs that trip them.
| Message | Exit |
|---|---|
team worktree: a subcommand is required / unknown subcommand "x" / a task name is required / unexpected "x" (each with the usage) | 2 |
team worktree: remove takes no --kind or --seat (with the usage) | 2 |
team worktree: line <n>: <message> | 2 |
team worktree: --file is the owner's, from a terminal outside herdr; this call is <caller> | 1 |
team worktree: --session is the owner's, from a terminal outside herdr; this call is <caller> | 1 |
team worktree: only the owner, the orchestrator or the operator runs it; this call is <caller> | 1 |
team worktree: no pane is recorded for seat <name> in this session: the owner stops that seat and runs `team up` | 1 |
team worktree: the state records pane <pane> for seat <name> in this session, not the pane this call is on: the owner stops the team and starts it again (`team down`, then `team up`) | 1 |
team worktree: session can't be "default", herdr's own session | 1 |
team worktree: the file was never approved on this machine: run `team approve` | 1 |
team worktree: approved before records were signed: run `team approve` once — the record was written by an earlier team; the same line, with the case, for a record that does not verify | 1 |
team worktree: the approval record cannot be read (<store>/approval.json: "file" is not a string): run `team approve` once — the record's file is not a string; the store refuses it before this command reads a copy | 1 |
team worktree: the approved copy can't be read: run `team approve` — a verified record whose stored copy this version can't read, whether or not the fingerprints match | 1 |
team worktree: a task name is one segment of letters, digits, ".", "_" and "-", and it starts with a letter or a digit | 1 |
team worktree: --kind: <the same, for the kind> | 1 |
team worktree: workspace.mode is shared: this team keeps one checkout, so there is no task worktree to create | 1 |
team worktree: workspace.path and workspace.base are required | 1 |
team worktree: --kind is required: the branch pattern is "{kind}/{task}" | 1 |
team worktree: --kind has nowhere to go: the branch pattern is "{task}" | 1 |
team worktree: <folder> is outside the approved trust paths | 1 |
team worktree: seat <name> is not in the approved file: run `team approve` — a seat the file declares and the approved copy does not | 1 |
team worktree: --seat "x" names no declared seat | 1 |
team worktree: "t" is already recorded / "t" is already recorded in session x | 1 |
team worktree: the worktree limit is 8, and 8 are open | 1 |
team worktree: <folder> already exists / branch <b> already exists / <remote>/<b> already exists | 1 |
team worktree: "b" is not a branch name | 1 |
team worktree: workspace.base "main" is not a branch here; nothing was created | 1 |
team worktree: couldn't fetch <remote>: <first line>. Nothing was created. | 1 |
team worktree: the worktree was not created: <first line of git's error> | 1 |
team worktree: setup failed on command <n> of <m>; the worktree is kept and recorded as setup: failed | 1 |
team worktree: no worktree named "t" is recorded | 1 |
team worktree: "t" is recorded in session x, not in y; nothing was removed | 1 |
team worktree: seat <name> is recorded in this worktree; team remove <name> first | 1 |
team worktree: uncommitted or untracked files: … the first twenty, one per line | 1 |
team worktree: commits on no remote branch: … the first twenty, one per line | 1 |
team worktree: the worktree was not removed: <first line of git's error> | 1 |
When setup fails, the folder is still printed on stdout before the refusal: the worktree is kept,
recorded as setup: failed, and the exit code is 1.
A caller that cannot run it
A seat that isn't the orchestrator or the operator can't create one:
team worktree new select-width --kind fix ; echo "exit $?"
team worktree: only the owner, the orchestrator or the operator runs it; this call is claude-beacon
exit 1A kind the pattern needs
The branch pattern asks for a kind, so the command does:
team worktree new select-width ; echo "exit $?"
team worktree: --kind is required: the branch pattern is "{kind}/{task}"
exit 1A task name that is not one segment
The task name is one path segment, and nothing else:
team worktree new "select width" --kind fix ; echo "exit $?"
team worktree: a task name is one segment of letters, digits, ".", "_" and "-", and it starts with a letter or a digit
exit 1A task already open
The same task can't be open twice:
team worktree new select-width --kind fix ; echo "exit $?"
team worktree: "select-width" is already recorded
exit 1A worktree with commits to lose
A commit that lives only in the worktree keeps it in place:
-C ../worktrees/beacon/select-width commit --allow-empty -m "Measure the pane" team worktree remove select-width ; echo "exit $?"
team worktree: commits on no remote branch:
<sha> Measure the pane
exit 1