diff options
Diffstat (limited to 'default/.claude')
| -rw-r--r-- | default/.claude/mcp/supabase.json | 8 | ||||
| -rw-r--r-- | default/.claude/settings.local.json | 202 |
2 files changed, 210 insertions, 0 deletions
diff --git a/default/.claude/mcp/supabase.json b/default/.claude/mcp/supabase.json new file mode 100644 index 0000000..16b8572 --- /dev/null +++ b/default/.claude/mcp/supabase.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "supabase": { + "type": "http", + "url": "https://mcp.supabase.com/mcp" + } + } +} diff --git a/default/.claude/settings.local.json b/default/.claude/settings.local.json new file mode 100644 index 0000000..1ecd1bb --- /dev/null +++ b/default/.claude/settings.local.json @@ -0,0 +1,202 @@ +{ + "env": { + "MAX_MCP_OUTPUT_TOKENS": "60000", + "BASH_DEFAULT_TIMEOUT_MS": "300000", + "BASH_MAX_TIMEOUT_MS": "600000", + "MAX_THINKING_TOKENS": "8192", + "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "64000", + "CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS": "45000", + "NODE_ENV": "development", + "NEXT_PUBLIC_APP_ENV": "development" + }, + "includeCoAuthoredBy": false, + "permissions": { + "allow": [ + "Bash(.venv/bin/pip:*)", + "Bash(.venv/bin/python:*)", + "Bash(awk:*)", + "Bash(cat:*)", + "Bash(ccusage daily)", + "Bash(ccusage daily:*)", + "Bash(chmod:*)", + "Bash(claude config get)", + "Bash(claude mcp:*)", + "Bash(cp:*)", + "Bash(curl:*)", + "Bash(do)", + "Bash(done)", + "Bash(echo:*)", + "Bash(env)", + "Bash(fd:*)", + "Bash(find:*)", + "Bash(gemini:*)", + "Bash(git cherry-pick:*)", + "Bash(git log:*)", + "Bash(git show:*)", + "Bash(git stash:*)", + "Bash(grep:*)", + "Bash(gtimeout:*)", + "Bash(jq:*)", + "Bash(ls:*)", + "Bash(mcp:*)", + "Bash(mkdir:*)", + "Bash(mv:*)", + "Bash(npx eslint:*)", + "Bash(npx tsc:*)", + "Bash(pip install:*)", + "Bash(psql:*)", + "Bash(python:*)", + "Bash(readlink:*)", + "Bash(rg:*)", + "Bash(sed:*)", + "Bash(source:*)", + "Bash(then)", + "Bash(timeout:*)", + "Bash(tree:*)", + "Bash(true)", + "Bash(uv pip install:*)", + "Bash(uv run:*)", + "Bash(uv venv:*)", + "Bash(wc:*)", + "Bash(xargs grep:*)", + "Bash(xargs ls:*)", + "Bash(zai:*)", + "Skill(anthropic:update-memory-bank)", + "Skill(claude-docs-consultant)", + "Skill(consult-zai)", + "WebFetch(domain:docs.anthropic.com)", + "WebFetch(domain:docs.convex.dev)", + "WebFetch(domain:docs.z.ai)", + "WebFetch(domain:github.com)", + "WebFetch(domain:openrouter.ai)", + "WebFetch(domain:www.comet.com)", + "WebSearch", + "mcp__cf-docs__search_cloudflare_documentation", + "mcp__chrome-devtools__click", + "mcp__chrome-devtools__emulate_cpu", + "mcp__chrome-devtools__emulate_network", + "mcp__chrome-devtools__evaluate_script", + "mcp__chrome-devtools__fill", + "mcp__chrome-devtools__fill_form", + "mcp__chrome-devtools__hover", + "mcp__chrome-devtools__list_console_messages", + "mcp__chrome-devtools__list_network_requests", + "mcp__chrome-devtools__list_pages", + "mcp__chrome-devtools__navigate_page", + "mcp__chrome-devtools__navigate_page_history", + "mcp__chrome-devtools__new_page", + "mcp__chrome-devtools__resize_page", + "mcp__chrome-devtools__take_screenshot", + "mcp__chrome-devtools__take_snapshot", + "mcp__context7__get-library-docs", + "mcp__context7__query-docs", + "mcp__context7__resolve-library-id", + "mcp__gemini-cli__gemini_ai_collaboration", + "mcp__gemini-cli__gemini_cli", + "mcp__gemini-cli__gemini_help", + "mcp__gemini-cli__gemini_metrics", + "mcp__gemini-cli__gemini_models", + "mcp__gemini-cli__gemini_openrouter_models", + "mcp__gemini-cli__gemini_openrouter_opinion", + "mcp__gemini-cli__gemini_openrouter_usage_stats", + "mcp__gemini-cli__gemini_prompt", + "mcp__gemini-cli__gemini_review_code", + "mcp__gemini-cli__gemini_summarize", + "mcp__gemini-cli__gemini_summarize_files", + "mcp__gemini-cli__gemini_verify_solution", + "mcp__gemini-cli__gemini_version", + "mcp__ide__getDiagnostics" + ], + "deny": [ + "Bash(npm run build:*)" + ], + "defaultMode": "plan" + }, + "statusLine": { + "type": "command", + "command": ".claude/statuslines/statusline.sh" + }, + "hooks": { + "PreToolUse": [ + { + "matcher": "Edit|MultiEdit|Write", + "hooks": [ + { + "type": "command", + "command": "sh -c 'file=\"$(echo \"$STDIN\" | jq -r .tool_input.file_path)\"; if [[ \"$file\" == *.tsx ]] || [[ \"$file\" == *.jsx ]]; then ext=\"${file##*.}\"; if grep -q \"useState\\|useEffect\\|useReducer\\|useCallback\\|useMemo\" \"$file\" 2>/dev/null; then if ! grep -q \"^['\\\"]use client['\\\"]\" \"$file\" 2>/dev/null; then echo \"⚠️ Warning: Client hooks detected. Add \\'use client\\' directive if needed.\"; fi; fi; fi'" + } + ] + }, + { + "matcher": "Bash", + "hooks": [ + { + "type": "command", + "command": "sh -c 'cmd=\"$(echo \"$STDIN\" | jq -r .tool_input.command)\"; if echo \"$cmd\" | grep -q \"^npm install\\|^yarn add\\|^pnpm add\"; then echo \"📦 Installing dependencies - checking for Next.js compatibility...\"; fi'" + } + ] + } + ], + "PostToolUse": [ + { + "matcher": "Write|MultiEdit", + "hooks": [ + { + "type": "command", + "command": "sh -c 'file=\"$(echo \"$STDIN\" | jq -r .tool_input.file_path)\"; if [[ \"$file\" == app/**/page.tsx ]] || [[ \"$file\" == app/**/page.jsx ]]; then dir=\"$(dirname \"$file\")\"; if [ ! -f \"$dir/loading.tsx\" ] && [ ! -f \"$dir/loading.jsx\" ]; then echo \"💡 Tip: Consider adding a loading.tsx for better UX\"; fi; if [ ! -f \"$dir/error.tsx\" ] && [ ! -f \"$dir/error.jsx\" ]; then echo \"💡 Tip: Consider adding an error.tsx for error handling\"; fi; fi'" + } + ] + }, + { + "matcher": "Write|MultiEdit", + "hooks": [ + { + "type": "command", + "command": "sh -c 'file=\"$(echo \"$STDIN\" | jq -r .tool_input.file_path)\"; if [[ \"$file\" == *.ts ]] || [[ \"$file\" == *.tsx ]]; then if which prettier >/dev/null 2>&1; then prettier --write \"$file\" 2>/dev/null || true; fi; fi'" + } + ] + } + ], + "Stop": [ + { + "matcher": "", + "hooks": [ + { + "type": "command", + "command": "sh -c 'if [ -f \"package.json\" ] && [ -d \"app\" ]; then echo \"🚀 Next.js Tip: Run \\`npm run dev\\` to start the development server\"; if [ -f \"tsconfig.json\" ]; then echo \"📝 Run \\`npm run type-check\\` to verify TypeScript types\"; fi; fi'" + } + ] + } + ], + "Notification": [ + { + "matcher": "permission_prompt", + "hooks": [ + { + "type": "command", + "command": "notify-send -u critical -i dialog-warning '🤖 Claude Code' 'Permission confirmation required'", + "timeout": 5 + } + ] + }, + { + "matcher": "idle_prompt", + "hooks": [ + { + "type": "command", + "command": "notify-send -i dialog-question '🤖 Claude Code' 'Waiting for input'", + "timeout": 5 + } + ] + } + ] + }, + "_metadata": { + "name": "Next.js 15", + "version": "1.0.0", + "category": "framework", + "generated": "2025-08-20T13:36:56.329Z", + "generator": "manual", + "note": "Official Claude Code configuration" + } +} |
