What the reviewer found
PreToolUse runs bin/fm-arm-pretool-check.sh and bin/fm-cd-pretool-check.sh on Bash, which delegate deny decisions to bin/fm-*-command-policy.mjs (not in the packet), and bin/fm-subagent-pretool-check.sh on matcher .* which denies any delegation-shaped tool (Agent, Task, cron, worktree...) inside a firstmate primary checkout. All fail open and only deny; the actual policy logic is unreviewed.
broad-matcher— intercepts every tool callunreviewed-script— runs a script that could not be read
What was read
The hook definition and the 3 scripts it runs, fetched from kunchenguid/firstmate:
.claude/settings.jsonbin/fm-arm-pretool-check.shbin/fm-cd-pretool-check.shbin/fm-subagent-pretool-check.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.