[BUG] Skill tool incorrectly triggers Bash permission check on markdown content
Resolved 💬 3 comments Opened Jan 27, 2026 by devseunggwan Closed Jan 30, 2026
Bug Description
The Skill tool incorrectly triggers Bash command permission checks when loading markdown files that contain shell-like characters (e.g., !) in their text content.
Steps to Reproduce
- Create a skill file (
.claude/skills/my-skill/SKILL.md) with content containing backtick-quoted exclamation marks:
```markdown
- Breaking changes: add
!after type (e.g.,feat!:)
```
- Invoke the skill using the Skill tool
- Observe the error
Expected Behavior
The Skill tool should load markdown content as plain text without running it through Bash permission checks.
Actual Behavior
Error message:
Bash command permission check failed for pattern "!` after type (e.g., `": This command uses shell operators that require approval for safety
Root Cause Analysis
The skill loading mechanism appears to pass file content through the same permission checker used for Bash commands. The ! character in markdown documentation text is being interpreted as a shell history expansion operator.
Environment
- Claude Code CLI
- macOS Darwin 25.2.0
Suggested Fix
The Skill tool should bypass Bash permission checks since it's loading documentation/template content, not executable commands.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗