Salta al contenuto principale
Agenti AI8 minAggiornato: 2026-06-12

Spec driven development con AI

Quando usare specifiche, piani e task invece di prompt liberi

Lo spec driven development con AI trasforma una richiesta di prodotto in artefatti espliciti: requisiti, design tecnico, task e verifiche. Serve quando un coding agent deve lavorare su feature non banali, con edge case, vincoli di architettura o più persone coinvolte. Non serve per ogni modifica: sui fix piccoli un prompt ben scritto o un /goal delimitato resta più veloce.

Risposta breve

Usa lo spec driven development quando il rischio non è scrivere codice, ma far capire all'agente che cosa deve costruire, quali vincoli rispettare e come dimostrare che il lavoro è finito. Per task piccoli resta su prompt, chat o /goal. Per feature multi-file passa a requisiti, piano, task e verifica.

  • Prompt libero: ok per bug piccoli, refactor locali, spike e domande esplorative.
  • Spec driven development: utile per feature con requisiti, edge case, stati, permessi, test e handoff tra product e engineering.
  • Rischio principale: se la specifica è vaga o obsoleta, l'agente esegue meglio la cosa sbagliata.

Confronto rapido

CriterioSpec drivenPrompt libero
Fonte di veritàRequisiti, design, task e criteri di verifica restano in file leggibili dal team e dagli agentiLa fonte principale è la conversazione, con contesto più fragile e meno riusabile
Input inizialeDescrivi cosa costruire, perché, vincoli, utenti, casi limite e risultato attesoChiedi direttamente una patch, una spiegazione o una modifica circoscritta
Artefattirequirements.md, design.md, tasks.md, checklist, test plan o issue collegatePrompt, risposta dell'agente, diff e pochi comandi di verifica
Quando rendeFeature multi-step, team, sistemi regolati, onboarding su codebase, agenti multipliBug evidente, copy, styling locale, test unitario mirato, refactor piccolo
RischioDrift tra specifica e codice, eccesso di processo, fiducia cieca nei documenti generatiAmbiguità, perdita di contesto, retry lunghi, agenti che inventano dettagli mancanti

Scenari pratici

Il costo qui è tempo di preparazione: più struttura riduce ambiguità e retry, ma può diventare burocrazia quando il task è piccolo.

Bug piccolo

Stack trace e file mirato · Patch e test

Scenario

Prompt o /goal breve

Scelta pratica

La specifica completa rallenta più di quanto aiuti

Se puoi indicare file, errore e test in due righe, non serve aprire un flusso SDD.

Feature prodotto

Utente, flusso, stati, edge case · Requisiti, design, task e implementazione

Scenario

Spec driven

Scelta pratica

Riduce ambiguità prima che l'agente modifichi molti file

Quando il problema ha più interpretazioni valide, scrivere la specifica fa risparmiare iterazioni.

Team con più agenti

Regole, ownership e verifiche · Task separabili

Scenario

Spec più task atomici

Scelta pratica

Aiuta a evitare conflitti e lavoro duplicato tra agenti o persone

La specifica diventa un contratto comune: chi fa cosa, con quale verifica e con quali limiti.

Sistema sensibile

Policy, permessi, dati e sicurezza · Checklist e tracciabilità

Scenario

Spec con vincoli espliciti

Scelta pratica

Serve evitare che l'agente ottimizzi solo per far passare il caso felice

Per auth, pagamenti, privacy e compliance, i vincoli devono stare prima della generazione del codice.

Cosa significa spec driven development con AI

Spec driven development significa trattare la specifica come artefatto principale del lavoro software. Nel contesto degli agenti AI, la richiesta non passa subito a una patch: viene trasformata prima in requisiti, design tecnico, task e criteri di verifica. Il codice arriva dopo, come esecuzione di un contratto più esplicito.

  • Il punto non è scrivere più documentazione, ma togliere ambiguità prima che l'agente tocchi il codice.
  • Una buona specifica dice cosa costruire, cosa non costruire, quali casi limite coprire e come verificare il risultato.
  • Il valore cresce quando più persone o più agenti devono condividere la stessa intenzione.
  • Il valore cala quando il task è piccolo, locale e già verificabile con un test semplice.

Quando basta un prompt libero

Il prompt libero resta la scelta giusta quando il costo di strutturare supera il rischio del task. Se devi correggere un errore evidente, spiegare una funzione, aggiornare copy, sistemare uno stile locale o aggiungere un test piccolo, puoi dare contesto mirato e chiedere una patch. In questi casi una specifica formale può diventare rumore.

  • Il risultato atteso è chiaro in una frase.
  • I file coinvolti sono pochi e facili da nominare.
  • Il fallimento è economico: puoi leggere il diff e correggere subito.
  • La verifica è immediata: un test, una build, uno screenshot o una query.

Quando passare a SDD

Passa a SDD quando la domanda vera non è come scrivere codice, ma quale comportamento deve avere il sistema. Feature con stati, permessi, pagamenti, onboarding, ruoli utente, migrazioni o design system hanno troppe decisioni implicite. Se lasci quelle decisioni nel prompt, l'agente le riempie con assunzioni.

  • Ci sono più stakeholder: product, design, engineering, compliance o cliente.
  • Ci sono edge case che il caso felice non copre.
  • La feature tocca più moduli o più repository.
  • Serve dividere il lavoro in task indipendenti per agenti o persone diverse.
  • Vuoi poter rileggere la decisione tra una settimana, non solo nel transcript della chat.

Spec Kit, GSD e altri pattern pratici

Il riferimento più pratico da cui partire è GitHub Spec Kit, perché offre template e comandi portabili per passare da intenzione a specifica, piano, task e implementazione. GSD, Get Shit Done, è interessante come pattern più pragmatico: meno specifica formale, più isolamento del lavoro, review e consegna. Kiro può essere utile se vuoi un IDE che guidi requisiti, design e task nello stesso ambiente, soprattutto su feature che devono passare dal prototipo a un lavoro più tracciabile.

  • Spec Kit parte da una costituzione di progetto, poi usa passaggi come specify, plan, tasks e implement.
  • GSD è da valutare quando vuoi un approccio operativo centrato su worktree, esecuzione rapida e review umana.
  • Kiro genera requirements.md, design.md e tasks.md, ma oggi è più un buon esempio di prodotto spec-first che una scelta universale.
  • I requisiti in stile EARS aiutano a scrivere condizioni testabili: quando succede X, il sistema deve fare Y.
  • BMAD, OpenSpec e altri framework meritano attenzione, ma vanno scelti per processo e portabilità, non per hype.
  • Questi pattern non sostituiscono Claude Code, Codex o Cursor: danno loro un contratto migliore da eseguire.

Starter kit pratico

Per iniziare non serve adottare subito un framework completo. Parti da un pattern minimo e aggiungi strumenti solo quando il processo si ripete. La combinazione più pratica è: template di requisiti, formato testabile per i criteri di accettazione, task piccoli e una skill o istruzione riusabile per far ripetere il flusso all'agente.

  • Pattern minimo: idea, requisiti, criteri di accettazione, design breve, task atomici, verifica.
  • Formato requisiti: usa EARS quando vuoi condizioni testabili, per esempio WHEN succede X, il sistema SHALL fare Y.
  • Formato scenari: usa Given, When, Then quando vuoi esempi vicini a test e comportamento utente.
  • Framework guidato: prova Spec Kit se vuoi comandi e template portabili tra agenti di coding.
  • Delivery pragmatico: valuta GSD se il collo di bottiglia è far lavorare agenti in isolamento e rivedere output rapidamente.
  • IDE guidato: guarda Kiro Specs come esempio di requisiti, design e task dentro un ambiente integrato.
  • Workflow ripetuto: trasformalo in una skill, in un template di issue o in una sezione di AGENTS.md.

Il compromesso nascosto

La specifica non è garanzia di qualità. Può essere incompleta, vecchia, troppo lunga o scritta con il tono giusto ma senza vincoli reali. Uno dei rischi principali è il drift: il documento dice una cosa, il codice evolve in un'altra direzione, e l'agente continua a trattare il documento come vero.

  • Aggiorna la specifica quando cambia una decisione, non solo quando inizia il task.
  • Tieni i task piccoli: se una voce richiede molti file e molte decisioni, va divisa.
  • Non usare SDD per evitare review umana: usalo per rendere la review più semplice.
  • Chiedi all'agente di citare file, test e vincoli che ha usato, così puoi vedere se ha lavorato su prove o su memoria.

Workflow consigliato

Per un team piccolo, il flusso migliore è leggero: una pagina di requisiti, un piano tecnico breve, una lista di task atomici e una verifica finale. Non serve imitare un processo enterprise. Serve dare all'agente abbastanza struttura per non inventare prodotto, architettura o criteri di successo.

  • Scrivi prima il risultato utente e i non-obiettivi.
  • Trasforma i requisiti in criteri verificabili, inclusi errori e permessi.
  • Fai generare un design tecnico e chiedi all'agente di indicare rischi e file coinvolti.
  • Dividi in task piccoli, ciascuno con test o controllo di completamento.
  • Solo dopo avvia Claude Code, Codex, Cursor o Copilot sull'implementazione.
Prompt pratico per iniziare:

Voglio trasformare questa richiesta in una mini specifica per un coding agent.

Richiesta:
[descrivi feature o bug]

Prima fammi domande se manca contesto.
Poi produci:
1. requisiti utente
2. non-obiettivi
3. criteri di accettazione testabili
4. design tecnico breve
5. task atomici
6. comando o controllo di verifica per ogni task

Non scrivere codice finché non approvo la specifica.

Come collegarlo a /goal e AGENTS.md

SDD non sostituisce le istruzioni di progetto o il goal operativo. AGENTS.md spiega all'agente come lavorare nel repository: comandi, stile, file da non toccare, vincoli editoriali o tecnici. La specifica spiega che cosa costruire per questa feature. /goal può essere il ponte finale: esegui questi task, rispetta questa spec, e dimostra il risultato con questi controlli.

  • AGENTS.md: regole stabili del repository.
  • Spec: intenzione e vincoli della feature corrente.
  • /goal: condizione di completamento per la sessione agentica.
  • Task list: unità di lavoro che puoi assegnare, verificare e chiudere una per una.

Domande frequenti

Spec driven development e vibe coding sono opposti?

Non sempre. Il vibe coding è utile per esplorare rapidamente un'idea. SDD serve quando quella idea deve diventare una feature mantenibile, verificabile e condivisa.

Devo usare Spec Kit o Kiro per fare SDD?

No. Puoi iniziare con tre file semplici: requisiti, design e task. Spec Kit e Kiro aiutano quando vuoi template, comandi e un flusso più guidato.

SDD rallenta lo sviluppo?

Sì, se lo applichi a task piccoli. Su feature ambigue o rischiose spesso accelera, perché riduce retry, patch sbagliate e discussioni dopo il diff.

Funziona con Claude Code, Codex e Cursor?

Sì. Il principio è portabile: dai all'agente una specifica leggibile, task piccoli e criteri di verifica. Cambia il modo in cui avvii il lavoro, non il tool obbligatorio.

Qual è il segnale che devo fermare il prompt libero e scrivere una spec?

Se ti accorgi che stai spiegando più volte comportamento, edge case, vincoli e test, è il momento di fermarti e trasformare tutto in una specifica.