Questa guida ti mostra come creare, utilizzare e gestire Agent Skills in Claude Code. Le Skills sono capacità modulari che estendono la funzionalità di Claude attraverso cartelle organizzate contenenti istruzioni, script e risorse.
Prerequisiti
- Claude Code versione 1.0 o successiva
- Familiarità di base con Claude Code
Cosa sono gli Agent Skills?
Gli Agent Skills racchiudono l’expertise in capacità scopribili. Ogni Skill consiste in un file SKILL.md con istruzioni che Claude legge quando rilevante, più file di supporto opzionali come script e template.
Come vengono invocate le Skills: Le Skills sono model-invoked—Claude decide autonomamente quando utilizzarle in base alla tua richiesta e alla descrizione della Skill. Questo è diverso dai comandi slash, che sono user-invoked (tu digiti esplicitamente /command per attivarli).
Vantaggi:
- Estendi le capacità di Claude per i tuoi flussi di lavoro specifici
- Condividi expertise nel tuo team tramite git
- Riduci i prompt ripetitivi
- Componi più Skills per attività complesse
Scopri di più nella panoramica di Agent Skills.
Crea una Skill
Le Skills sono archiviate come directory contenenti un file SKILL.md.
Personal Skills
Le Personal Skills sono disponibili in tutti i tuoi progetti. Archiviale in ~/.claude/skills/:
mkdir -p ~/.claude/skills/my-skill-name
Usa Personal Skills per:
- I tuoi flussi di lavoro e preferenze individuali
- Skills sperimentali che stai sviluppando
- Strumenti di produttività personali
Project Skills
Le Project Skills sono condivise con il tuo team. Archiviale in .claude/skills/ all’interno del tuo progetto:
mkdir -p .claude/skills/my-skill-name
Usa Project Skills per:
- Flussi di lavoro e convenzioni del team
- Expertise specifico del progetto
- Utilità e script condivisi
Le Project Skills vengono controllate in git e sono automaticamente disponibili ai membri del team.
Plugin Skills
Le Skills possono anche provenire da plugin di Claude Code. I plugin possono raggruppare Skills che sono automaticamente disponibili quando il plugin è installato. Queste Skills funzionano allo stesso modo delle Personal e Project Skills.
Scrivi SKILL.md
Crea un file SKILL.md con frontmatter YAML e contenuto Markdown:
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---
# Your Skill Name
## Instructions
Provide clear, step-by-step guidance for Claude.
## Examples
Show concrete examples of using this Skill.
Requisiti dei campi:
name: Deve usare solo lettere minuscole, numeri e trattini (massimo 64 caratteri)
description: Breve descrizione di cosa fa la Skill e quando usarla (massimo 1024 caratteri)
Il campo description è critico affinché Claude scopra quando usare la tua Skill. Dovrebbe includere sia cosa fa la Skill che quando Claude dovrebbe usarla.
Consulta la guida alle best practices per una guida completa alla creazione, incluse le regole di validazione.
Aggiungi file di supporto
Crea file aggiuntivi accanto a SKILL.md:
my-skill/
├── SKILL.md (required)
├── reference.md (optional documentation)
├── examples.md (optional examples)
├── scripts/
│ └── helper.py (optional utility)
└── templates/
└── template.txt (optional template)
Fai riferimento a questi file da SKILL.md:
For advanced usage, see [reference.md](reference.md).
Run the helper script:
```bash
python scripts/helper.py input.txt
```
Claude legge questi file solo quando necessario, utilizzando la divulgazione progressiva per gestire il contesto in modo efficiente.
Usa il campo frontmatter allowed-tools per limitare quali tool Claude può usare quando una Skill è attiva:
---
name: safe-file-reader
description: Read files without making changes. Use when you need read-only file access.
allowed-tools: Read, Grep, Glob
---
# Safe File Reader
This Skill provides read-only file access.
## Instructions
1. Use Read to view file contents
2. Use Grep to search within files
3. Use Glob to find files by pattern
Quando questa Skill è attiva, Claude può usare solo i tool specificati (Read, Grep, Glob) senza dover chiedere il permesso. Questo è utile per:
- Skills di sola lettura che non dovrebbero modificare file
- Skills con ambito limitato (ad es., solo analisi dei dati, nessuna scrittura di file)
- Flussi di lavoro sensibili alla sicurezza dove vuoi limitare le capacità
Se allowed-tools non è specificato, Claude chiederà il permesso per usare i tool come al solito, seguendo il modello di permesso standard.
allowed-tools è supportato solo per Skills in Claude Code.
Visualizza le Skills disponibili
Le Skills vengono scoperte automaticamente da Claude da tre fonti:
- Personal Skills:
~/.claude/skills/
- Project Skills:
.claude/skills/
- Plugin Skills: raggruppate con i plugin installati
Per visualizzare tutte le Skills disponibili, chiedi direttamente a Claude:
What Skills are available?
o
List all available Skills
Questo mostrerà tutte le Skills da tutte le fonti, incluse le Plugin Skills.
Per ispezionare una Skill specifica, puoi anche controllare il filesystem:
# List personal Skills
ls ~/.claude/skills/
# List project Skills (if in a project directory)
ls .claude/skills/
# View a specific Skill's content
cat ~/.claude/skills/my-skill/SKILL.md
Testa una Skill
Dopo aver creato una Skill, testala facendo domande che corrispondono alla tua descrizione.
Esempio: Se la tua descrizione menziona “file PDF”:
Can you help me extract text from this PDF?
Claude decide autonomamente di usare la tua Skill se corrisponde alla richiesta—non hai bisogno di invocarla esplicitamente. La Skill si attiva automaticamente in base al contesto della tua domanda.
Esegui il debug di una Skill
Se Claude non usa la tua Skill, controlla questi problemi comuni:
Rendi la descrizione specifica
Troppo vaga:
description: Helps with documents
Specifica:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
Includi sia cosa fa la Skill che quando usarla nella descrizione.
Verifica il percorso del file
Personal Skills: ~/.claude/skills/skill-name/SKILL.md
Project Skills: .claude/skills/skill-name/SKILL.md
Controlla che il file esista:
# Personal
ls ~/.claude/skills/my-skill/SKILL.md
# Project
ls .claude/skills/my-skill/SKILL.md
Controlla la sintassi YAML
YAML non valido impedisce il caricamento della Skill. Verifica il frontmatter:
cat SKILL.md | head -n 10
Assicurati che:
--- di apertura sulla riga 1
--- di chiusura prima del contenuto Markdown
- Sintassi YAML valida (nessuna tabulazione, indentazione corretta)
Visualizza gli errori
Esegui Claude Code in modalità debug per vedere gli errori di caricamento della Skill:
Condividi Skills con il tuo team
Approccio consigliato: Distribuisci Skills tramite plugin.
Per condividere Skills tramite plugin:
- Crea un plugin con Skills nella directory
skills/
- Aggiungi il plugin a un marketplace
- I membri del team installano il plugin
Per istruzioni complete, consulta Aggiungi Skills al tuo plugin.
Puoi anche condividere Skills direttamente tramite repository di progetto:
Passaggio 1: Aggiungi Skill al tuo progetto
Crea una Project Skill:
mkdir -p .claude/skills/team-skill
# Create SKILL.md
Passaggio 2: Esegui il commit su git
git add .claude/skills/
git commit -m "Add team Skill for PDF processing"
git push
Passaggio 3: I membri del team ottengono automaticamente le Skills
Quando i membri del team tirano le ultime modifiche, le Skills sono immediatamente disponibili:
git pull
claude # Skills are now available
Aggiorna una Skill
Modifica SKILL.md direttamente:
# Personal Skill
code ~/.claude/skills/my-skill/SKILL.md
# Project Skill
code .claude/skills/my-skill/SKILL.md
Le modifiche hanno effetto la prossima volta che avvii Claude Code. Se Claude Code è già in esecuzione, riavvialo per caricare gli aggiornamenti.
Rimuovi una Skill
Elimina la directory della Skill:
# Personal
rm -rf ~/.claude/skills/my-skill
# Project
rm -rf .claude/skills/my-skill
git commit -m "Remove unused Skill"
Best practices
Mantieni le Skills focalizzate
Una Skill dovrebbe affrontare una capacità:
Focalizzata:
- “PDF form filling”
- “Excel data analysis”
- “Git commit messages”
Troppo ampia:
- “Document processing” (dividi in Skills separate)
- “Data tools” (dividi per tipo di dati o operazione)
Scrivi descrizioni chiare
Aiuta Claude a scoprire quando usare le Skills includendo trigger specifici nella tua descrizione:
Chiara:
description: Analyze Excel spreadsheets, create pivot tables, and generate charts. Use when working with Excel files, spreadsheets, or analyzing tabular data in .xlsx format.
Vaga:
Testa con il tuo team
Fai usare le Skills ai tuoi colleghi e raccogli feedback:
- La Skill si attiva quando previsto?
- Le istruzioni sono chiare?
- Ci sono esempi mancanti o casi limite?
Documenta le versioni della Skill
Puoi documentare le versioni della Skill nel contenuto di SKILL.md per tracciare i cambiamenti nel tempo. Aggiungi una sezione di cronologia delle versioni:
# My Skill
## Version History
- v2.0.0 (2025-10-01): Breaking changes to API
- v1.1.0 (2025-09-15): Added new features
- v1.0.0 (2025-09-01): Initial release
Questo aiuta i membri del team a capire cosa è cambiato tra le versioni.
Risoluzione dei problemi
Claude non usa la mia Skill
Sintomo: Fai una domanda rilevante ma Claude non usa la tua Skill.
Controlla: La descrizione è abbastanza specifica?
Le descrizioni vaghe rendono difficile la scoperta. Includi sia cosa fa la Skill che quando usarla, con i termini chiave che gli utenti menzionerebbero.
Troppo generico:
description: Helps with data
Specifico:
description: Analyze Excel spreadsheets, generate pivot tables, create charts. Use when working with Excel files, spreadsheets, or .xlsx files.
Controlla: YAML è valido?
Esegui la validazione per controllare gli errori di sintassi:
# View frontmatter
cat .claude/skills/my-skill/SKILL.md | head -n 15
# Check for common issues
# - Missing opening or closing ---
# - Tabs instead of spaces
# - Unquoted strings with special characters
Controlla: La Skill è nella posizione corretta?
# Personal Skills
ls ~/.claude/skills/*/SKILL.md
# Project Skills
ls .claude/skills/*/SKILL.md
La Skill ha errori
Sintomo: La Skill si carica ma non funziona correttamente.
Controlla: Le dipendenze sono disponibili?
Claude installerà automaticamente le dipendenze richieste (o chiederà il permesso di installarle) quando ne ha bisogno.
Controlla: Gli script hanno i permessi di esecuzione?
chmod +x .claude/skills/my-skill/scripts/*.py
Controlla: I percorsi dei file sono corretti?
Usa barre oblique in avanti (stile Unix) in tutti i percorsi:
Corretto: scripts/helper.py
Sbagliato: scripts\helper.py (stile Windows)
Più Skills in conflitto
Sintomo: Claude usa la Skill sbagliata o sembra confuso tra Skills simili.
Sii specifico nelle descrizioni: Aiuta Claude a scegliere la Skill giusta usando termini trigger distinti nelle tue descrizioni.
Invece di:
# Skill 1
description: For data analysis
# Skill 2
description: For analyzing data
Usa:
# Skill 1
description: Analyze sales data in Excel files and CRM exports. Use for sales reports, pipeline analysis, and revenue tracking.
# Skill 2
description: Analyze log files and system metrics data. Use for performance monitoring, debugging, and system diagnostics.
Esempi
Skill semplice (file singolo)
commit-helper/
└── SKILL.md
---
name: generating-commit-messages
description: Generates clear commit messages from git diffs. Use when writing commit messages or reviewing staged changes.
---
# Generating Commit Messages
## Instructions
1. Run `git diff --staged` to see changes
2. I'll suggest a commit message with:
- Summary under 50 characters
- Detailed description
- Affected components
## Best practices
- Use present tense
- Explain what and why, not how
code-reviewer/
└── SKILL.md
---
name: code-reviewer
description: Review code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
allowed-tools: Read, Grep, Glob
---
# Code Reviewer
## Review checklist
1. Code organization and structure
2. Error handling
3. Performance considerations
4. Security concerns
5. Test coverage
## Instructions
1. Read the target files using Read tool
2. Search for patterns using Grep
3. Find related files using Glob
4. Provide detailed feedback on code quality
Skill multi-file
pdf-processing/
├── SKILL.md
├── FORMS.md
├── REFERENCE.md
└── scripts/
├── fill_form.py
└── validate.py
SKILL.md:
---
name: pdf-processing
description: Extract text, fill forms, merge PDFs. Use when working with PDF files, forms, or document extraction. Requires pypdf and pdfplumber packages.
---
# PDF Processing
## Quick start
Extract text:
```python
import pdfplumber
with pdfplumber.open("doc.pdf") as pdf:
text = pdf.pages[0].extract_text()
```
For form filling, see [FORMS.md](FORMS.md).
For detailed API reference, see [REFERENCE.md](REFERENCE.md).
## Requirements
Packages must be installed in your environment:
```bash
pip install pypdf pdfplumber
```
Elenca i pacchetti richiesti nella descrizione. I pacchetti devono essere installati nel tuo ambiente prima che Claude possa usarli.
Claude carica file aggiuntivi solo quando necessario.
Passaggi successivi