{ "$schema": "https://json.schemastore.org/claude-code-settings.json", "permissions": { "allow": [ "Bash(yarn *)", "Bash(npm *)", "Bash(npx *)", "Bash(node *)", "Bash(git status)", "Bash(git diff*)", "Bash(git log*)", "Bash(git branch*)", "Bash(git checkout*)", "Bash(git add*)", "Bash(git commit*)", "Bash(git pull*)", "Bash(git fetch*)", "Bash(git merge*)", "Bash(git stash*)", "Bash(git remote*)", "Bash(git config*)", "Bash(git rev-parse*)", "Bash(git show*)", "Bash(git tag*)", "Bash(curl -s *)", "Bash(fnm *)" ], "deny": [ "Bash(git push --force*)", "Bash(git reset --hard*)", "Bash(git clean -fd*)", "Bash(git checkout -- .)", "Bash(rm -rf /)", "Bash(rm -rf ~)", "Bash(rm -rf .git*)", "Bash(rm -rf /*)", "Read(./**/.env*)", "Read(./**/secrets/**)" ] }, "hooks": { "SessionStart": [ { "matcher": "compact", "hooks": [ { "type": "command", "command": "bash .claude/scripts/on-post-compact.sh", "timeout": 10 } ] } ], "PreCompact": [ { "hooks": [ { "type": "command", "command": "bash .claude/scripts/on-pre-compact.sh", "timeout": 30 } ] } ], "PostToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash .claude/scripts/on-commit.sh", "timeout": 15 } ] } ] } }