[FEATURE] Reserve 'skills/' for user-managed skills, relocate internal skills to 'system/'

Resolved 💬 3 comments Opened Jan 25, 2026 by PaulRBerg Closed Feb 28, 2026

Problem

Users may symlink ~/.claude/skills to a shared location like ~/.agents/skills/ to maintain a unified skills directory across multiple AI agents (as encouraged by Vercel's skills ecosystem).

If Claude Code stores internal functionality in ~/.claude/skills/.system/, this breaks when skills/ is symlinked:

  1. Symlink target pollution - Claude Code's internal .system/ directory ends up in the shared ~/.agents/skills/ location
  2. Cross-agent leakage - other agents see Claude Code's internal files
  3. Unexpected behavior - the symlink target may be read-only, versioned, or managed by external tools

Proposed solution

Relocate internal/system skills from ~/.claude/skills/.system/ to a separate directory:

Option A (preferred): ~/.claude/system/ - clean separation at the top level
Option B: ~/.claude/.internal/ - hidden directory for internal resources

This allows ~/.claude/skills/ to be safely symlinked without dragging internal resources along.

Alternatives considered

  • Keep .system/ inside skills/ - breaks symlink scenarios
  • Document "don't symlink skills/" - fights the emerging ecosystem convention

Priority

Medium

Category

Configuration and settings

---

References:

View original on GitHub ↗

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