The ask list in permissions is completely ignored when "Bash" is in the allow list, making it impossible to implement a "allow all commands except require confirmation for destructive ones" permission model at the user level.
~/.claude/settings.json:
{
"permissions": {
"allow": ["Bash"],
"ask": ["Bash(rm *)", "Bash(git push*)", "Bash(git branch*-D*)"]
}
}.claude/settings.json in project)touch test.txt && rm test.txtThe rm command should trigger a confirmation prompt because it matches the "Bash(rm *)" pattern in the ask list, despite "Bash" being in the allow list.
The file is deleted immediately without any confirmation prompt. All commands matching patterns in the ask list execute without prompting.
Goal: Single user-level configuration for "bypass all permissions except blacklisted destructive commands" across all projects.
Impact: No way to achieve both convenience (no prompts for safe commands) and safety (protection against destructive commands).
Workarounds attempted (none work):
defaultMode: "bypassPermissions" - Bypasses everything including ask listdefaultMode: "default" - Prompts for every new command type