playbook/outfitter-agents/plugins/outfitter/skills/skills-dev/references/implementations.md

6.4 KiB

Skills Implementations

Per-product implementation details for Agent Skills support.

Claude Products

Claude Code

The origin of the .claude/skills convention.

Storage Paths:

Scope Path
Personal ~/.claude/skills/
Project .claude/skills/
Plugin Bundled with installed plugins

Precedence: Not officially documented. Skills are "automatically discovered" from all sources.

Special Features:

  • allowed-tools frontmatter to restrict tool access (Claude Code only, not SDK/API)
  • Skills are model-invoked (vs user-invoked slash commands)

SDK Note: By default, the SDK does not load skills from filesystem. Must explicitly set settingSources: ['user', 'project'].

Reference: Claude Code Skills Docs


Claude (claude.ai)

Storage:

  • Custom skills uploaded as zip files via Settings
  • Per-user (not admin-managed)
  • Does not sync to API or other surfaces

Pre-built Skills:

  • Document actions (automatic activation)

Reference: Claude Skills Docs


Claude API

Storage:

  • Pre-built skills referenced by stable IDs (pptx, xlsx, docx, pdf)
  • Custom skills uploaded via Skills API endpoints
  • Stored org-wide (separate from claude.ai uploads)

Integration:

  • Reference skill_id in code execution container

Reference: Claude API Skills


GitHub Copilot

Storage Paths:

Scope Path
Primary ./.github/skills/<skill>/SKILL.md
Compatibility ./.claude/skills/

Notes:

  • Currently repo-level only
  • Org/enterprise-level skills "coming soon"
  • SKILL.md injected into agent context when used

VS Code (Copilot)

Storage Paths:

Scope Path
Recommended ./.github/skills/
Legacy ./.claude/skills/

Availability:

  • Preview in VS Code Insiders
  • Enable via chat.useAgentSkills setting

Reference: VS Code Agent Skills


OpenAI Codex

Storage Paths (with precedence, highest overrides lowest):

Priority Scope Path Use Case
1 (highest) Repo (CWD) $CWD/.codex/skills Skills for specific folder/microservice
2 Repo (parent) $CWD/../.codex/skills Shared skills in parent folder
3 Repo (root) $REPO_ROOT/.codex/skills Repository-wide skills
4 User $CODEX_HOME/skills (~/.codex/skills) Personal skills across all repos
5 Admin /etc/codex/skills SDK scripts, automation, admin defaults
6 (lowest) System Bundled with Codex Built-in skills ($plan, $skill-creator)

Note: Skills with the same name are overwritten by higher-precedence scopes.

Built-in skills: $plan, $skill-creator, $skill-installer

Reference: Codex Skills


Cursor

Storage:

  • File-based and repo-trackable
  • Can install via GitHub repository links
  • Exact default paths not publicly documented

Availability:

  • Agent Skills only on Nightly update channel
  • Enable via Settings > Rules > Import Settings > Agent Skills
  • Switch channel: Cursor Settings (Cmd+Shift+J/Ctrl+Shift+J) > Beta > Nightly

Constraints:

  • Skills are agent-decided only — cannot be configured as "always apply" or manually invoked

Reference: Cursor Skills Docs


Amp

Storage Paths:

Scope Path
Workspace (default) .agents/skills/
User-level ~/.config/amp/skills/ (per manual)
User-level (alt) ~/.config/agents/skills/ (per announcement)
Compatibility .claude/skills/, ~/.claude/skills/

Note: Official docs have conflicting user paths — manual says ~/.config/amp/skills/, announcement says ~/.config/agents/skills/.

Behavior:

  • Skills are lazy-loaded instructions (on-demand)

Reference: Amp Owner's Manual


Letta (Letta Code)

Storage Path:

  • Project root: .skills/
  • Custom location: letta --skills ~/my-global-skills
  • Each skill is a subdirectory with SKILL.md, optional references/, scripts/, examples/, assets/

Internal Persistence (Two Memory Blocks):

  • skills block (always visible, read-only): List of available skills with names + descriptions
  • loaded_skills block (session, read-only): Full content of currently loaded skills

Token Optimization:

  • Only loaded skills consume context tokens
  • Can have 50 available skills but only 2 loaded

Special Commands:

  • /skill — Extract a new reusable skill from recent work (agent reflects on recent messages)

Reference: Letta Code Skills Docs


Goose

Storage Paths (with precedence, highest first):

Priority Path
1 (highest) ./.goose/skills/
2 ./.claude/skills/
3 ~/.config/goose/skills/
4 (lowest) ~/.claude/skills/

Compatibility:

  • Explicitly supports "Claude Desktop" skill sharing
  • Treats .claude/skills/ as compatibility layer

OpenCode

Important: Skills are NOT native to OpenCode. Requires the third-party opencode-skills community plugin.

Installation:

{
  "plugin": ["opencode-skills"]
}

Requires OpenCode SDK ≥ 1.0.126.

Storage Paths (precedence, highest first):

Priority Scope Path
1 (highest) Project .opencode/skills/
2 Custom $OPENCODE_CONFIG_DIR/skills/
3 Global ~/.opencode/skills/
4 (lowest) XDG ~/.config/opencode/skills/

Integration:

  • Plugin discovers skills at startup (cached, no hot reload)
  • Skills registered as dynamic tools: skills_{name} (hyphens → underscores)
  • Example: brand-guidelines/skills_brand_guidelines

Operational Notes:

  • Adding/modifying skills requires restarting OpenCode
  • Duplicate skill names: project version takes precedence (with warning)

References: