Fusion AI Labs ha diffuso questo post
Da quando è uscito un paio di mesi fa, ho iniziato ad usare Spec-kit (https://lnkd.in/dy5XGSDB) per orchestrare strumenti di AI-assisted coding. Spec-kit è un utile strumento per lo spec-driven development sviluppato da GitHub, che (diversamente da un approccio in stile vibe-coding) prevede di descrivere in maniera strutturata le specifiche e i requisiti tecnici del proprio progetto. Supporta diversi agenti. Io lo uso con GitHub Copilot, ma la maggior parte delle considerazioni che seguono sono generali. Ecco come funziona: 1. Una volta inizializzato il progetto, Spec-kit crea un repository Git e una serie di comandi custom che possono essere invocati nella della chat dell’agente. 2. Il primo comando da utilizzare è /constitution, seguito da una descrizione del progetto. Questo comando crea il file "constitution.md", che contiene i principi generali e non negoziabili del progetto, non legati a dettagli implementativi. Durante tutte le fasi successive, Spec-kit guida l’agente a rispettare quanto definito in questo file. 3. A questo punto siamo pronti a creare le specifiche della prima funzionalità da implementare, utilizzando il comando /specify e fornendo le informazioni sui requisiti funzionali da soddisfare. Questo non si limita a creare un nuovo file “spec.md”, ma crea anche un nuovo Git branch dedicato all'implementazione, separando così lo sviluppo della funzionalità dal resto del codice. 4. Le specifiche vengono poi tradotte in un piano utilizzando il comando /plan, specificando requisiti legati all'implementazione come linguaggio di programmazione, librerie e framework. La pianificazione genera anche una lista di “contratti” (interfacce, funzioni e strutture dati) necessari all'implementazione. 5. Il piano viene poi tradotto in task (/tasks) che possono successivamente essere eseguiti (/implement). 6. Le nuove versioni di Spec-kit prevedono anche comandi opzionali come /clarify e /analyze, che permettono rispettivamente di approfondire le specifiche e controllare eventuali conflitti tra i task pianificati, le specifiche e il constitution file. Alcune considerazioni: 1. Tutti i file che Spec-kit crea sono file Markdown: possono e devono essere ispezionati e modificati per adattarli alle proprie esigenze. 2. Più tempo si spende ad assicurarsi che constitution, specifiche e piano siano coerenti con il proprio obiettivo, migliore sarà il risultato finale. 3. Il sistema tende a dividere i task in fasi. Implementate una fase alla volta, testate, fate debug e commit una volta soddisfatti. 4. Spec-kit non è una bacchetta magica: i modelli frequentemente divergono dalle specifiche. Se vi accorgete che il progetto si discosta da quanto richiesto, fate rollback all'ultimo commit utile e ricominciate. Infine, il progetto è in forte evoluzione, con aggiornamenti frequenti. Segnalo che uno dei contributor è molto attivo su YouTube, dove pubblica video interessanti (https://lnkd.in/dtxQifGA)