Skill: competenza su richiesta
- Definire cos'è una Skill e in cosa differisce dallo stipare tutto in CLAUDE.md
- Leggere e scrivere un SKILL.md — frontmatter più istruzioni — e capire perché la description è il trigger
- Spiegare la divulgazione progressiva e perché permette a molte skill di scalare senza gonfiare il contesto
- Conoscere i tre posti in cui risiedono le skill: personale, progetto e raggruppate in un plugin
- Scegliere correttamente tra Skill, comando slash, subagent e MCP
- Evitare i quattro errori comuni che impediscono alle skill di attivarsi
Una Skill impacchetta competenza — istruzioni più script e risorse facoltativi — che Claude carica solo quando è pertinente. Invece di stipare tutto in CLAUDE.md, dai a Claude una libreria di capacità che richiama su richiesta.
Anatomia
Una skill è una cartella con un SKILL.md: frontmatter YAML + istruzioni.
---
name: pdf-forms
description: Use when the user needs to fill, read, or generate PDF forms.
---
# PDF Forms
Steps and rules for working with PDF forms…
(optionally reference scripts/ or resources/ in this folder)
- La description è il trigger — Claude la legge per decidere quando attivare la skill. Scrivila come "Use when…", abbastanza specifica da farla caricare al momento giusto e non altrimenti.
Divulgazione progressiva (perché le skill scalano)
Claude non carica in anticipo il corpo completo di ogni skill — vede il leggero name + description, e richiama le istruzioni complete (ed esegue gli script) solo quando una richiesta corrisponde. Questo mantiene snello il contesto anche con molte skill installate.
Dove risiedono
- ~/.claude/skills/<name>/SKILL.md — restano tue, disponibili in tutti i tuoi progetti.
- .claude/skills/<name>/SKILL.md — committala su git e tutto il team ottiene la capacità.
- Impacchetta le skill dentro un plugin per la distribuzione al team. Vedi Plugin e marketplace.
AILmanac fornisce 7 pacchetti di skill pronti all'uso — copiane uno per provarlo.
Esempio pratico: una skill che si attiva da sola
Crea ~/.claude/skills/release-notes/SKILL.md:
---
name: release-notes
description: Use when the user asks to write release notes or a changelog from git history.
---
# Release Notes
1. Run `git log <last-tag>..HEAD --oneline` to get the commits.
2. Group them into Features / Fixes / Breaking changes.
3. Write user-facing notes — what changed for *users*, not commit messages.
4. Output Markdown ready to paste into a GitHub release.
Più tardi digiti il prompt qui sotto. Claude non aveva mai avuto questi passaggi nel contesto — ma la richiesta corrisponde alla description, quindi richiama il SKILL.md completo, esegue il git log e produce note raggruppate. Non hai invocato nulla per nome; è stata la description a fare il routing. Aggiungi un file scripts/ nella stessa cartella e la skill potrà eseguirlo come parte del passaggio 1.
Attiva la skill in base all'intento — senza alcun nome
Draft release notes since v1.4.
Skill contro comando contro subagent contro MCP
| Strumento | Cos'è | Lo attivi tu o Claude |
|---|---|---|
| Comando slash | Un prompt salvato | Lo invochi tu |
| Skill | Competenza su richiesta + script | Lo carica Claude quando è pertinente |
| Subagent | Un agente delegato con il proprio contesto | Claude delega |
| MCP | Una connessione a strumenti/dati esterni | Fornisce strumenti da chiamare |
- Vuoi attivarlo su richiesta → comando slash.
- Claude dovrebbe conoscere la procedura e applicarla quando è pertinente → skill.
- Il lavoro deve avvenire in un contesto separato → subagent.
- Devi raggiungere un sistema esterno → MCP.
Errori comuni
- Una description che non si attiva. "Helps with PDFs" è troppo vaga; "Use when the user needs to fill, read, or generate PDF forms" dice a Claude esattamente quando caricarla. La description è l'intero meccanismo di attivazione — scrivila per il matching, non per gli esseri umani.
- Mettere invece tutto in CLAUDE.md. CLAUDE.md si carica a ogni sessione e costa sempre contesto; una skill si carica solo quando è pertinente. Sposta le procedure situazionali nelle skill e tieni CLAUDE.md per le regole di progetto sempre valide.
- Una skill gigante e unica. Molte skill piccole e descritte con precisione fanno un routing migliore di una sola tuttofare — la divulgazione progressiva aiuta solo se ogni description è specifica.
- Dimenticare che è condivisibile. Una skill di progetto in .claude/skills/ committata su git dà la capacità a tutto il team; una personale in ~/.claude/skills/ resta tua.