[Bug] Permission allow rules not applied for Bash(mkdir) in skill contexts and default mode

Resolved 💬 4 comments Opened Apr 8, 2026 by Tank-x3 Closed May 21, 2026

Bug Description
Bug: Bash(mkdir *) allow rule in settings.json not applied in certain contexts

Environment: Claude Code v2.1.80+ on Windows 11, permissionMode: default

Settings: Global ~/.claude/settings.json has "Bash(mkdir *)" in permissions.allow.

Issue 1 — Skill execution ignores global allow list:
When a custom skill (e.g., /init-guidelines) invokes Bash(mkdir -p guidelines docs/handover), a permission prompt is shown despite the allow rule. Session logs show permissionMode: undefined for
skill-initiated tool calls, suggesting the permission mode is not propagated into the skill execution context, causing the allow list to be bypassed.

Issue 2 — Regression in v2.1.80+ default mode:
In default permissionMode, Bash(mkdir *) was auto-allowed in v2.1.39–2.1.49 but prompts for every mkdir call since v2.1.80. The same commands auto-allow in acceptEdits and bypassPermissions modes. This
suggests the mode-specific check (mkdir only auto-allowed in acceptEdits) now takes precedence over user-defined allow rules.

Evidence: 99 mkdir calls analyzed across 814 sessions. All 16 skill-invoked cases and all default-mode cases on v2.1.80+ triggered prompts. Pattern matching logic itself is correct (/^mkdir( .*)?$/s).

Expected: User-defined allow rules in settings.json should take precedence regardless of permissionMode or skill context.

Environment Info

  • Platform: win32
  • Terminal: windows-terminal
  • Version: 2.1.96
  • Feedback ID: beaa5c53-01ad-4e48-8c27-bf4d3bc62442

Errors

[]

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗