summaryrefslogtreecommitdiff
path: root/default/.claude
diff options
context:
space:
mode:
Diffstat (limited to 'default/.claude')
-rw-r--r--default/.claude/mcp/supabase.json8
-rw-r--r--default/.claude/settings.local.json202
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"
+ }
+}