Who may run it
Part of team approve — the owner, the approved delegate, and what a delegated approval may change.
A delegate's grant
A delegate's approval is for ordinary changes: the roster — seats and the launch lines that place
them — and rules. The guard is an allowlist, and it is fail-closed: rules is the only owner
section it admits, and every other one is refused by default — delegates first, and budgets,
limits, identity, trust, the workspace whose setup runs commands, the operator and
orchestrator sections, and any section a later version adds — with
this change needs the owner: <what changed>. The ceiling counts: adding or taking out a
seat on a file that declares no limits moves the default ceiling with it — limits changed —
so that roster edit is the owner's, while the same edit on a file whose ceiling is declared
leaves limits alone and is the delegate's. The difference is judged against the approved
copy alone, before anything else is read, so a delegate can never widen its own grant, raise a
ceiling, hand a seat the verdict over the team, point setup at a command, or add a folder the
owner did not trust: the widened value is never signed, and the owner is the only caller who
can approve it. A delegated run that signs prints the same Approved. sentence and writes one
audit line, below. --show may be run by anyone, in any terminal.
The ordinary rule this narrows — only the owner, from a terminal outside herdr — is on the team approve page.
A delegated approval
A delegated run prints the same summary, passes the same key guards and performs the same write as
the owner's: the same record, the same signature, the same store. What it does not have is the
question — --confirm is inert for a delegate, nothing is asked on any terminal, and the audit
line, not an answer, is its record. --file is refused: a delegate approves the placed
.agents/team.yaml, and nothing else. When the gate passes, the write appends one line to
.agents/team.log naming the pane and what the approval sealed:
2026-10-07T12:00:00.000Z delegate [delegate] other/w1:p1 approve: `rules` changed
The gate verifies the standing approval, the approved copy and the evidence — the state, herdr's
answers, the placement — before it lets a delegate run, and refuses with its own text when any of
them fails: delegation needs a verified approval: <what is not in force>,
delegation needs a readable approved copy: run \team approve`, or delegation cannot verify its
placement or seats:
A seat is not the owner
A seat can read the comparison — even the orchestrator's — but a seat is not the owner, and nothing is written for it:
team approve ; echo "exit $?"
team approve: warning, line 3: `coordinator:` is now `leads: true` on the lead's seat, and is still read
./.agents/team.yaml: the same text as the copy approved on 2026-10-04T09:00:00.000Z.
Nothing in it needs a new approval.
Ceilings this approval fixes: 3 seats at most, 2 temporary.
Seats: 1 (claude-keeper).
approval #2 for this project; the last one was on 2026-10-04; key fe21ef6293de.
team approve: only the owner approves a team file, from a terminal outside herdr; this call is claude-keeper
exit 1