{ "hooks": { "PostToolUse": [ { "matcher": "Task", "hooks": [ { "type": "command", "command": "entire hooks claude-code post-task" } ] }, { "matcher": "TodoWrite", "hooks": [ { "type": "command", "command": "entire hooks claude-code post-todo" } ] } ], "PreToolUse": [ { "matcher": "Task", "hooks": [ { "type": "command", "command": "entire hooks claude-code pre-task" } ] } ], "SessionEnd": [ { "matcher": "", "hooks": [ { "type": "command", "command": "entire hooks claude-code session-end" }, { "type": "command", "command": "bash .entire/git-sync.sh push 2>/dev/null || true" } ] } ], "SessionStart": [ { "matcher": "compact", "hooks": [ { "type": "command", "command": "bash .entire/git-sync.sh pull 2>&1 || true; echo '=== CONTEXT RESTORED AFTER COMPACTION ==='; echo \"Project: $(basename $(git rev-parse --show-toplevel 2>/dev/null || pwd))\"; echo 'Strategy: auto-commit'; echo \"Remote: $(git remote get-url $(git remote | head -1) 2>/dev/null || echo 'not set')\"; echo '=== Recent commits ==='; git log --oneline -10 2>/dev/null; echo '=== END CONTEXT ==='" } ] }, { "matcher": "", "hooks": [ { "type": "command", "command": "bash .entire/git-sync.sh pull 2>&1 || true; bash .entire/generate-claude-md.sh . 2>/dev/null; entire hooks claude-code session-start" } ] } ], "Stop": [ { "matcher": "", "hooks": [ { "type": "command", "command": "entire hooks claude-code stop" }, { "type": "command", "command": "bash .entire/git-sync.sh push 2>/dev/null || true" } ] } ], "UserPromptSubmit": [ { "matcher": "", "hooks": [ { "type": "command", "command": "entire hooks claude-code user-prompt-submit" } ] } ] }, "permissions": { "defaultMode": "bypassPermissions", "deny": [ "Read(./.entire/metadata/**)" ] } }