Vai al contenuto principale

Cosa sono le Skills?

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.

Esempio rapido

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

Scoperta delle skill

Devin individua le skill da due fonti, unite all’inizio di ogni sessione:
  1. 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.
  2. 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
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:
FieldPurpose
nameIdentifica la skill. Se omesso, viene usato il nome della directory padre.
descriptionBreve riepilogo mostrato nell’elenco delle skill, così Devin (e tu) sai cosa fa la skill.
allowed-toolsLimita quali strumenti Devin può usare mentre la skill è attiva.
Devin supporta anche questi campi di frontmatter aggiuntivi oltre alla specifica standard:
FieldPurpose
argument-hintTesto di suggerimento mostrato accanto al nome della skill che descrive gli argomenti attesi.
triggersControlla 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.

Come Devin usa le skill

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:

Invocazione automatica

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:
@skills:deploy staging
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.

Ricerca ed elenco

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.

Limitazioni

  • 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.

Per saperne di più

  • Agent Skills specification — lo standard aperto per il formato del file SKILL.md, i campi di frontmatter e la struttura delle directory
  • Knowledge — per suggerimenti e informazioni contestuali (non procedure passo-passo)
  • Playbooks — per modelli di prompt riutilizzabili collegati alle sessioni