Skills Created in Project Directory Instead of User Directory (WSL)

Resolved 💬 4 comments Opened Jan 3, 2026 by GoldenG177 Closed Feb 18, 2026

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):

  1. Enterprise (organization-wide)
  2. Personal/User (~/.claude/skills/)
  3. Project (.claude/skills/)
  4. 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

  1. Prompt user when creating skills: "Create as personal skill (~/.claude/skills/) or project skill (.claude/skills/)?"
  2. Default to user-level for skills that aren't explicitly project-specific
  3. Ensure WSL path handling correctly resolves ~ to Linux home, not Windows mount
  4. 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

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗