Who may run it
Part of team add — the owner, the orchestrator, the operator and the approved delegate — and the caller-role refusals shown.
A file with a delegates section also admits one more caller: the approved delegate, a pane the
owner named in that section as <session>/<pane id>, outside the team. When the ordinary rule
above refuses and the file names a delegate, the delegate gate decides — it re-reads the live file
and the approval in force, never a remembered copy — and a caller it passes runs this command as
that delegate. The delegated add is the ordinary one for a declared seat: --temporary, --like,
--until, --worktree, --session and --file stay the owner's, and so does any add that would
edit the file or the approval — restoring a seat the file no longer holds, or clearing
stopped: true, both of which write the file and re-sign the approval. A --file or --session
a non-owner aims is the gate's too, once the file names a delegate: the gate refuses it before the
flagged file or the flag's session is read, on the eligibility of the default live file alone —
the flagged file is never opened. With no delegates section nothing changes: the same refusals,
the same words, the same exit codes, those two flags' included. A delegated run
that proceeds is attributed in the log before its effects, as
<time> delegate [delegate] <session>/<pane id> add.
The ordinary rule this delegate gate defers to — the owner, the orchestrator and the operator, and the placement it proves — is on the team add page.
The caller rules, shown
Only the implementer is up. A pane made by hand and renamed claude-keeper is not the orchestrator:
the state records no pane for the seat, so nothing tells that shell apart from the seat, and every
command that changes the team refuses it, naming the seat and the repair only the owner can make —
the hand-started pane is closed, and team up starts the seat with a pane of its own:
team add claude-beacon ; echo "exit $?"
team add: no pane is recorded for seat claude-keeper in this session: the owner stops that seat and runs `team up`
exit 1An implementer's seat is neither the orchestrator's nor the operator's, so it adds nothing — not even itself:
team add claude-keeper ; echo "exit $?"
team add: only the owner, the orchestrator or the operator runs it; this call is claude-beacon
exit 1