Prompt Engineering

Prompt migliori. Codice migliore.

La qualità del codice generato dall'AI dipende quasi interamente da cosa chiedi e da come lo chiedi. Questa guida raccoglie i pattern che producono in modo costante risultati migliori con Claude Code.

Dal delimitare il compito ai prompt di sistema, dall'affinamento iterativo alle istruzioni per ruolo. Tecniche pratiche che puoi applicare nella tua prossima sessione di codice.

Perché il prompt engineering conta per il codice

Quando chiedi a uno sviluppatore umano di 'costruire una pagina di login', ti fa delle domande per chiarire: quale provider di autenticazione? Quali campi? Deve gestire OAuth? I messaggi di errore? Gli stati di caricamento?

Gli agenti di codifica AI proveranno invece a rispondere da soli a tutte quelle domande. A volte indovinano. Spesso producono qualcosa di ragionevole, ma non quello che volevi. È proprio questo scarto tra 'ragionevole' ed 'esattamente giusto' che il prompt engineering colma.

Un buon prompt non deve per forza essere lungo. Deve essere preciso su ciò che conta e tacere su ciò che non conta. Questa guida parla di quell'equilibrio.

Cinque principi fondamentali

Pattern che migliorano i risultati qualunque sia il compito.

1

Sii preciso sul risultato, non sui passaggi

Invece di 'crea un componente React, poi aggiungi lo stato, poi aggiungi lo stile', descrivi il risultato finale: 'Costruisci una sidebar richiudibile che mostri i nomi dei progetti, permetta di riordinare con il trascinamento e usi il nostro tema Tailwind attuale.' Lascia che sia l'agente a decidere come arrivarci.

Avoid

Crea un componente. Aggiungi useState. Aggiungi un pulsante di attivazione. Dagli lo stile con Tailwind.

Better

Costruisci un componente sidebar richiudibile che elenca i progetti per nome. Deve permettere di riordinare trascinando e rispettare il nostro tema scuro (bg-[#111318], border-[#262b38]). Lo stato richiuso deve persistere tra i ricaricamenti di pagina.

2

Delimita il lavoro con chiarezza

Gli agenti lavorano meglio quando conoscono i confini. Indica quali file toccare (o evitare), quali pattern seguire e cosa significa 'finito'. I compiti senza confini portano a modifiche sparse e difficili da rivedere.

Avoid

Rifattorizza il sistema di autenticazione.

Better

Rifattorizza l'handler di login in src/api/auth/login.ts per usare bcrypt al posto di sha256 nell'hashing delle password. Non toccare la logica JWT né la gestione del cookie di sessione. Aggiorna i test collegati in tests/auth/.

3

Fornisci il contesto che conta

Claude Code può leggere i file del tuo progetto, ma non può leggerti nel pensiero. Se segui una convenzione, se preferisci una libreria in particolare o se hai già stabilito un pattern, dillo. Così eviti di rifare il lavoro.

Avoid

Aggiungi la validazione al modulo.

Better

Aggiungi la validazione al modulo di iscrizione usando zod (lo usiamo già per il modulo delle impostazioni in src/forms/settings.ts). Mostra i messaggi di errore in linea sotto ogni campo. Usa lo stesso stile di errore del modulo di login.

4

Un compito per prompt

I prompt composti ('costruisci l'API, scrivi i test, aggiorna la documentazione e fai il deploy') costringono l'agente a tenere insieme troppi obiettivi. Spezza il lavoro complesso in compiti sequenziali e mirati. Ognuno si appoggia sul risultato del precedente.

Avoid

Costruisci la pagina del profilo utente, scrivi gli endpoint API, aggiungi i test, aggiorna il README e, già che ci sei, sistema la barra di navigazione.

Better

Costruisci l'endpoint GET /api/user/profile. Restituisci i campi id, name, email e plan. Usa il middleware di autenticazione già esistente.

5

Itera, non ricominciare

Se il primo risultato non va bene, affina il prompt invece di ripartire da zero. Claude conserva tutto il contesto della conversazione. Di' cosa non va, cosa cambiare e cosa tenere. Iterare è più veloce che reinventare.

Avoid

È sbagliato. Ricomincia da capo e costruisci il componente in un altro modo.

Better

Il layout va bene, ma il breakpoint mobile no. Sotto i 768px, impila le schede in verticale invece di usare una griglia. Lascia tutto il resto com'è.

Prompt di sistema: il contesto che resta

I prompt di sistema definiscono il comportamento di base di un agente prima ancora che tu dica qualcosa. Sono lo strumento meno sfruttato della codifica con AI.

Un prompt di sistema dice all'agente chi è, su cosa deve concentrarsi e cosa deve evitare. Si applica a ogni messaggio della sessione. Pensalo come la descrizione del ruolo dell'agente.

AgentsRoom include 14 prompt di sistema per ruolo: uno per ogni tipo di agente. Quello dell'agente Frontend gli dice di concentrarsi su componenti, accessibilità e design responsive. Quello dell'agente QA gli dice di ragionare sui casi limite e di scrivere test completi. Puoi personalizzarli o scriverne di tuoi.

Esempio: prompt di sistema dell'agente Frontend

Sei uno sviluppatore frontend senior. Concentrati sui componenti React, sullo stile CSS/Tailwind, sull'accessibilità (WCAG AA) e sul design responsive. Usa la libreria di componenti già presente nel progetto prima di crearne di nuovi. Preferisci la composizione all'ereditarietà. Scrivi HTML semantico. Non modificare mai i file di backend.

Scrivere prompt di sistema efficaci

  • Definisci il ruolo e i suoi confini. Su cosa deve concentrarsi l'agente? Cosa deve ignorare?
  • Cita tecnologie e versioni precise. 'React 19 con Server Components' è meglio di 'React moderno'.
  • Rimanda alle convenzioni del progetto. 'Usa Zustand per lo stato' dice all'agente di non ricorrere a Redux o a Context.
  • Fissa le aspettative di qualità. 'Scrivi TypeScript in modalità strict, niente tipi any' evita le scorciatoie.
  • Includi vincoli negativi. 'Non modificare mai i file in /api/' tiene l'agente nella sua corsia.

CLAUDE.md: il contesto a livello di progetto

Il prompt più efficace non si scrive in una chat. Vive nel tuo repository.

CLAUDE.md è un file markdown alla radice del tuo progetto che Claude Code legge automaticamente. Contiene la struttura del progetto, le convenzioni, i dettagli dello stack e le linee guida che valgono per ogni sessione di agente del progetto.

Invece di ripetere 'usiamo Tailwind CSS 4, Prisma ORM e Next.js 16' in ogni conversazione, scrivilo una volta in CLAUDE.md. Ogni agente eredita quel contesto. AgentsRoom include un editor integrato per CLAUDE.md, così puoi aggiornarlo senza uscire dall'app.

Un CLAUDE.md scritto bene vale più di decine di prompt individuali costruiti con cura. Si accumula: ogni sessione ne trae vantaggio.

Costruisci una libreria di prompt

Smetti di riscrivere le stesse istruzioni. Salva quello che funziona e riusalo.

Se ti accorgi di scrivere lo stesso tipo di richiesta su più progetti ('scrivi i test unitari per questo file', 'rifattorizza questo per usare il pattern repository', 'aggiungi la gestione degli errori a tutte le rotte API'), salvalo come prompt riutilizzabile.

AgentsRoom include una libreria di prompt su due livelli: prompt per progetto per i compiti specifici di quel progetto e prompt globali (sincronizzati sul cloud) per i pattern che usi ovunque.

Buoni candidati per la libreria: liste di controllo per la revisione del codice, modelli per scrivere i test, script di migrazione, istruzioni per generare l'impalcatura dei componenti, passaggi di audit di sicurezza. Tutto quello che metteresti nella wiki del team come procedura standard.

Esempi di libreria di prompt

Scrivere test unitari

Scrivi i test unitari per [file]. Usa vitest. Copri il percorso felice, i casi limite (input vuoto, null, tipi non validi) e la gestione degli errori. Mocka le dipendenze esterne. Punta a una copertura dei branch superiore al 90%.

Revisione del codice

Rivedi le modifiche del git diff attuale. Controlla: import inutilizzati, gestione degli errori mancante, problemi di type safety, possibili race condition e incoerenze nella nomenclatura. Proponi una correzione per ogni problema trovato.

Endpoint API

Crea un endpoint REST per [risorsa]. Includi la validazione dell'input con zod, risposte di errore adeguate (400, 401, 404, 500), i tipi TypeScript per richiesta e risposta e un commento JSDoc che descrive l'endpoint. Segui il pattern già presente in src/api/.

Pattern avanzati

Tecniche per compiti complessi che vanno oltre il singolo prompt.

Concatenamento di prompt

Spezza un compito grande in passaggi ordinati. Avvia il primo agente con il passaggio uno, aspetta che finisca, poi avvia l'agente successivo con il passaggio due (facendo riferimento all'output del primo). Ogni passaggio è più piccolo e più mirato. Esempio: l'agente 1 progetta lo schema del database, l'agente 2 scrive l'API su quello schema, l'agente 3 scrive i test contro l'API.

Revisione incrociata tra agenti

Quando un agente ha finito, punta un altro agente sul suo output. 'Rivedi le modifiche che l'agente frontend ha appena fatto in src/components/. Cerca problemi di accessibilità e stati di errore mancanti.' Un agente nuovo, con un ruolo diverso, coglie cose che al primo erano sfuggite.

Vincoli progressivi

Parti da un prompt ampio per vedere come l'agente affronta il problema. Poi aggiungi vincoli nei messaggi successivi: 'Buona struttura, ma usa i Server Components invece dei componenti client.' 'Tieni l'hook, ma togli lo useEffect e usa invece una mutation di React Query.' Ogni iterazione stringe il cerchio attorno alla soluzione che vuoi.

Implementazione di riferimento

Indica all'agente del codice già esistente: 'Costruisci una pagina delle impostazioni seguendo lo stesso pattern di src/pages/profile.tsx. Stessa struttura di layout, stessa gestione del modulo, stessa visualizzazione degli errori.' Spesso funziona meglio che descrivere il pattern a parole.

Errori comuni

Pattern che producono in modo costante risultati peggiori.

Specificare troppo l'implementazione

Dire all'agente esattamente quali funzioni scrivere, come chiamare le variabili e in che ordine implementare le cose. Questa microgestione gli toglie la possibilità di trovare un approccio migliore. Descrivi il risultato, non la procedura.

Nessun confine di perimetro

Chiedere a un agente di 'migliorare la base di codice' senza alcun vincolo. Senza confini, l'agente potrebbe rifattorizzare file che non volevi toccare, cambiare API da cui dipende altro codice o spendere token in migliorie a bassa priorità.

Ignorare il codice esistente

Non dire che un pattern, un'utility o un componente esiste già nel progetto. L'agente ne creerà un altro. Un semplice 'abbiamo già un hook useAuth in src/hooks/' fa risparmiare parecchio lavoro rifatto.

Megaprompt composti

Stipare cinque compiti in un solo messaggio. L'agente li tenterà tutti, ma la qualità cala mentre fa il giocoliere con obiettivi in conflitto. Meglio dividerli in richieste sequenziali e mirate.

Domande frequenti

Quanto deve essere lungo un prompt di codice?+
I prompt di codice più efficaci vanno dalle 2 alle 5 frasi. Abbastanza lunghi da precisare il risultato, il perimetro e i vincoli principali. Abbastanza corti perché l'agente non si perda nei dettagli. Se il tuo prompt occupa un paragrafo intero, chiediti se una parte di quel contesto non stia meglio in CLAUDE.md o in un prompt di sistema.
Devo scrivere i prompt in modo diverso per Opus e per Sonnet?+
Un po'. Opus gestisce meglio l'ambiguità e deduce l'intento da meno contesto. Sonnet trae vantaggio da istruzioni più esplicite e da confini di perimetro più chiari. Per entrambi i modelli, essere precisi sul risultato atteso migliora i risultati.
Come aiuta AgentsRoom con il prompt engineering?+
In tre modi: prompt di sistema per ruolo integrati per ciascuno dei 14 tipi di agente, una libreria di prompt per salvare e riusare quelli che funzionano e un editor di CLAUDE.md per il contesto a livello di progetto. Grazie a questi strati passi meno tempo a costruire i singoli messaggi, perché il contesto di base è già buono.
Posso condividere i prompt con tutto un team?+
Sì. AgentsRoom salva i prompt in due posti: i prompt a livello di progetto in .agentsroom/prompts.json (sotto controllo di versione, condivisi tramite git) e i prompt personali in prompts-personal.json (in gitignore). I prompt globali si sincronizzano tramite il cloud su tutti i tuoi dispositivi.
Qual è la differenza tra un prompt di sistema e CLAUDE.md?+
CLAUDE.md è il contesto di progetto che ogni agente legge automaticamente: stack, struttura, convenzioni. I prompt di sistema sono istruzioni di comportamento specifiche dell'agente: ruolo, aree su cui concentrarsi, vincoli. Si completano a vicenda. CLAUDE.md dice 'questo progetto usa Next.js 16 con Prisma'. Il prompt di sistema dice 'sei uno sviluppatore backend concentrato sulle rotte API'.

Approfondimenti

Scrivi prompt migliori, rilascia codice migliore

AgentsRoom ti dà prompt di sistema, una libreria di prompt e l'editing di CLAUDE.md integrato. Meno tempo a scrivere prompt, più tempo a costruire.

GratisScarica

App companion: monitora i tuoi agenti in movimento

Usa Claude, Codex, Antigravity CLI o un altro provider IA.

Installa l'estensione
Chrome Web Store

Invia bug e richieste direttamente nel tuo backlog pubblico.

Uno sguardo ad AgentsRoom in azione.

Multi-progetto
Multi-provider
Multi-agente
Stato in tempo reale
Diff e commit
App mobile
Anteprima live
Team di agenti
Test browser
Dev guidata da backlog
Libreria di prompt
Libreria di skill
Vedi tutte le funzionalità