[Bug] Custom skills not loading when names conflict with reserved keywords
Bug Description
Title: Custom skills not appearing in available skills list despite valid skills.json configuration
Description:
Several custom skills defined in .claude/skills.json are not appearing in the available skills list, even though the JSON configuration is valid and the skill files exist. This occurs selectively - some skills load correctly while others with identical structure do not.
Environment:
- Claude Code Version: [Your version]
- Platform: Windows 10/11
- Project: .NET 9.0 solution with Clean Architecture
Expected Behavior:
All skills properly defined in .claude/skills.json should appear in the available skills list and be invokable via the Skill tool (e.g., /codeflow:code).
Actual Behavior:
Only some skills appear in the available skills list. The following skills are properly configured but missing:
- codeflow:code
- codeflow:debug
- codeflow:bug-fix
- codeflow:complete-dev
- codeflow:architect
Meanwhile, these skills work correctly:
- codeflow:ask ✓
- codeflow:test ✓
- codeflow:review ✓
- codeflow:refactor ✓
- codeflow:optimize ✓
- codeflow:deploy-check ✓
- All root-level skills (plan, specify, implement, etc.) ✓
Steps to Reproduce:
- Create a .claude/skills.json file with the following structure:
{
"$schema": "https://json.schemastore.org/claude-code-skills.json",
"skills": [
{
"name": "codeflow:code",
"description": "Development Coordinator directing four coding specialists",
"path": "commands/codeflow/code.md",
"category": "development"
},
{
"name": "codeflow:debug",
"description": "Systematic debugging and root cause analysis",
"path": "commands/codeflow/debug.md",
"category": "development"
}
]
}
- Create corresponding markdown files at the specified paths with valid skill definitions (same structure as working skills like ask.md)
- Restart Claude Code completely
- Check available skills list - the skills won't appear
Configuration Files:
.claude/skills.json entry for missing skill:
{
"name": "codeflow:code",
"description": "Development Coordinator directing four coding specialists",
"path": "commands/codeflow/code.md",
"category": "development"
}
Example of working skill with identical structure:
{
"name": "codeflow:ask",
"description": "Interactive Q&A for development decisions",
"path": "commands/codeflow/ask.md",
"category": "development"
}
File structure:
.claude/
├── skills.json
└── commands/
└── codeflow/
├── code.md # Missing from skills list
├── debug.md # Missing from skills list
├── ask.md # Works correctly
├── test.md # Works correctly
└── review.md # Works correctly
Verification Performed:
- ✅ JSON syntax is valid (validated with ConvertFrom-Json)
- ✅ All file paths exist and are accessible
- ✅ File permissions are correct (same as working skills)
- ✅ Skill file content follows the same structure as working skills
- ✅ Claude Code was fully restarted multiple times
- ✅ No syntax errors or validation warnings in skills.json
Additional Context:
The missing skills appear to have more generic names ("code", "debug") compared to working skills ("ask", "test", "review"). This might suggest:
- Name collision with internal Claude Code functionality
- Reserved keyword filtering
- Undocumented naming restrictions
Workaround Attempted:
None found. Direct invocation via /codeflow:code has not been tested.
Impact:
This prevents users from organizing skills into logical command structures and limits the extensibility of Claude Code's skill system.
Suggested Investigation:
- Check if there's a reserved keywords list for skill names
- Verify skill loading logic doesn't filter based on name patterns
- Review any caching mechanisms that might prevent skill registration
- Add debug logging for skill loading to help diagnose similar issues
Environment Info
- Platform: win32
- Terminal: vscode
- Version: 2.0.74
- Feedback ID: 56d4bbcd-e086-4ed3-a780-7f18c1b6f85d
Errors
[{"error":"Error: Request was aborted.\n at _0A._createMessage (file:///C:/Program%20Files/nodejs/node_modules/@anthropic-ai/cl
Note: Error logs were truncated.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗