The approved checks and timings

Part of team watch — the checks and timings the owner approves, and what a pass reports while an edit is unapproved.

A file that no longer validates

A file that no longer validates is not a reason to stop watching: the last copy that did is used, with a notice, and the watch goes on.

.agents/team.yaml
format: 1
project: beacon
seats: [
Terminal
 team watch ; echo "exit $?"
2026-10-04T09:00:00.000Z watching the session "beacon" every 120s
2026-10-04T09:00:00.000Z team.yaml is invalid (line 3: "[" is not closed on its line); using the copy of 2026-10-04T09:00:00.000Z
2026-10-04T09:00:00.000Z the watch of "beacon" stopped
exit 0

An approval that drifted

The file is part of the same pass. A trust line changed since the owner approved it is reported at the next one, and the team keeps running until the owner approves it again:

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

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

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

  - role: implementer
    name: claude-beacon
    label: implementer
    cli: claude-code
    vendor: anthropic
    model: Claude Opus
    version: "5.5"
    launch: claude --model claude-opus-5-5
Terminal
 team watch ; echo "exit $?"
2026-10-04T09:00:00.000Z watching the session "beacon" every 120s
2026-10-04T09:00:00.000Z the file differs from the approved one: `trust` changed
2026-10-04T09:00:00.000Z the watch of "beacon" stopped
exit 0

The timings

The watch's own timings are the owner's too: interval, idle_first, idle_repeat, team_idle, nudge_wait and unsent_after are approved with the file, and an edit to one of them changes nothing until the owner approves it — the passes keep running with the values of the approved copy, or with the defaults when nothing was approved, and the difference is reported. By default an idle seat is reported once per idle period (idle_repeat is off). A team that wants repeated idle reports turns them on by setting watch.idle_repeat to the repeat interval (such as idle_repeat: 20m), repeating every 20 minutes while the seat stays quiet.

Turning a check off

A check the team doesn't want is turned off in watch.checks — a section only the owner changes, so it is approved like the rest of them. While that edit is unapproved, the approved list stays in force: nothing new is turned off, and a check the approved file turned off stays off. The machine below sits at 8% free memory, and this file turns that report off. The approved list left it on, so the report still comes, with the difference beside it.

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

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

watch:
  interval: 120s
  checks:
    memory: off

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

  - role: implementer
    name: claude-beacon
    label: implementer
    cli: claude-code
    vendor: anthropic
    model: Claude Opus
    version: "5.5"
    launch: claude --model claude-opus-5-5
Terminal
 team watch ; echo "exit $?"
2026-10-04T09:00:00.000Z watching the session "beacon" every 120s
2026-10-04T09:00:00.000Z the file differs from the approved one: `watch.checks` changed
2026-10-04T09:00:00.000Z free memory is 8%, below 15%
2026-10-04T09:00:00.000Z the watch of "beacon" stopped
exit 0

The owner approves it, and the next pass runs without the check:

Terminal
 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: against the copy approved on 2026-10-04T09:00:00.000Z:

  + 10: watch:
  + 11:   interval: 120s
  + 12:   checks:
  + 13:     memory: off
  + 14:

Needs a new approval: `watch.checks` changed.
Ceilings this approval fixes: 4 seats at most, 2 temporary.
Seats: 2 (claude-keeper, claude-beacon).
approval #2 for this project; the last one was on 2026-10-04; key fe21ef6293de.
Approved. The record is in ~/.config/team/beacon-<hash>; signed with key fe21ef6293de; check the rest with `team doctor`.
exit 0
Terminal
 team watch ; echo "exit $?"
2026-10-04T09:00:00.000Z watching the session "beacon" every 120s
2026-10-04T09:00:00.000Z the watch of "beacon" stopped
exit 0

Checks that cannot be turned off

The four that can't be turned off — attention, missing, model-drift and approval — are refused by the schema itself, with the line, and so is a name that is no check. team approve refuses such a file the same way, and the watch keeps the last copy that validated, with the checks as the owner approved them.

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

watch:
  interval: 120s
  checks:
    attention: off
    disks: off

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

  - role: implementer
    name: claude-beacon
    label: implementer
    cli: claude-code
    vendor: anthropic
    model: Claude Opus
    version: "5.5"
    launch: claude --model claude-opus-5-5
Terminal
 team approve ; echo "exit $?"
team approve: line 9: watch.checks can't turn off attention: attention, missing, model-drift, approval always run
team approve: line 10: unknown check "disks" in watch.checks: the checks are missing, restored, model-drift, attention, unsent, idle, extra, team-idle, approval, load, memory, disk, swap-free, swap-growth, budget
exit 2