Skills Created in Project Directory Instead of User Directory (WSL)
Claude Code Supplementary Report: Skills Created in Project Directory Instead of User Directory
Date: 2026-01-03
Product: Claude Code (CLI)
Related Issues: #15993, #16162, #15950
---
Summary
Claude Code creates skills in the project-level directory (.claude/skills/) instead of the user-level directory (~/.claude/skills/), despite documentation indicating user-level skills have higher priority and are intended for cross-project reuse.
This is part of a broader pattern of context/resource handling issues in WSL environments.
---
Environment
- Claude Code version: CLI (latest as of 2026-01-03)
- OS: Windows 11 + WSL2 (Ubuntu)
- Working directory: WSL path mounted from Windows
---
Expected Behavior (Per Documentation)
Skills resolution hierarchy (highest to lowest priority):
- Enterprise (organization-wide)
- Personal/User (
~/.claude/skills/) - Project (
.claude/skills/) - Plugin (bundled with plugins)
User-level skills are documented as:
- Available across all projects
- Higher priority than project skills
- Intended for personal, reusable skills
---
Actual Behavior
When Claude Code creates skills:
- Skills are created in
.claude/skills/(project directory) - No
~/.claude/skills/directory is created - User is not prompted for preferred location
- Skills remain project-scoped instead of cross-project available
Observed state:
~/.claude/skills/ # Did not exist until manually created
~/.claude/agents/ # Exists with 21 user-level agents
.claude/skills/ # Contains 5 skills (project-level)
.claude/agents/ # Contains project-specific agents
---
Inconsistency with Agents
| Resource | User-Level Created? | Project-Level Created? |
|----------|---------------------|------------------------|
| Agents | Yes (~/.claude/agents/) | Yes (.claude/agents/) |
| Skills | No | Yes (.claude/skills/) |
Agents correctly use both locations. Skills only use project location.
---
Relationship to Other Issues
| Issue | Problem | Connection |
|-------|---------|------------|
| #15993 | Spawned agents don't inherit protocol context | Skills also not inherited by subagents |
| #16162 | Model overrides protocols when context IS present | Resource location affects context availability |
| #15950 | Claude violates CLAUDE.md rules | May be exacerbated by fragmented resource locations |
Common thread: Resources (context, skills, protocols) are not consistently available where expected, whether due to inheritance issues or storage location issues.
---
WSL-Specific Consideration
In WSL environments:
~/.claude/resolves to/home/username/.claude/(Linux filesystem)- Project
.claude/may resolve to/mnt/c/.../.claude/(Windows filesystem via mount)
Claude Code may be defaulting to the Windows-mounted project path instead of the native Linux user path for skill creation.
---
Workaround Applied
mkdir -p ~/.claude/skills
cp -r /project/.claude/skills/* ~/.claude/skills/
After manual copy, skills exist in both locations and user-level takes precedence per documented hierarchy.
---
Suggested Fix
- Prompt user when creating skills: "Create as personal skill (~/.claude/skills/) or project skill (.claude/skills/)?"
- Default to user-level for skills that aren't explicitly project-specific
- Ensure WSL path handling correctly resolves
~to Linux home, not Windows mount - Mirror agent behavior - if agents create both user and project locations, skills should too
---
Additional Finding: Skill Inheritance
Per documentation: "Subagents do NOT automatically inherit your Skills from the main conversation."
This means even if skills are correctly located, they won't be available to Task agents unless explicitly passed. This compounds the context inheritance issue reported in #15993.
---
Report Prepared By: Claude Code (at user request)
Related Documentation: Claude Code Skills documentation confirms user-level should have higher priority
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗