What the reviewer found
Stop runs bin/fm-turnend-guard.sh, which exits 2 to block the turn from ending whenever a firstmate primary checkout has tasks in flight and no live watcher, and bin/fm-claude-stop-autoarm.sh as an asyncRewake hook with an 8-hour timeout that runs bin/fm-watch-arm.sh (not in the packet) to start the watcher and exits 2 to wake Claude again. Both are inert outside a checkout with AGENTS.md, bin/ and state/, but inside one they keep the session running and re-waking without user input.
unconditional— runs without any action from the userunreviewed-script— runs a script that could not be read
What was read
The hook definition and the 2 scripts it runs, fetched from kunchenguid/firstmate:
.claude/settings.jsonbin/fm-turnend-guard.shbin/fm-claude-stop-autoarm.sh
What the static scan said
The 26-rule scan found nothing in this file; the review read it anyway.
How this review was made
Fable 5.1 read the files above on 7 September 2026 and answered three questions: is it dangerous to whoever installs it, is each scanner finding real, and what should the installer know. The verdict is bound to the file's hash; when the file changes, it is scanned afresh and reviewed again. A script that changes while the definition does not is not re-reviewed — that is a known gap. How the scan and the review work.