{ "$schema": "https://json.schemastore.org/claude-code-settings.json", "permissions": { "allow": [ "Bash(flutter:*)", "Bash(dart:*)", "Bash(supabase start)", "Bash(supabase stop)", "Bash(supabase status)", "Bash(supabase db reset)", "Bash(supabase test db)", "Bash(supabase migration new:*)", "Bash(supabase migration list)", "Bash(git status)", "Bash(git diff:*)", "Bash(git log:*)", "Bash(git switch:*)", "Bash(git add:*)", "Bash(git commit:*)", "Bash(git worktree:*)", "Bash(git fetch:*)", "Bash(npx playwright:*)", "mcp__forgejo__*", "mcp__outline__*", "mcp__dart__*", "mcp__playwright__*" ], "ask": [ "Bash(git push:*)", "Bash(supabase db push:*)", "Bash(supabase functions deploy:*)", "Bash(git tag:*)" ], "deny": [ "Bash(git push --force:*)", "Bash(git push -f:*)", "Bash(git push origin main)", "Bash(git reset --hard:*)", "Bash(rm -rf:*)", "Read(./env/*.json)", "Read(./.env)", "Read(./.env.*)", "Read(./supabase/.env)", "Read(./**/*.jks)", "Read(./**/key.properties)" ] }, "hooks": { "PostToolUse": [ { "matcher": "Edit|Write|MultiEdit", "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/format-dart.sh" } ] } ], "PreToolUse": [ { "matcher": "Edit|Write|MultiEdit", "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/protect-migrations.sh" } ] } ] } }