The complete plugin (3.23.0) ships three prompt-type hooks matched on Write|Edit:
- PostToolUse "ARCHITECTURE ENFORCEMENT (Cosilico repos only)"
- PostToolUse "MULTI-ZONE ADVISORY" (Next.js zone-app config files)
- PreToolUse "PRE-WRITE CHECK (Cosilico repos only)"
Because they are prompt hooks with no path pre-filter, every Write/Edit in ANY repo runs an LLM evaluation, and the evaluation's "condition does not apply" verdict surfaces as PostToolUse:Edit hook stopped continuation: This is not a Next.js config file… — halting the agent's turn after each edit. In a long engineering session tonight (populace release work, dozens of edits to Python files), every single edit stopped the turn and required a manual nudge to resume. Same family as the known Cosilico .rac hook misfire.
Fix: gate each prompt hook behind a cheap command-type path guard (jq the file_path, exit 0 fast when the path is outside Cosilico repos / isn't a next.config.*), or convert the repo/path condition into the hook matcher layer, so the LLM evaluation only runs when the file could actually match. The prompt evaluations should also return an explicit allow/continue rather than a bare condition-not-met explanation.
Workaround applied locally: "complete@policyengine-claude": false in enabledPlugins.
The complete plugin (3.23.0) ships three prompt-type hooks matched on
Write|Edit:Because they are prompt hooks with no path pre-filter, every Write/Edit in ANY repo runs an LLM evaluation, and the evaluation's "condition does not apply" verdict surfaces as
PostToolUse:Edit hook stopped continuation: This is not a Next.js config file…— halting the agent's turn after each edit. In a long engineering session tonight (populace release work, dozens of edits to Python files), every single edit stopped the turn and required a manual nudge to resume. Same family as the known Cosilico .rac hook misfire.Fix: gate each prompt hook behind a cheap command-type path guard (jq the file_path, exit 0 fast when the path is outside Cosilico repos / isn't a next.config.*), or convert the repo/path condition into the hook matcher layer, so the LLM evaluation only runs when the file could actually match. The prompt evaluations should also return an explicit allow/continue rather than a bare condition-not-met explanation.
Workaround applied locally:
"complete@policyengine-claude": falsein enabledPlugins.