/plugin marketplace add Jaureguy760/velocity-workflow/plugin install jaureguy760-velocity-workflow@Jaureguy760/velocity-workflowDefined in hooks/hooks.json
{
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "cd \"$CLAUDE_PROJECT_DIR\" && python3 hooks/test_gate.py",
"timeoutMs": 60000
},
{
"type": "command",
"command": "cd \"$CLAUDE_PROJECT_DIR\" && python3 hooks/desktop_notify.py",
"timeoutMs": 10000
}
],
"matcher": ""
}
],
"PreToolUse": [
{
"hooks": [
{
"type": "command",
"command": "cd \"$CLAUDE_PROJECT_DIR\" && python3 hooks/safety_check.py",
"timeoutMs": 30000
}
],
"matcher": "Bash"
}
],
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "cd \"$CLAUDE_PROJECT_DIR\" && (bun run format 2>/dev/null || npm run format 2>/dev/null || true)",
"timeoutMs": 45000
}
],
"matcher": "Edit|Write"
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "cd \"$CLAUDE_PROJECT_DIR\" && git status --short | head -20",
"timeoutMs": 10000
}
],
"matcher": ""
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "echo \"Auto-allow safe command: $CLAUDE_TOOL_COMMAND\"",
"timeoutMs": 5000
}
],
"matcher": "Bash\\(git .*\\)|Bash\\(npm .*\\)|Bash\\(pnpm .*\\)|Bash\\(yarn .*\\)|Bash\\(pytest .*\\)|Bash\\(ruff .*\\)|Bash\\(mypy .*\\)"
}
]
}{
"riskFlags": {
"touchesBash": true,
"matchAllTools": false,
"touchesFileWrites": true
},
"typeStats": {
"command": 5
},
"eventStats": {
"Stop": 2,
"PreToolUse": 1,
"PostToolUse": 1,
"SessionStart": 1
},
"originCounts": {
"absolutePaths": 0,
"pluginScripts": 0,
"projectScripts": 5
},
"timeoutStats": {
"commandsWithoutTimeout": 5
}
}