Four Ways to Make a Check Actually Block the Stop
You want a verification check to do more than run once — you want it to actually gate whether Claude Code is allowed to consider the task done, scaling up as a run becomes less attended.
Put these in the order of escalating rigor this subject describes: a
Stop hook, a one-off prompt instruction, a verification subagent, a
/goal condition.
The correct answer is "Prompt → /goal → Stop hook → verification subagent."
The docs describe four escalating options in this order: (1) a
one-off prompt like "run the tests and iterate until they pass"; (2)
a /goal condition, evaluated by a separate model after every turn;
(3) a Stop hook, a deterministic gate that blocks the turn from
ending until the check passes; and (4) a verification subagent as a
second opinion that tries to refute the result. Each step trades more
setup for less reliance on anyone being there to notice a false
"looks done."
Share this question