←/articoli
7 min di lettura

Claude Skills: quando servono davvero

Claude Skills: cosa sono, dove funzionano e quando conviene una skill invece di CLAUDE.md, MCP o un subagent. Con i motivi per cui non si attiva.


Una Claude Skill è una cartella che contiene un file SKILL.md, cioè due metadati e un corpo di istruzioni che l'agente carica soltanto quando il compito che gli hai dato somiglia a quello che la skill descrive. Serve quando ti accorgi di reincollare la stessa procedura in chat un giorno sì e l'altro pure, mentre non serve per collegarti a un sistema esterno, perché quello resta lavoro da server MCP. Per chi scrive codice il vantaggio sta tutto nel costo di contesto, dato che le istruzioni pesano soltanto nel momento in cui vengono davvero usate.

Cosa sono le Claude Skills e come funzionano?

Sono cartelle di istruzioni che l'agente scopre da solo e carica in tre momenti distinti. All'avvio legge soltanto il nome e la descrizione di ogni skill disponibile, quel tanto che basta per sapere quando potrebbe servirgli. Se una richiesta corrisponde a quella descrizione legge il contenuto completo del SKILL.md, e solo a quel punto esegue le istruzioni, aprendo i file di riferimento o lanciando gli script che la cartella si porta dietro. Questo meccanismo si chiama progressive disclosure ed è il motivo per cui puoi tenerne installate parecchie senza mangiarti la finestra di contesto.

La struttura minima è un file solo, e accanto al SKILL.md puoi mettere una cartella scripts/ con codice eseguibile e una references/ con documentazione lunga che verrà letta soltanto se serve. Il frontmatter YAML richiede come minimo un nome e una descrizione, e quella descrizione conta più di tutto il resto, perché è l'unica cosa che l'agente ha in mano quando decide se caricare la skill oppure ignorarla.

Dove funzionano le Claude Skills oltre a Claude Code?

Funzionano su tutta la superficie di Claude, non solo nel terminale. Anthropic le supporta nell'interfaccia web e nell'app desktop, negli add-in per Microsoft 365, in Cowork e via API attraverso lo strumento di esecuzione del codice, su tutti i piani dal Free all'Enterprise. Cambia solo la consegna, perché sul lato consumer una skill si carica come archivio ZIP dal pannello Customize, mentre in Claude Code è una cartella sul disco.

Il formato intanto è uscito dal recinto di Anthropic, dato che la specifica Agent Skills è pubblicata come standard aperto su agentskills.io e la vetrina dei client elenca ormai decine di prodotti che la leggono, tra cui Cursor, Gemini CLI, GitHub Copilot dentro VS Code, Codex di OpenAI, OpenCode e Goose. Nell'elenco compare anche Laravel Boost, che distribuisce le proprie linee guida in quel formato. Una skill scritta oggi per Claude Code ha quindi buone probabilità di funzionare domani nell'agente del collega che usa un altro strumento.

Quando conviene una skill invece di CLAUDE.md, MCP o un subagent?

Ognuno dei quattro risolve un problema diverso e nessuno sostituisce gli altri. CLAUDE.md contiene fatti sempre veri sul progetto e resta in contesto per tutta la sessione, quindi va tenuto corto: quando una sua sezione smette di essere una lista di fatti e diventa una procedura in dieci passi, quella sezione vuole diventare una skill. Un server MCP porta capacità che il modello non ha, cioè leggere un database o chiamare un'API, mentre un subagent serve quando il lavoro deve girare in un contesto separato.

Lo stesso ragionamento vale se lavori con più assistenti diversi, dove un AGENTS.md scritto bene copre i fatti condivisi e le skill coprono le procedure ripetibili. Prima di creare il file chiediti se stai descrivendo com'è fatto il progetto oppure un lavoro che si ripete uguale ogni volta.

Come si scrive una skill che si attiva davvero?

La descrizione va scritta come un trigger, elencando le situazioni in cui la skill serve con le parole che useresti tu nella richiesta. Il nome della cartella diventa il comando che digiti, quindi ~/.claude/skills/summarize-changes/SKILL.md si invoca con /summarize-changes. In Claude Code i comandi personalizzati sono stati unificati alle skill, perciò un vecchio file in .claude/commands/ continua a funzionare identico.

Nel frontmatter ci sono poi tre campi che cambiano il comportamento della skill. Con disable-model-invocation: true la skill sparisce dal contesto dell'agente e parte solo quando la lanci tu, che è la scelta giusta per un deploy o per l'invio di messaggi. Con allowed-tools pre-approvi i comandi che deve eseguire, tenendo presente che il permesso vale per il turno in cui la invochi e decade al messaggio successivo. L'ultimo è l'iniezione dinamica di contesto, dove una riga che richiama git diff HEAD viene eseguita prima che l'agente legga il file, così le istruzioni arrivano con il diff già dentro.

Perché una skill non parte quando dovrebbe?

Nella maggior parte dei casi perché la sua descrizione non è mai arrivata in contesto per intero. Claude Code carica l'elenco di nomi e descrizioni con un budget pari all'uno per cento della finestra di contesto, e quando l'elenco sfora taglia le descrizioni partendo dalle skill che usi meno, portandosi via proprio le parole chiave che servivano per il match. Ogni voce ha comunque un tetto di 1.536 caratteri, quindi metti il caso d'uso principale all'inizio della descrizione e semmai alza il budget con l'impostazione skillListingBudgetFraction.

Il secondo sospetto è la precedenza fra le posizioni, perché a parità di nome la versione aziendale vince su quella personale in ~/.claude/skills/, che a sua volta vince su quella di progetto in .claude/skills/. Le skill di un plugin restano invece in uno spazio separato con il prefisso del plugin, e quelle annidate nelle sottocartelle di un monorepo diventano disponibili solo dopo che l'agente ha letto o modificato un file dentro quella cartella.

Cosa controllare prima di installare una skill di qualcun altro?

Vale la stessa diffidenza che useresti con una dipendenza qualsiasi presa da internet, perché una skill è testo che entra nel contesto insieme a script che possono essere eseguiti, e Anthropic indica come rischi principali il prompt injection e l'esfiltrazione di dati. Nei progetti condivisi c'è un dettaglio in più, dato che una skill committata in .claude/skills/ può concedersi permessi tramite allowed-tools una volta accettato il dialogo di fiducia sulla cartella, quindi quel file va letto in code review con la stessa attenzione di un composer.json che aggiunge un pacchetto sconosciuto.

Da dove partire domani mattina

Prendi la procedura che hai spiegato più volte all'agente nell'ultima settimana e scrivila in un SKILL.md dentro .claude/skills/, con una descrizione che elenchi le situazioni in cui va applicata. Claude Code rileva il nuovo file durante la sessione senza bisogno di riavviare, quindi la prova la fai subito, e su quali procedure meritino di diventare un flusso strutturato ho già scritto parlando di come uso le skill per dare una forma ai task.

Domande frequenti

Le Claude Skills funzionano anche fuori da Claude?

Sì, perché il formato Agent Skills è pubblicato come standard aperto su agentskills.io e viene letto da diversi agenti concorrenti, tra cui Cursor, Gemini CLI, GitHub Copilot dentro VS Code, Codex e Goose, quindi la stessa cartella si può condividere in un team che non usa tutto lo stesso strumento.

Che differenza c'è fra una Claude Skill e un server MCP?

Una skill contiene istruzioni e procedure e costa contesto solo quando serve, mentre un server MCP porta capacità nuove come l'accesso a un database o a un servizio esterno. Scegli il server MCP quando il problema è la connessione a un sistema e non la ripetizione di un procedimento.

Dove vanno messe le Claude Skills in un progetto?

In .claude/skills/<nome>/SKILL.md dentro il repository se devono valere per chi ci lavora, oppure in ~/.claude/skills/<nome>/SKILL.md se sono personali e ti seguono ovunque. A parità di nome vince la versione personale su quella di progetto.

Perché Claude non usa la mia skill da solo?

Quasi sempre per una descrizione troppo generica o troppo lunga, visto che l'elenco delle skill ha un budget di caratteri pari all'uno per cento della finestra di contesto e le descrizioni in eccesso vengono accorciate. Controlla anche di non aver impostato disable-model-invocation: true, che rende la skill invocabile soltanto a mano.


Grazie per aver letto fin qui.

Se l'articolo ti è stato utile, iscriviti alla newsletter per ricevere il prossimo direttamente in casella, oppure aggiungi il feed RSS al tuo lettore.

// similarity

// iscriviti

Ricevi il prossimo articolo, via email.