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

226 lines
6.4 KiB
Markdown

# 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](https://code.claude.com/docs/en/skills)
---
### 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](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
---
### 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](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
---
## 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](https://code.visualstudio.com/docs/copilot/customization/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](https://developers.openai.com/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](https://cursor.com/docs/context/skills)
---
## 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](https://ampcode.com/manual#agent-skills)
---
## 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](https://docs.letta.com/letta-code/skills)
---
## 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:**
```json
{
"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:**
- [opencode-skills Plugin](https://github.com/malhashemi/opencode-skills)
- [Superpowers for OpenCode](https://blog.fsck.com/2025/11/24/Superpowers-for-OpenCode/)