npx claudepluginhub fusengine/agents --plugin fuse-designDefined in hooks/hooks.json
{
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/guard-state-files.py"
}
],
"matcher": "Write|Edit",
"_description": "Block agent from modifying pipeline state files"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/enforce-html-css-only.py"
}
],
"matcher": "Write|Edit",
"_description": "Design-expert can only write HTML/CSS/MD/JSON files"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-design-skill.py"
}
],
"matcher": "Write|Edit",
"_description": "Block UI edits if design skill not consulted"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/pipeline-gate.py"
}
],
"matcher": "Write|Edit",
"_description": "Pipeline gate: enforce phase ordering for Write/Edit"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-inspiration-read.py"
}
],
"matcher": "mcp__playwright__browser_navigate",
"_description": "Block Playwright browsing before reading design-inspiration.md"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/require-scroll-before-screenshot.py"
}
],
"matcher": "mcp__playwright__browser_take_screenshot",
"_description": "Block screenshot without scrolling first (lazy loading)"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/pipeline-gate.py"
}
],
"matcher": "mcp__gemini-design__",
"_description": "Pipeline gate: enforce phase ordering for Gemini"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/validate-design-system.py"
}
],
"matcher": "mcp__gemini-design__create_frontend",
"_description": "Block create_frontend if design-system.md is generic or missing"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/track-skill-read.py"
}
],
"matcher": "Read",
"_description": "Track skill file reads"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/track-screenshot.py"
}
],
"matcher": "mcp__playwright__browser_take_screenshot",
"_description": "Update state after each Playwright screenshot"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/track-mcp-research.py"
}
],
"matcher": "mcp__context7__|mcp__exa__|mcp__magic__|mcp__shadcn__|mcp__playwright__|mcp__gemini-design__",
"_description": "Track MCP research + Playwright calls"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/validate-design.py"
}
],
"matcher": "Write|Edit",
"_description": "Validate design best practices after Write/Edit"
}
],
"SubagentStop": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/design-agent-flag.py"
}
],
"matcher": "design",
"_description": "Clear flag when design-expert agent stops"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/design-state-cleanup.py"
}
],
"matcher": "design",
"_description": "Archive state file and clean old ones"
}
],
"SubagentStart": [
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/design-agent-flag.py"
}
],
"matcher": "design",
"_description": "Set flag when design-expert agent starts"
},
{
"hooks": [
{
"type": "command",
"command": "python3 ${CLAUDE_PLUGIN_ROOT}/scripts/design-state-init.py"
}
],
"matcher": "design",
"_description": "Initialize design state tracking file"
}
]
}"{\"riskFlags\": {\"touchesBash\": false, \"matchAllTools\": false, \"touchesFileWrites\": true}, \"typeStats\": {\"command\": 16}, \"eventStats\": {\"PreToolUse\": 8, \"PostToolUse\": 4, \"SubagentStop\": 2, \"SubagentStart\": 2}, \"originCounts\": {\"absolutePaths\": 0, \"pluginScripts\": 16, \"projectScripts\": 0}, \"timeoutStats\": {\"commandsWithoutTimeout\": 16}}"