{ "description": "PUA v3 hooks: optional context notes, failure-pattern reminders, local state continuity, and cleanup helpers. All hooks are local-only — no telemetry, no network requests.", "hooks": { "UserPromptSubmit": [ { "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/frustration-trigger.sh\"", "timeout": 5 } ] } ], "PostToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/failure-detector.sh\"", "timeout": 5 } ] } ], "PostToolUseFailure": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/failure-detector.sh\"", "timeout": 5 } ] } ], "PreCompact": [ { "matcher": "*", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/checkpoint-save.sh\"", "timeout": 5 } ] } ], "SessionStart": [ { "matcher": "compact", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/session-restore.sh\"", "timeout": 5 } ] }, { "matcher": "startup|resume|clear", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/session-restore.sh\"", "timeout": 5 } ] } ], "Stop": [ { "matcher": "*", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/pua-loop-hook.sh\"" }, { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/stop-feedback.sh\"", "timeout": 10 } ] } ], "SubagentStop": [ { "matcher": "*", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/subagent-teardown.sh\"", "timeout": 5 } ] } ], "PreToolUse": [ { "matcher": "Bash|Read|Grep|Glob|Edit|Write|MultiEdit|WebSearch|WebFetch", "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/integrity-guard.sh\"", "timeout": 5 } ] } ] } }