Supervision host: on for this home (config/supervision-host-off turns it off; supervision-host.md owns the design).
{claude} The Stop hook runs the supervision host in the arm's place, and everything above still holds with these additions:
{cursor} The stop hook park runs the supervision host in the arm's place, and everything above still holds with these additions:
{opencode} The OpenCode TUI plugin runs the supervision host in the arm's place, and everything above still holds with these additions:
{omp} The omp watch extension runs the supervision host in the arm's place, and everything above still holds with these additions:
{grok} Your tracked background arm above runs the supervision host (bin/fm-supervision-host.sh park) in the plain arm's place, and everything above still holds with these additions:
{codex} Every foreground checkpoint runs the supervision host in the watcher's place, and everything above still holds with these additions:
{claude,cursor} 1. Attended (no away record; a quiet record is a present captain, see Postures): a headless supervision session takes the wakes the supervision branch may take and never wakes you for a routine outcome, so fewer wakes reach you; check wakes, decision wakes, and whatever it cannot take still reach you exactly as above, except that a quiet record with words widens the taken rows to the away scope while its outcomes still reach you now.
{opencode,omp,grok,codex} 1. Attended (no away record; see Postures): every wake reaches you exactly as above, because no verified dialog mirror feeds a supervision session from this harness yet.
{claude,cursor} supervision-host: branch-outcome: ... means it handled a wake and recorded captain outcomes for you: run bin/fm-wake-drain.sh, process each entry of its BRANCH OUTCOMES section as firstmate from the task's current state, because each entry says how long ago it was recorded (tell the captain, land or merge what is ready, answer or escalate a decision, or act on a blocker; your reply covers only entries still open, as if a settled one, such as a PR since merged, had never been listed), then run the mark-processed acknowledgement it prints; every drain presents them again until you do.
{claude,cursor} supervision-host: the supervision session could not take this wake ... means the wake is yours: handle it as above.
{claude,cursor} A failing turn may include a supervision-host: health note about repeated engine errors: tell the captain when it matters and handle the handed-back wake as usual; during cooldown later attended closes reach you unchanged.
{claude,cursor} Routine outcomes never wake you; your next drain lists only visible routine outcomes under BRANCH OUTCOMES, ROUTINE for awareness, with nothing to acknowledge. Silent rows do not appear there, but remain available through bin/fm-branch-outcome.sh list.
2. Away (an away record exists and no daemon runs): the host hands each wake to a headless away session that runs the supervision branch's contract under the record, and you are parked.
{claude} Only a wake the host hands back reaches you, as Stop hook feedback carrying the close plus one supervision-host: <why> line.
{cursor,opencode,omp} Only a wake the host hands back reaches you, as a watcher follow-up carrying the close plus one supervision-host: <why> line.
{grok} Only a wake the host hands back reaches you, as the arm's background-task-completed notification whose output carries the close plus one supervision-host: <why> line.
{codex} Only a wake the host hands back reaches you, as checkpoint output carrying the close plus one supervision-host: <why> line.
{codex} While an away record exists each checkpoint uses the longer away bound (FM_CODEX_WATCH_CHECKPOINT_AWAY, default 3600s, subject to the host's park cap; see supervision-host.md), so a captain message waits until the checkpoint returns unless the captain interrupts it.
That wake is automatic supervision, not the captain's return: drain and handle it under the away posture, and never run the return from it.
supervision-host: away handback: wakes you for dispatch or worker input: follow Main handback while away, including ordinary teardown, authorized queued work with an existing brief and cleared blockers within the spend cap, and decisions under ask-user-authority; keep genuine captain holds for return, acknowledge, then end the turn so the host resumes under the same record.
After the return, a supervision-host: line naming the captain's return during a turn means that turn has visible outcomes missing from the return brief, whether the wake was handled or handed back: relay every following supervision-host: outcome ... line to the captain (the rows also remain in bin/fm-branch-outcome.sh list), then drain and handle any queued wake before acknowledging.
Each such visible outcome is also a queued check: supervision-host outcome <n> ... was recorded after the captain returned wake, which the drain presents until acknowledged: relay each outcome once, whichever arrives first, and acknowledge its BRANCH OUTCOMES entry too when it has one. Silent outcomes remain in the store but do not generate a handoff line or check wake.
{claude,cursor} 3. supervision-host: cycle boundary ... means the host ended its park at its bound: run bin/fm-wake-drain.sh, handle whatever it presents, run its printed acknowledgement (an empty queue prints --ack-through 0), and end the turn; the next park starts at that turn end.
{opencode,omp} 3. supervision-host: cycle boundary ... means the host ended its park at its bound and the next park has already started: run bin/fm-wake-drain.sh, handle whatever it presents, and run its printed acknowledgement (an empty queue prints --ack-through 0).
{grok} 3. supervision-host: cycle boundary ... means the host ended its park at its bound: run bin/fm-wake-drain.sh, handle whatever it presents, run its printed acknowledgement (an empty queue prints --ack-through 0), and re-arm the same background host call.
{codex} 3. The host's park boundary returns as the checkpoint's ordinary checkpoint: no actionable wake within <n>s line; handle it as step 5 above says.
4. A guarded command that exits 6 naming the branch actor's lease means the supervision session is handling that task right now: leave the lease alone and retry after it releases, which it does when its turn ends.
5. Captain outcomes the away session records stay in the outcome store until the return drain presents them; the return brief (bin/fm-afk-return.sh) counts them and points you to the BRANCH OUTCOMES section for processing and acknowledgement (Captain outcomes).
{claude,grok} 6. /afk writes only the record here (bin/fm-afk-launch.sh start-native refuses the away daemon on this home); for /quiet, follow the quiet skill.
{cursor,opencode,omp,codex} 6. /afk writes only the record here (bin/fm-afk-launch.sh start refuses the away daemon on this home); for /quiet, follow the quiet skill.
{grok} 7. The pre-tool seatbelt does not classify the host command, so keep it exactly the one background call above: never shell &, a pipe, or another command bundled onto it.