0 XP
0
G

Pronto a metterlo davvero in pratica?

La lettura completa di questa lezione è qui sotto, gratis per tutti. Considerala la mappa. Un account gratuito aggiunge il percorso guidato: esercizi pratici, progressi salvati e ogni lezione che riprende da dove si è fermata la precedente. Nessuna carta di credito richiesta.

Prossima: Hook e automazione

Iscriviti con l'email

Hai già un account? Accedi

Hook e automazione

Collega gli hook SessionStart per caricare automaticamente il contesto. Usa PreToolUse per bloccare i comandi pericolosi. Esegui Claude su cron con gate di approvazione.

Gli hook sono comandi che Claude Code esegue in specifici eventi del ciclo di vita. Configurali una volta in ~/.claude/settings.json; si attivano automaticamente. Gli hook impongono una disciplina che altrimenti dimenticheresti: caricare STATE.md ogni sessione, controllare i file .env in staging prima di effettuare il commit. Il costo di configurazione è di 10 minuti. Il vantaggio è permanente.

SessionStart si attiva nel momento in cui si apre una sessione; tutto ciò che stampa diventa contesto prima del tuo primo messaggio:

{

"hooks": {

"SessionStart": [

{

"command": "cat ~/notes/STATE.md ~/notes/MEMORY.md 2>/dev/null || true"

}

]

}

}Il || true è importante: non interrompere l'avvio della sessione se i file mancano. Mantieni gli hook sotto i 50ms e non effettuare chiamate di rete all'apertura della sessione. Hai bisogno di dati API freschi? Esegui un cron che scrive un file locale; carica il file nell'hook.

Altri quattro eventi hook:

Stop: si attiva quando una sessione termina. Usalo per i promemoria: "Prima di chiudere: aggiorna STATE.md."

PreToolUse: si attiva prima che Claude chiami uno strumento. Il tuo livello di applicazione della sicurezza: blocca i comandi pericolosi, registra le chiamate per i log di audit. L'uscita 0 consente la chiamata; l'uscita 2 la blocca.

PostToolUse: si attiva dopo che uno strumento restituisce un risultato. Esegui un linter dopo la scrittura di un file, controlla le politiche RLS dopo una migrazione SQL.

UserPromptSubmit: si attiva quando premi invio. Inietta contesto o applica difese contro l'iniezione di prompt per contenuti esterni.

Un hook PreToolUse che blocca qualsiasi chiamata Bash contenente rm -rf:

{

"hooks": {

"PreToolUse": [

{

"matcher": "Bash",

"command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -q 'rm -rf'; then echo 'BLOCCATO: rm -rf non consentito' >&2; exit 2; fi"

}

]

}

}Il campo matcher si rivolge a uno strumento specifico. Senza di esso, l'hook si attiva su ogni chiamata di strumento. Usa i matcher per mantenere gli hook veloci e mirati.

Quando un hook non si attiva, controlla in ordine:

Sintassi: JSON valido? Esegui cat ~/.claude/settings.json | python3 -m json.tool.

Percorso del file: testa manualmente il comando dell'hook nel tuo terminale.

Codice di uscita: manca || true?

Velocità: oltre 3 secondi? Sposta la parte lenta a un cron.

Due insidie di produzione. Imposta un campo timeout esplicito su ogni hook in modo che il comportamento rimanga prevedibile. E gli hook vengono eseguiti in un ambiente spogliato, non nella tua shell completa: se un hook ha bisogno di una variabile d'ambiente (come un token Slack), recupera esplicitamente il tuo .env nel comando dell'hook. Questa è la causa più comune di hook che funzionano nel tuo terminale ma falliscono silenziosamente in Claude Code.

Claude Code basato su Cron. Lo stesso agente può essere eseguito su una pianificazione tramite claude --headless: un briefing mattutino alle 7 del mattino pubblicato su Slack, monitoraggio dei social media ogni 4 ore, un controllo dello stato di distribuzione ogni 30 minuti.

Il modello critico: gate di approvazione. Il cron redige, tu rivedi, il sistema invia. Un agente autonomo che invia messaggi in uscita senza revisione alla fine invierà qualcosa di sbagliato: modello sbagliato, pubblico sbagliato, tempistica sbagliata. L'architettura: l'agente scopre e redige, l'umano rivede e rilascia. Implementazione: l'agente scrive bozze in un canale Slack; nulla va in uscita finché un umano non approva. Questo si adatta a decine di agenti senza che nessuno di essi diventi incontrollabile.

Costruisci il sistema di hook in fasi:

Fase 1 (settimane 1-2), hook di caricamento: SessionStart carica STATE.md e MEMORY.md; Stop ti ricorda di aggiornare.

Fase 2 (settimane 3-4), hook di guardia: PreToolUse blocca duramente i comandi irreversibili (force-push a main, DROP TABLE, rm -rf).

Fase 3 (mese 2+), hook di audit: PostToolUse controlla ciò che è stato effettivamente scritto: migrazioni SQL con politiche RLS mancanti, nuove rotte API con limitazione di velocità mancante, segreti in qualsiasi file scritto.

PostToolUse è più forte di PreToolUse per gli audit perché legge il contenuto del file scritto, la verità, non solo ciò che Claude intendeva. Costruisci gli hook attorno alle tue reali modalità di fallimento: due hook che risolvono problemi reali battono dieci teorici.

SessionStart carica il contesto, Stop ricorda, PreToolUse blocca i comandi pericolosi (exit 2), PostToolUse verifica ciò che è stato scritto, e cron più i gate di approvazione trasformano Claude in un sistema pianificato con un umano sul pulsante di invio. Inizia con un hook: cat ~/notes/STATE.md 2>/dev/null || true in SessionStart. Aggiungi la fase successiva ogni mese.

Nightschool AI è una piattaforma di apprendimento indipendente e non è affiliata, approvata o sponsorizzata da Anthropic. Claude è un marchio di Anthropic, PBC. Cerchi la Claude Academy ufficiale di Anthropic? La trovi su academy.claude.com.

Hook e automazione: Configurazione del professionista | Nightschool AI