Fleet Stop
The early-end command of the fleet workflow: /auto-prep (before) → /fleet-launch (dispatch) → /fleet-status (any time) → /fleet-stop (end early) → /fleet-retro (after). The implementation is the stop form of the launch script — the deadline marker is shared state between launching and stopping, so one script owns it; this skill dispatches and narrates:
~/.claude/scripts/fleet-launch.sh stop
Semantics
- Writes an already-passed deadline (
stopped: true) to<main-checkout>/tmp/fleet-deadline.json— the same marker a timed/fleet-launchwrites, merged onto it so the launch'scountandlaunch_epochsurvive (/fleet-statusscopes its session table bylaunch_epoch, and a wind-down is exactly when that view matters). - Each session's
/autoreads the marker after preflight and before its next pick, never mid-issue: in-flight issues run to completion (through/finishand the merge), then each session ends its loop withNO-CANDIDATES: fleet deadline reached. - Nothing is killed, ever. To abort in-flight work too, the user kills sessions in
claude agents— this skill never does. - Sessions never delete the marker (siblings still mid-issue must see it); the next
/fleet-launchclears it. See the deadline contract in fleet-launch. - The marker gates every
/autoin that checkout, fleet or not — a later solo/autorun also declines to pick until the marker is deleted or a launch clears it. If the user hits that, the fix isrm tmp/fleet-deadline.json.
Watch the wind-down with /fleet-status — the deadline row reads STOPPED, and the in-flight section empties as sessions finish.
Error Handling
- Not in a git repo, or
claude/jqmissing → the script errors before writing anything; relay it. - No fleet running → harmless: the marker is written and simply sits until the next launch clears it — but note the solo-
/autogate above.