130 lines
4.1 KiB
JSON
130 lines
4.1 KiB
JSON
{
|
|
"hooks": {
|
|
"SessionStart": [
|
|
{
|
|
"matcher": "*",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/session_start_git_context.js",
|
|
"timeout": 2000,
|
|
"description": "Git-powered context injection - differential updates since last session (~1-2K tokens)"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/context_restorer.js",
|
|
"timeout": 2000,
|
|
"description": "Restore working context from scratch_pad.md (DRY context transfer)"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/session_start.js",
|
|
"timeout": 1000,
|
|
"description": "Display Contextune commands (zero context overhead)"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/version_checker.js",
|
|
"timeout": 3000,
|
|
"description": "Check for plugin updates (once per day)"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"UserPromptSubmit": [
|
|
{
|
|
"matcher": "*",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/context_injector.js",
|
|
"timeout": 1000,
|
|
"description": "Inject current context for grounded research"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/user_prompt_submit.py",
|
|
"timeout": 5000,
|
|
"description": "SlashSense intent detection"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "*",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/pre_tool_use_state_sync.py",
|
|
"timeout": 1000,
|
|
"description": "State sync - check if files changed externally before Edit/Write (~300 tokens only when needed)"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/pre_tool_use_git_advisor.py",
|
|
"timeout": 1000,
|
|
"description": "Git workflow advisor - suggests scripts for multi-tool workflows (93-97% token reduction)"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/tool_router.py",
|
|
"timeout": 2000,
|
|
"description": "Intelligent tool routing for cost optimization"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PostToolUse": [
|
|
{
|
|
"matcher": "*",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/tool_cost_tracker.py",
|
|
"timeout": 2000,
|
|
"description": "Track tool costs and optimization opportunities"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PreCompact": [
|
|
{
|
|
"matcher": "*",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/context_preserver.py",
|
|
"timeout": 2000,
|
|
"description": "Automatically preserve working context to scratch_pad.md"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "node ${CLAUDE_PLUGIN_ROOT}/hooks/compact_start.js",
|
|
"timeout": 1000,
|
|
"description": "Track context compaction for measuring context preservation"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SessionEnd": [
|
|
{
|
|
"matcher": "*",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/session_end_recorder.py",
|
|
"timeout": 2000,
|
|
"description": "Record session metadata for next session's git context (~100 tokens write only)"
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "uv run ${CLAUDE_PLUGIN_ROOT}/hooks/session_end_extractor.py",
|
|
"timeout": 5000,
|
|
"description": "Extract completed work to .plans/ and decisions.yaml (zero conversation overhead)"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
} |