Matcher was Glob|Grep — those tool inputs have no `command` field, so the hint never fired. Switch to Bash matcher and gate on the actual command substring (grep, rg, ripgrep, find, fd, ack, ag) so the graphify hint only injects when Claude is about to scan raw files. Co-Authored-By: Claude <noreply@anthropic.com>
15 lines
690 B
JSON
15 lines
690 B
JSON
{
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Bash",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "CMD=$(python3 -c \"import json,sys; d=json.load(sys.stdin); print(d.get('tool_input',d).get('command',''))\" 2>/dev/null || true); case \"$CMD\" in *grep*|*rg\\ *|*ripgrep*|*find\\ *|*fd\\ *|*ack\\ *|*ag\\ *) [ -f graphify-out/graph.json ] && echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PreToolUse\",\"additionalContext\":\"graphify: Knowledge graph exists. Read graphify-out/GRAPH_REPORT.md for god nodes and community structure before searching raw files.\"}}' || true ;; esac"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
} |