Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Claude Code, No-Plan Execution e Trust without Verify

Scopriamo come mancanza di pianificazione e troppa fiducia possano impattare negativamente sul lavoro con Claude Code
Scopriamo come mancanza di pianificazione e troppa fiducia possano impattare negativamente sul lavoro con Claude Code
Link copiato negli appunti

Per sua natura, che è poi anche la natura degli Agenti AI, Claude Code opera in modo del tutto autonomo, Quindi legge i file, compila i piani, effettua le modifiche e interrompe la propria sessione di lavoro solo quando, secondo i suoi parametri interni, quest'ultimo sembra completato. Se lo sviluppatore non impone esplicitamente dei binari di verifica e dei test all'agente, si ritroverà obbligato ad assumere il ruolo di controllore manuale per ogni singola riga di codice prodotta. Una situazione che, se non corretta, cancella di fatto i vantaggi dell'automazione e porta con sé delle regressioni spesso impercettibili ma catastrofiche in seno alla codebase.

Claude Code e No-Plan Execution

Parliamo ora dell'avvio dello sviluppo "a caldo", senza pianificazione. Permettere a Claude di modificare file e lanciare comandi senza aver prima analizzato la struttura di un problema produce del codice caotico o delle modifiche impattanti su file spesso non coinvolti, o coinvolti solo marginalmente, in un progetto.

Un errore dovuto allo "sviluppo impulsivo" potrebbe sintetizzarsi in questo modo:

# L'agente inizierà a modificare arbitrariamente file di routing e middleware
"Integra il supporto di Google OAuth 2.0 nel nostro server Express"

I questo caso, un utilizzo della modalità plan in modo preventivo potrebbe essere la scelta giusta. Si può attivare la modalità plan tramite Shift+Tab o attraverso il terminale con l'istruzione

claude --permission-mode plan

In questo stato, gli strumenti di scrittura del filesystem sono bloccati fisicamente e ciò costringe Claude a esplorare e produrre esclusivamente un piano in formato markdown.

Rivediamo quindi il nostro prompt:

# Claude opera in ambiente di sola lettura controllata
"Voglio integrare Google OAuth 2.0. Quali file devono essere modificati? Qual è il flusso di callback? Elabora un piano dettagliato."

Una volta approvato il piano, che si può anche modificare direttamente nel proprio editor con Ctrl+G, si torna in modalità di default e si ordina l'implementazione.

File CLAUDE.md inesistente o sovraccarico

Senza istruzioni relative al contesto, Claude ricomincia da zero a ogni avvio. Al contrario, inserire troppe informazioni porta l'agente a ignorare le regole che hanno priorità sulle altre.

È bene ricordare che uno scaffold rapido, accompagnato a delle regole sintetiche, genera un file base con /init, lo mantiene sotto le 200 righe e include solo le convenzioni che l'agente non può desumere da solo dal codice:

# CLAUDE.md - Convenzioni di Progetto
## Comandi per Build & Test
- Compilazione: npm run build
- Esecuzione test singolo: npm run test -- <file_path>
- Linter: npm run lint
## Stile del Codice
- Usa solo TypeScript ES modules (import/export), mai CommonJS (require)
- Esigi sempre la definizione esplicita dei tipi di ritorno nei metodi pubblici
- Tutte le query SQL devono utilizzare il wrapper transazionale: db.transaction()

Trust without Verify

Accettare ciecamente l'affermazione di successo di Claude senza testarne la correttezza a livello formale è un buon modo per complicarsi la vita e il lavoro. Si pensi per esempio ad un prompt privo di criteri di convalida accurati come il seguente:

"Scrivi una funzione per convalidare le email e salvala in utility"

Ecco invece un prompt basato sul test-driven development che prevede una fase di esecuzione verificata:

"Implementa la funzione validateEmail in @src/utils/validators.ts.
Casi di test attesi: 'user@example.com' -> true, 'invalid' -> false, 'user@.com' -> false.
Scrivi i test unitari associati, esegui il test runner del progetto e mostrami l'output completo come prova del superamento.

Da non dimenticare poi i sistemi di controllo automatico in .claude/settings.json. È infatti sempre buona norma utilizzare dei ganci, o hooks, per automatizzare la convalida a ogni modifica o prima di terminare una sessione di sviluppo:

{
 "hooks": {
 "PreToolUse": "npm run lint",
 "PostToolUse": "npm run test"
 }
}

Se vuoi aggiornamenti su Claude Code, No-Plan Execution e Trust without Verify inserisci la tua email nel box qui sotto:

Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.

Ti consigliamo anche