{ "$schema": "https://json.schemastore.org/claude-code-settings.json", "permissions": { "allow": [ "mcp__obsidian__obsidian_list_files_in_vault", "mcp__obsidian__obsidian_simple_search", "mcp__obsidian__obsidian_get_file_contents", "mcp__obsidian__obsidian_list_files_in_dir", "mcp__postgres-gendesign__get_object_details", "mcp__postgres-gendesign__explain_query", "mcp__postgres-gendesign__list_objects", "mcp__postgres-gendesign__list_schemas", "mcp__postgres-gendesign__analyze_query_indexes", "Bash(curl *)", "Bash(powershell *)", "Bash(gh pr comment:*)", "Bash(powershell.exe:*)", "Bash(powershell:*)", "Bash(pwsh:*)", "mcp__forgejo", "mcp__forgejo__create_issue", "mcp__forgejo__update_issue", "mcp__forgejo__add_issue_labels", "mcp__forgejo__remove_issue_labels", "mcp__forgejo__issue_state_change", "mcp__forgejo__create_issue_comment", "mcp__forgejo__create_pull_request", "mcp__forgejo__merge_pull_request", "mcp__forgejo__create_pull_review", "mcp__forgejo__get_pull_request_diff", "mcp__forgejo__list_repo_issues", "mcp__forgejo__list_repo_pull_requests", "mcp__forgejo__get_pull_request_by_index", "mcp__forgejo__list_pull_request_files", "mcp__forgejo__list_pull_reviews", "mcp__forgejo__list_repo_labels", "mcp__forgejo__get_issue_by_index", "mcp__forgejo__list_issue_comments", "Write", "Edit", "Read", "Glob", "Grep", "LS", "Task", "TodoWrite", "EnterWorktree", "WebFetch", "WebSearch", "NotebookEdit", "mcp__obsidian", "mcp__postgres-gendesign", "mcp__playwright", "mcp__a11y", "mcp__lighthouse", "mcp__shadcn", "mcp__glitchtip", "mcp__context7", "mcp__fetch", "Bash(*)" ], "deny": [ "Bash(rm -rf *)", "Bash(rm -rf /*)", "Bash(git push --force *)", "Bash(git push -f *)", "Bash(git reset --hard *)", "Bash(git commit --amend *)", "Bash(git rebase --interactive *)", "Bash(git commit --no-verify*)", "Bash(git push --no-verify*)", "Bash(git push --force-with-lease*)", "Bash(git push --force-if-includes*)", "Bash(docker compose down -v *)", "Bash(docker volume rm *)", "Read(./.env)", "Read(./.env.*)", "Read(./backend/.env)", "Read(./backend/.env.*)", "Read(**/.env)", "Read(**/.env.*)" ], "defaultMode": "auto" }, "enabledMcpjsonServers": [ "obsidian", "context7", "fetch", "forgejo", "a11y", "lighthouse", "shadcn" ], "worktree": { "baseRef": "fresh", "bgIsolation": "worktree" }, "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "python ${CLAUDE_PROJECT_DIR}/scripts/claude-hooks/check-secret-read.py" }, { "type": "command", "command": "python ${CLAUDE_PROJECT_DIR}/scripts/claude-hooks/check-dangerous-commands.py" } ] } ], "PostToolUse": [ { "matcher": "Edit|Write|MultiEdit", "hooks": [ { "type": "command", "command": "python ${CLAUDE_PROJECT_DIR}/scripts/claude-hooks/check-no-print.py" }, { "type": "command", "command": "python ${CLAUDE_PROJECT_DIR}/scripts/claude-hooks/check-sql-pitfalls.py" } ] } ], "SessionStart": [ { "hooks": [ { "type": "command", "command": "python ${CLAUDE_PROJECT_DIR}/scripts/claude-hooks/session-preflight.py" } ] } ] }, "statusLine": { "type": "command", "command": "python ${CLAUDE_PROJECT_DIR}/scripts/claude-hooks/statusline.py" } }