Bug
The skill loader incorrectly parses markdown inline code spans as bash commands when a backtick-enclosed span ends with ! and is followed by another backtick span on the same line.
Minimal Repro
Create a skill with this SKILL.md:
---
name: backtick-bug-repro
description: Minimal repro. Only use when explicitly called.
---
`!!` x `y` z
Invoke with /backtick-bug-repro. Result:
Error: Bash command failed for pattern "!` x `": [stderr]
(eval):1: command not found: x
No allowed-tools field is needed — the bug is in the skill loader itself, not tool permissions.
What's happening
The parser extracts the text from the ! at the end of the first inline code span, through the closing backtick, across the plain text, up to the next backtick — i.e. !`<text between spans>` — and tries to execute it as a bash command via eval.
Conditions
- An inline code span ending with
! (e.g. `!!`, `a!` alone doesn't trigger — needs !!)
- Followed by any text
- Followed by another inline code span on the same line
Real-world impact
The /hike skill's SKILL.md contains walk syntax documentation:
...each step is a code fence with `!!` in the metastring. Tooltip content goes in `## !id` headings after the steps.
This makes the entire skill fail to load.
Environment
- macOS (zsh)
- Claude Code 2.1.42
Issue generated with Claude Code
Bug
The skill loader incorrectly parses markdown inline code spans as bash commands when a backtick-enclosed span ends with
!and is followed by another backtick span on the same line.Minimal Repro
Create a skill with this SKILL.md:
Invoke with
/backtick-bug-repro. Result:No
allowed-toolsfield is needed — the bug is in the skill loader itself, not tool permissions.What's happening
The parser extracts the text from the
!at the end of the first inline code span, through the closing backtick, across the plain text, up to the next backtick — i.e.!`<text between spans>`— and tries to execute it as a bash command viaeval.Conditions
!(e.g.`!!`,`a!`alone doesn't trigger — needs!!)Real-world impact
The
/hikeskill's SKILL.md contains walk syntax documentation:This makes the entire skill fail to load.
Environment
Issue generated with Claude Code