Il comando /goal in Claude Code e Codex
Come trasformare un prompt in un obiettivo verificabile per agenti di coding
Il comando /goal serve a far lavorare un agente oltre il singolo prompt, mantenendo una definizione di done visibile e verificabile. In Claude Code è una condizione di completamento valutata dopo ogni turno. In Codex è Goal mode: un obiettivo persistente legato al thread, che puoi mettere in pausa, modificare, riprendere o cancellare.
Risposta breve
/goal è il comando che trasforma una richiesta in un obiettivo persistente per l'agente. Invece di rispondere a un singolo prompt, Claude Code o Codex continuano a lavorare finché la condizione di completamento è soddisfatta o finché li fermi. Funziona bene quando definisci prima target, criteri di successo, verifiche e condizioni di uscita.
- Usalo per task con una definizione di done concreta: test verdi, migrazione completata, bug riprodotto e poi corretto, documentazione aggiornata.
- Claude Code: /goal imposta una condizione e un valutatore controlla dopo ogni turno se è soddisfatta.
- Codex: /goal avvia un Goal mode persistente nel thread, con controlli per pausa, resume, edit e clear.
- Se il task è ancora vago, parti da /plan o chiedi all'LLM di aiutarti a scrivere il goal prima di avviarlo.
Confronto rapido
| Criterio | Claude Code | Codex |
|---|---|---|
| Che cosa fa | Tiene attiva una condizione di completamento nella sessione e continua finché il valutatore la considera soddisfatta | Mantiene un obiettivo persistente nel thread e lo usa come prompt iniziale e criterio di completamento |
| Come si gestisce | Usi /goal per impostare o vedere lo stato, /goal clear per fermarlo e alias come stop, reset o cancel | Usi /goal, /goal pause, /goal resume e /goal clear; nell'app ci sono anche controlli visuali sopra il composer |
| Quando conviene | Task con condizione verificabile nel transcript: test passati, build pulita, file aggiornati, issue chiuse | Lavori lunghi in app, CLI o IDE dove vuoi mantenere rotta, criterio di done e possibilità di steering |
| Rischio principale | Il valutatore non legge file o non esegue comandi da solo: giudica quello che Claude ha mostrato | Un obiettivo troppo ampio resta attaccato al thread e può far proseguire Codex senza abbastanza confini |
Esempi di goal
La differenza non è economica, ma operativa: un goal vago fa esplorare l'agente senza confini; un goal scritto bene indica cosa fare, come verificarlo e quando fermarsi.
Fix con test
Codice e log mirati · Patch, test e risultato
Buon goal
/goal npm test passa e il bug login è risolto
Goal rischioso
/goal sistema il login
Il primo goal dice come verificare la riuscita. Il secondo lascia troppo spazio a interpretazioni.
Migrazione
Modulo e call site · Patch multi-file
Buon goal
/goal migra auth alla nuova API, tsc e test/auth escono 0
Goal rischioso
/goal aggiorna il progetto alla nuova API
Una migrazione ha bisogno di perimetro, comando di verifica e limite sui file o sui moduli coinvolti.
Task editoriale
Brief e fonti · Pagina e controlli SEO
Buon goal
/goal pubblica l'approfondimento, meta sotto i limiti e npm test passa
Goal rischioso
/goal scrivi una bella pagina
Anche il contenuto editoriale beneficia di criteri concreti: fonti, SEO, routing e validazione.
Che problema risolve /goal
Un coding agent può già lavorare per molti passaggi dentro un singolo prompt, ma sui lavori lunghi il problema non è solo iniziare: è ricordare quando fermarsi. /goal rende esplicita la definizione di done. Invece di chiedere ogni volta il prossimo passo, dai all'agente un obiettivo persistente e lo costringi a misurarsi contro un risultato verificabile.
- Riduce il rischio di sessioni che si fermano dopo una patch parziale.
- Aiuta l'agente a scegliere il prossimo passo dopo test, errori o review.
- Rende più chiaro cosa deve comparire nel transcript per dichiarare completato il lavoro.
- Funziona meglio quando abbini /goal a permessi, sandbox e comandi di verifica adatti.
Claude Code: condizione di completamento
Nella documentazione di Claude Code, /goal imposta una condizione di completamento per la sessione. Dopo ogni turno, un modello piccolo e veloce controlla la conversazione e decide se la condizione è soddisfatta. Se la risposta è no, Claude avvia un altro turno con il motivo del mancato completamento come guida.
- Richiede Claude Code v2.1.139 o successivo.
- Accetta una sola goal attiva per sessione, sostituibile con una nuova condizione.
- Il comando /goal senza argomenti mostra stato, turni, tempo, token e ultimo motivo del valutatore.
- La condizione può arrivare a 4.000 caratteri, ma deve restare giudicabile dal transcript.
Codex: goal persistente nel thread
Nei documenti Codex, Goal mode assegna al thread un obiettivo persistente. Il testo del goal serve sia come prompt iniziale sia come criterio di completamento. Nell'app Codex puoi vedere l'avanzamento sopra il composer e usare controlli per mettere in pausa, riprendere, modificare o cancellare il goal. In CLI sono documentati /goal, /goal pause, /goal resume e /goal clear.
- Se /goal non appare, la documentazione indica di abilitare features.goals in config.toml.
- Codex consiglia di usare /plan prima quando il goal non è ancora ben definito.
- Puoi continuare a guidare Codex con messaggi successivi mentre il goal resta attivo.
- Per istruzioni molto lunghe, conviene metterle in un file e far puntare il goal a quel file.
Come scrivere un goal efficace
Un buon goal non è una descrizione aspirazionale. È un contratto operativo: che cosa deve cambiare, come si verifica, quali vincoli non vanno violati e quando fermarsi. Prima di attivarlo, conviene usare l'LLM come sparring partner: gli spieghi il task, gli chiedi di farti domande se manca contesto e approvi solo alla fine il comando /goal definitivo.
- Fai generare all'LLM una bozza di goal prima di avviare Goal mode.
- Chiedigli di separare target, success criteria, exit condition, scope, constraints e verification.
- Risultato: cosa deve essere vero alla fine.
- Verifica: quale comando, test, build o controllo dimostra che è vero.
- Vincoli: cosa non deve cambiare, quali file evitare, quale stile seguire.
- Limite: quando fermarsi se il goal non converge, per esempio dopo un numero di turni.
- Esempio: /goal il checkout usa la nuova API pagamenti, npm test esce 0 e nessun file fuori src/payments viene modificato.
Aiutami a formulare un buon /goal prima di avviare l'agente.
Contesto:
- Devo migrare il checkout alla nuova API pagamenti.
- Il modulo principale è src/payments.
- Non voglio modifiche fuori da src/payments e src/app/checkout.
Prima fammi domande se manca contesto.
Poi proponi:
1. target
2. success criteria
3. exit condition
4. scope
5. constraints
6. verification command
Alla fine scrivi una sola riga pronta da incollare come /goal.Quando non usarlo
/goal è potente proprio perché continua a tenere l'agente in movimento. Questo lo rende inadatto ai casi in cui vuoi ancora ragionare, esplorare trade-off o decidere la direzione. Se non sai ancora quale risultato vuoi, usa /plan, chiedi alternative, poi trasforma la scelta in goal.
- Non usarlo per brainstorming aperto o decisioni di prodotto non risolte.
- Non usarlo se mancano test o segnali verificabili.
- Non usarlo su repository grandi senza perimetro di file, moduli o issue.
- Non usarlo come sostituto della review umana su sicurezza, pagamenti o dati sensibili.
Domande frequenti
/goal sostituisce /plan?
No. /plan serve a definire il percorso quando il problema è ancora aperto. /goal serve dopo, quando puoi scrivere una condizione di successo verificabile.
Claude Code e Codex implementano /goal nello stesso modo?
No. Claude Code lo descrive come una condizione valutata dopo ogni turno da un modello veloce. Codex lo descrive come Goal mode persistente nel thread, con comandi e controlli per gestirlo.
Che cosa rende un goal verificabile?
Un test che passa, una build pulita, un file aggiornato, una coda vuota o un criterio che l'agente può mostrare nel transcript. Frasi come miglioralo o sistemalo non bastano.
Posso cambiare idea mentre il goal è attivo?
Sì. In Codex puoi mettere in pausa, riprendere, modificare o cancellare il goal. In Claude Code puoi sostituirlo con un nuovo /goal o fermarlo con /goal clear.