npx claudepluginhub anthropics/claude-plugins-community --plugin local-seo-audit-systemDefined in hooks/hooks.json
{
"PreToolUse": [
{
"hooks": [
{
"type": "prompt",
"prompt": "Before fetching this URL, verify it is the target audit site, a competitor site, or a legitimate SEO tool. Do not fetch unrelated URLs."
}
],
"matcher": "WebFetch"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "prompt",
"prompt": "After writing audit output, verify: (1) No generic recommendations — every finding references the specific business. (2) Competitor context is included. (3) Every recommendation has specific steps, effort estimate, and expected impact. (4) Priority scoring (Impact x Feasibility) is present. (5) AI visibility angle is considered for content recommendations."
}
],
"matcher": "Write|Edit"
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "prompt",
"prompt": "If the user's message triggers an SEO audit (contains 'run an audit', 'seo audit', 'audit this site', etc.), ensure the intake form has been completed with items 1-6 before proceeding. If not collected yet, present the intake form first."
}
],
"matcher": ""
}
]
}"{\"riskFlags\": {\"touchesBash\": false, \"matchAllTools\": false, \"touchesFileWrites\": true}, \"typeStats\": {\"prompt\": 3}, \"eventStats\": {\"PreToolUse\": 1, \"PostToolUse\": 1, \"UserPromptSubmit\": 1}, \"originCounts\": {\"absolutePaths\": 0, \"pluginScripts\": 0, \"projectScripts\": 0}, \"timeoutStats\": {\"commandsWithoutTimeout\": 0}}"