Le Skills sono file SKILL.md che aggiungi ai tuoi repository e che insegnano a Devin come testare la tua applicazione end-to-end — come avviare i servizi, eseguire l’app in locale, verificare le modifiche nel browser e controllare che tutto funzioni prima di aprire una PR. Seguono lo standard aperto Agent Skills, quindi gli stessi file di Skill funzionano su più strumenti di sviluppo basati sull’AI.
Posiziona i file di Skill in .agents/skills/<skill-name>/SKILL.md nel tuo repository. Devin li rileva automaticamente in tutti i repository che hai collegato. Consulta la specifica di Agent Skills per il riferimento completo al formato del file.
Perché le Skills sono importanti
Senza Skills, Devin deve capire da zero come eseguire e testare la tua app a ogni sessione. Con le Skills, Devin sa esattamente come:
- Avviare il tuo ambiente di sviluppo locale — quali servizi eseguire, quali porte usare, come inizializzare i dati di test
- Verificare le modifiche nel browser — quali pagine controllare, come appare il risultato “corretto”, quali problemi segnalare
- Eseguire le suite di test giuste — quali comandi eseguire, come deve essere un output di successo
Devin suggerisce automaticamente le skill
Devin può suggerirti automaticamente delle skill. Dopo che Devin ha testato la tua applicazione o ha imparato qualcosa di nuovo sulla tua configurazione durante una sessione, ti suggerirà di creare o aggiornare una skill per catturare queste informazioni. Vedrai un suggerimento nella cronologia della tua sessione con:
- Un riepilogo di ciò che è stato appreso (ad es. “come avviare il backend con Docker”)
- Il contenuto proposto del file
SKILL.md
- Un pulsante “Create PR” per fare il commit della skill nel tuo repository
Nel tempo, Devin costruisce nel tuo repository una libreria di skill su come eseguire e testare la tua applicazione.
Una skill che istruisce Devin su come testare un’app Next.js:
---
name: test-before-pr
description: Run the local dev server and verify pages before opening any PR that touches frontend code.
---
## Setup
1. Install dependencies: `npm install`
2. Start the database: `docker-compose up -d postgres`
3. Run migrations: `npx prisma migrate dev`
4. Start the dev server: `npm run dev`
5. Wait for "Ready on http://localhost:3000"
## Verify
1. Read the git diff to identify which pages changed
2. Open each affected page in the browser
3. Check for: console errors, layout issues, broken links
4. Screenshot each page at desktop (1280px) and mobile (375px) widths
## Before Opening the PR
1. Run `npm run lint` and fix any issues
2. Run `npm test` and confirm all tests pass
3. Include screenshots in the PR description
Devin individua le skill da due fonti, unite all’inizio di ogni sessione:
- Repository indicizzati — il backend di Devin indicizza i file
SKILL.md in tutti i repository collegati alla tua organizzazione. Questi sono disponibili immediatamente all’avvio di una sessione, prima che qualsiasi repository venga clonato.
- Repository clonati — man mano che i repository vengono clonati sulla macchina della sessione, Devin li analizza alla ricerca di file
SKILL.md su disco. Le skill rilevate su disco aggiornano o sovrascrivono qualsiasi skill indicizzata corrispondente dallo stesso repository, garantendo che Devin utilizzi sempre la versione più recente sul branch su cui si sta lavorando.
Quando la clonazione di un repository si completa durante una sessione, Devin esegue automaticamente una nuova scansione di quel repository, così le skill appena aggiunte o modificate vengono rilevate senza dover riavviare.
Posizioni supportate per i file skill
Devin cerca i file SKILL.md in tutte le directory seguenti:
.agents/skills/<skill-name>/SKILL.md (consigliato)
.github/skills/<skill-name>/SKILL.md
.claude/skills/<skill-name>/SKILL.md
.cursor/skills/<skill-name>/SKILL.md
.codex/skills/<skill-name>/SKILL.md
.cognition/skills/<skill-name>/SKILL.md
.windsurf/skills/<skill-name>/SKILL.md
Tutti e sei i percorsi vengono sottoposti a scansione in ogni repository.
Cosa carica Devin da un file di skill
Quando una skill viene rilevata, Devin analizza il frontmatter YAML (il blocco --- all’inizio) ed estrae:
| Field | Purpose |
|---|
name | Identifica la skill. Se omesso, viene usato il nome della directory padre. |
description | Breve riepilogo mostrato nell’elenco delle skill, così Devin (e tu) sai cosa fa la skill. |
allowed-tools | Limita quali strumenti Devin può usare mentre la skill è attiva. |
Devin supporta anche questi campi di frontmatter aggiuntivi oltre alla specifica standard:
| Field | Purpose |
|---|
argument-hint | Testo di suggerimento mostrato accanto al nome della skill che descrive gli argomenti attesi. |
triggers | Controlla chi può invocare la skill — ["user", "model"] per impostazione predefinita. Impostalo a ["user"] per evitarne l’auto-attivazione da parte di Devin. |
Tutto ciò che viene dopo il frontmatter è il corpo della skill — le istruzioni passo-passo che Devin deve seguire quando la skill viene invocata.
Consulta la specifica di Agent Skills per il riferimento completo al formato del file.
Oltre alla specifica standard, Devin supporta due tipi di contenuto dinamico nel corpo della skill che vengono elaborati al momento dell’invocazione:
$ARGUMENTS — viene sostituito con l’intera stringa di argomenti passata quando la skill viene invocata (ad es. tramite @skills:deploy staging prod). Puoi anche accedere ai singoli argomenti per indice: $ARGUMENTS[0] o $0 per il primo, $ARGUMENTS[1] o $1 per il secondo, ecc. Gli argomenti sono separati dagli spazi bianchi.
!`command` — il comando viene eseguito nella directory root del repository e sostituito con il suo stdout (output standard), permettendo alle skill di includere valori dinamici come nomi di branch o numeri di porta.
Ad esempio, una skill di deploy potrebbe usare gli argomenti in questo modo:
---
name: deploy
description: Deploy the app to a target environment.
argument-hint: <environment>
---
1. Check out the `$ARGUMENTS` branch
2. Run `./scripts/deploy.sh $0`
3. Verify the deployment at `https://$0.example.com`
L’invocazione di @skills:deploy staging inserirebbe staging al posto di $ARGUMENTS e $0.
All’inizio di ogni sessione, Devin vede un elenco di tutte le skill disponibili (nome e descrizione). Quando una skill viene invocata, Devin legge l’intero file SKILL.md e inserisce il suo contenuto nel proprio contesto corrente come istruzione a livello di sistema. Ciò significa che Devin segue attivamente i passaggi definiti dalla skill per il resto dell’attività — non si tratta solo di un riferimento, ma guida direttamente il comportamento di Devin.
Devin può utilizzare le skill in diversi modi:
Quando Devin stabilisce che una skill è rilevante per l’attività corrente, la esegue automaticamente. Ad esempio, se chiedi a Devin di correggere un bug nel codice frontend e c’è una skill test-before-pr, Devin la attiverà prima di aprire la PR. Imposta triggers: ["user"] nel frontmatter per impedire l’invocazione automatica per le skill che vuoi attivare solo esplicitamente.
Menziona una skill nel tuo prompt
Puoi chiedere a Devin di usare una skill specifica includendo @skills:skill-name nel tuo messaggio:
Fix the login bug on the /auth page @skills:test-before-pr
È anche possibile passare argomenti:
Gli argomenti vengono sostituiti nel corpo della skill ovunque siano presenti $ARGUMENTS, $ARGUMENTS[0], $1, ecc.
Una sola skill attiva alla volta
Devin può avere una sola skill attiva alla volta. L’attivazione di una nuova skill sostituisce quella precedente. Quando una skill è attiva, Devin segue i passaggi della skill in ordine, completando ciascuno di essi prima di passare al successivo.
Devin può cercare le skill per parola chiave o per directory se deve trovare quella giusta nel corso di una sessione. Puoi anche chiedere a Devin di elencare le skill disponibili o di ricaricarle dopo aver fatto push delle modifiche a un file di skill.
- Competenze globali / a livello di organizzazione — Attualmente, le competenze risiedono all’interno dei repository. Per avere competenze a livello di organizzazione, puoi creare un repository dedicato alle “competenze” come soluzione alternativa. Stiamo valutando un supporto di prima classe per competenze a livello di organizzazione che si applichino a tutti i repository.
- Composizione di più competenze — Al momento può essere attiva solo una competenza alla volta. Stiamo lavorando al supporto per concatenare e comporre workflow.
Sia le skill che i playbook forniscono a Devin istruzioni riutilizzabili, ma funzionano in modo diverso:
| Skills | Playbooks |
|---|
| Dove si trovano | Nel tuo repo come file SKILL.md — sotto controllo di versione insieme al tuo codice | Nella web app di Devin — gestiti tramite l’interfaccia utente |
| Come vengono attivati | Devin le scopre e le invoca automaticamente, oppure puoi richiamarle con @skills:name in qualsiasi prompt | Collegati manualmente a una sessione quando la avvii |
| Ambito | Limitate a un repo — Devin rileva le skill giuste in base ai repo rilevanti per l’attività | A livello di organizzazione — qualsiasi membro del team può collegare qualsiasi playbook a qualsiasi sessione |
| Suggerimento automatico | Devin suggerisce nuove skill dopo aver testato la tua app o aver appreso qualcosa di nuovo | Creati manualmente dai membri del team |
| Ideali per | Procedure di test, configurazioni di sviluppo locale, checklist di deployment, workflow specifici del repo | Template di prompt riutilizzabili, modelli di attività tra più repo, guide di onboarding |
Quale dovrei usare? Se le tue istruzioni sono legate a uno specifico repo — come eseguirlo, testarlo o effettuare il deployment — usa una skill. Se le tue istruzioni sono prompt generici che si applicano a più repo o team, oggi i playbook funzionano, ma in futuro prevediamo di consolidare tutto nelle skill. Le skill sono il costrutto più potente: sono sotto controllo di versione, vengono scoperte automaticamente e supportano contenuti dinamici come argomenti ed esecuzione di comandi shell. Nel tempo aggiungeremo direttamente alle skill le funzionalità che rendono utili i playbook (come l’ambito a livello di organizzazione e la gestione tramite UI).
Se hai già playbook che funzionano bene, non c’è fretta di effettuare la migrazione: continueranno a funzionare. Ma per nuove istruzioni, consigliamo di partire dalle skill.
- Agent Skills specification — lo standard aperto per il formato del file
SKILL.md, i campi di front matter e la struttura delle directory
- Knowledge — per suggerimenti e informazioni di contesto (non procedure dettagliate passo passo)
- Playbooks — per modelli di prompt riutilizzabili associati alle sessioni