Skill Locations
Skills can live in several places on your system, each serving a different purpose and scope. Agents scan these locations at startup to build their skill registry. When two skills share the same name, a priority hierarchy determines which one wins.
This concept is universal across platforms, though the specific directory paths differ. The hierarchy below uses Claude Code's structure as the primary example, with platform equivalents noted.
The Resolution Hierarchy
Most agent platforms resolve skills from highest priority to lowest. If the same skill name exists at multiple levels, the highest-priority version is used:
Enterprise (Managed)
Skills deployed via enterprise managed settings. These cannot be overridden by individual users, enforcing organizational standards.
Personal (User-level)
User-specific skills that follow you across every project. Ideal for personal workflows and preferences.
Project (Repository-level)
Skills committed to a repository. Shared with the entire team and versioned alongside the code.
Plugin / Community Skills
Skills bundled with plugins or community packages. Third-party skill collections that provide a baseline.
This hierarchy is intentional. Enterprise admins can enforce standards that no one can accidentally override. Personal skills let developers customize their workflow without affecting teammates. Project skills ensure the whole team has the same capabilities. Plugin skills provide community tooling as a baseline.
Platform-Specific Paths
| Scope | Claude Code | Cursor | Windsurf | Gemini CLI |
|---|---|---|---|---|
| Personal | ~/.claude/skills/ | ~/.cursor/rules/ | ~/.windsurf/rules/ | ~/.gemini/GEMINI.md |
| Project | .claude/skills/ | .cursor/rules/ | .windsurf/rules/ | GEMINI.md |
| Global config | CLAUDE.md | .cursorrules | .windsurfrules | GEMINI.md |
Enterprise Skills
Enterprise skills are distributed through managed configuration. They are controlled by an organization's IT or platform team and pushed to all developers. Individual users cannot modify or override them.
# Enterprise skills are delivered via managed settings
# and are not directly editable by users.
#
# They appear alongside other skills,
# but are typically prefixed or namespaced:
# /company-deploy
# /company-review
# /company-incidentIf your company deploys a skill called deploy via managed settings, and you also have a personal skill named deploy, the enterprise version will always be used. This prevents accidental deviation from organizational standards.
Personal Skills
Personal skills live in your home directory. They are available in every project, making them ideal for cross-project workflows.
Typical personal skills include:
- Commit message generators tuned to your style
- Daily standup note formatters
- Quick code review checklists
- Personal snippet libraries
Project Skills
Project skills live inside the repository. They are committed to version control and shared with every developer on the team. This is the most common location for skills.
Project skills are the bread and butter of team collaboration. They encode institutional knowledge: how your team creates components, writes tests, structures APIs, and deploys code. Because they live in git, they evolve alongside the codebase and can be reviewed in pull requests.
Plugin / Community Skills
Some platforms support external packages that bundle skills. When you install a plugin, any skills it contains become available at the lowest priority tier.
# Plugin skills are installed as part of agent plugins.
# They appear in the skill list like any other skill,
# but can be overridden by project, personal, or enterprise skills
# of the same name.Conflict Resolution in Practice
Let's walk through a concrete example. Suppose you have a skill named review at three levels:
- Enterprise â
/reviewruns a mandatory security checklist - Personal â
/reviewruns your personal code style check - Project â
/reviewruns the team's full review workflow
When you invoke /review, the enterprise version executes. The personal and project versions are shadowed. To avoid confusion, use distinct names when skills serve different purposes. Reserve name collisions for intentional overrides.
If your personal skill accidentally shares a name with a project skill, the personal one takes priority and the team version is silently ignored. Use descriptive, namespaced names (like team-review vs. my-review) to prevent this.
Choosing the Right Location
- Only you will use it? Put it in your personal skills directory.
- Your whole team needs it? Put it in the project skills directory and commit it to the repo.
- Your organization mandates it? Distribute it via enterprise managed settings.
- It is a general-purpose utility? Package it as a plugin for the community.
What's Next
Now that you know where skills live and how conflicts resolve, it is time to build one from scratch. The next lesson is a hands-on tutorial where you create your first skill step by step.