Environment
- Platform (select one):
- Claude CLI version: Latest (as of 2025-08-25)
- Operating System: Linux
- Terminal: Terminal App
Bug Description
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.
Steps to Reproduce
- Set user-level configuration in
~/.claude/settings.json:
{
"permissions": {
"allow": ["Bash"],
"ask": ["Bash(rm *)", "Bash(git push*)", "Bash(git branch*-D*)"]
}
}
- Ensure no project-level overrides exist (empty or no
.claude/settings.json in project)
- Restart Claude Code completely
- Run:
touch test.txt && rm test.txt
Expected Behavior
The 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.
Actual Behavior
The file is deleted immediately without any confirmation prompt. All commands matching patterns in the ask list execute without prompting.
Additional Context
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 list
defaultMode: "default" - Prompts for every new command type
Environment
Bug Description
The
asklist in permissions is completely ignored when"Bash"is in theallowlist, making it impossible to implement a "allow all commands except require confirmation for destructive ones" permission model at the user level.Steps to Reproduce
~/.claude/settings.json:{ "permissions": { "allow": ["Bash"], "ask": ["Bash(rm *)", "Bash(git push*)", "Bash(git branch*-D*)"] } }.claude/settings.jsonin project)touch test.txt && rm test.txtExpected Behavior
The
rmcommand should trigger a confirmation prompt because it matches the"Bash(rm *)"pattern in theasklist, despite"Bash"being in the allow list.Actual Behavior
The file is deleted immediately without any confirmation prompt. All commands matching patterns in the
asklist execute without prompting.Additional Context
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