The read-back

Part of team approve — what approve prints against an existing record: when nothing changed, the ceilings and seats it fixes, and what needs a new approval.

Nothing at all changed is said plainly:

./.agents/team.yaml: the same text as the copy approved on 2026-10-04T09:00:00.000Z.

Nothing in it needs a new approval.

Then the ceilings the approval would fix — 3 seats at most, 2 temporary — and the seat names — and, when the file has a delegates section, one Delegate: pane <pane> may run <commands>. line per entry, in file order — and the signing's number for this project on this machine, with the date of the last one and the key's fingerprint: approval #4 for this project; the last one was on 2026-10-04; key fe21ef6293de. With --confirm the question comes next, before the write; without it the summary is the last thing printed and the write follows directly. The seat ceiling defaults to the seats the file declares plus the temporary ones, so adding a seat widens it, and that shows up as limits changed too. What needs a new approval is a change to an owner section (trust, limits, machine, rules, identity, workspace, orchestrator, operator, session, visibility, tools, budgets, watch — its timings included, down to watch.checks, whose turn-offs are their own line — and delegates, its entries, their panes and their command lists included) or to a seat's own fields. A seat taken out does not. Parking or stopping one does, except that remove --keep and add record the new digest themselves, so those commands do not send the owner back to approve. Until an edit is approved its section changes nothing: the watch, the budget reports, the check cadence, up's and add's launch gate and status's table run with the approved values, or with the defaults when nothing was approved. A stored copy that no longer validates: budgets falls back to no accounts (no budget reports, no check runs) and the difference is reported until the next approve; up and add refuse a drifted file before the gate.

When no record on this machine, the whole file is printed numbered — the example of that, and the basic walkthrough, are on the team approve page.

An owner section changed

An owner section is the owner's to change, and the comparison says so before the write:

.agents/team.yaml
format: 1
project: beacon
coordinator: claude-keeper
operator: claude-keeper

trust:
  - ~/.config/team/lobby
  - ~/Code/beacon
  - ~/Code/worktrees/beacon

workspace:
  mode: shared

seats:
  - role: coordinator
    name: claude-keeper
    label: coordinator
    cli: claude-code
    vendor: anthropic
    model: Claude Opus
    version: "5.5"
    launch: claude --model claude-opus-5-5
Terminal
 team approve --show ; echo "exit $?"
team approve: warning, line 3: `coordinator:` is now `leads: true` on the lead's seat, and is still read
./.agents/team.yaml: against the copy approved on 2026-10-04T09:00:00.000Z:

  + 9:   - ~/Code/worktrees/beacon

Needs a new approval: `trust` changed.
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.
exit 0