491a45dd43
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
119 lines
3.1 KiB
JSON
119 lines
3.1 KiB
JSON
{
|
|
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
|
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(npm run lint *)",
|
|
"Bash(npm run test *)",
|
|
"Bash(npm run typecheck)",
|
|
"Bash(npm run build)",
|
|
"Bash(git status)",
|
|
"Bash(git diff *)",
|
|
"Bash(git log *)",
|
|
"Bash(git branch *)",
|
|
"Bash(git stash *)",
|
|
"Bash(git add *)",
|
|
"Bash(git commit *)",
|
|
"Bash(git fetch *)",
|
|
"Bash(git checkout *)",
|
|
"Bash(git switch *)",
|
|
"Bash(gh pr *)",
|
|
"Bash(gh issue *)",
|
|
"Bash(gh run *)"
|
|
],
|
|
"deny": [
|
|
"Read(**/.env)",
|
|
"Read(**/.env.*)",
|
|
"Read(**/secrets/**)",
|
|
"Read(**/*.pem)",
|
|
"Read(**/*.key)",
|
|
"Write(**/.env)",
|
|
"Write(**/.env.*)",
|
|
"Write(**/secrets/**)",
|
|
"Write(**/*.pem)",
|
|
"Write(**/*.key)",
|
|
"Edit(**/.env)",
|
|
"Edit(**/.env.*)",
|
|
"Edit(**/secrets/**)",
|
|
"Edit(**/*.pem)",
|
|
"Edit(**/*.key)"
|
|
]
|
|
},
|
|
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Edit|Write",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/protect-files.sh",
|
|
"timeout": 5000,
|
|
"statusMessage": "Checking file protections..."
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/warn-large-files.sh",
|
|
"timeout": 5000,
|
|
"statusMessage": "Checking for build artifacts..."
|
|
},
|
|
{
|
|
"type": "command",
|
|
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/scan-secrets.sh",
|
|
"timeout": 5000,
|
|
"statusMessage": "Scanning for secrets..."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"matcher": "Bash",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/block-dangerous-commands.sh",
|
|
"timeout": 5000,
|
|
"statusMessage": "Checking command safety..."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"PostToolUse": [
|
|
{
|
|
"matcher": "Edit|Write",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/format-on-save.sh",
|
|
"timeout": 15000,
|
|
"statusMessage": "Formatting..."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"SessionStart": [
|
|
{
|
|
"matcher": "",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/session-start.sh",
|
|
"timeout": 5000,
|
|
"statusMessage": "Loading project context..."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"Notification": [
|
|
{
|
|
"matcher": "",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "which osascript >/dev/null 2>&1 && osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"' || which notify-send >/dev/null 2>&1 && notify-send 'Claude Code' 'Claude Code needs your attention' || true"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|