claude-code
claude-code copied to clipboard
[BUG] Skills not discovered on Linux due to case-sensitive filename matching (SKILL.md vs skill.md)
Environment
- OS: Ubuntu 24.04.2 LTS (tested on two separate Linux machines)
- Claude Code version: 2.1.2
- Filesystem: ext4 (case-sensitive)
- Comparison: Same skills work correctly on macOS
Bug Description
Skills created with skill.md (lowercase) are not discovered on Linux but work on macOS. This is because Linux filesystems (ext4) are case-sensitive while macOS (APFS/HFS+) is case-insensitive by default.
Claude Code appears to look for SKILL.md (uppercase), which:
- ✅ Works on macOS (case-insensitive, finds
skill.md) - ❌ Fails on Linux (case-sensitive, does not find
skill.md)
Steps to Reproduce
- Create a skill on macOS or Linux with the file named
skill.md(lowercase) - On macOS: skill appears in
/autocomplete ✅ - On Linux: skill does not appear, "skill not found" error ❌
Workaround
Rename skill.md to SKILL.md:
find ~/.claude/skills -name "skill.md" -type f -exec sh -c 'mv "$1" "$(dirname "$1")/SKILL.md"' _ {} \;
Expected Behavior
Claude Code should match skill filenames case-insensitively, or clearly document that SKILL.md (uppercase) is required.
Suggested Fix
In the skill discovery code, use case-insensitive matching for SKILL.md / skill.md to ensure cross-platform compatibility.