Passa al contenuto principale

Personalizza Claude Code per un repository reale

Intermedio
What you'll learn
  • Trasformare un checkout appena fatto in una configurazione di Claude Code su misura in circa 20 minuti
  • Capire PERCHÉ ognuna delle quattro personalizzazioni si merita il suo posto — CLAUDE.md, permessi, un hook, un comando
  • Scrivere regole di permesso che riducono le interruzioni sulle azioni sicure e bloccano nettamente quelle rischiose
  • Verificare che ogni pezzo funzioni davvero invece di darlo per scontato

Trasformiamo un checkout appena fatto in una configurazione di Claude Code che conosce il tuo progetto e rispetta le tue regole — in circa 20 minuti. Metteremo insieme le funzionalità principali, spiegando le motivazioni di ciascuna.

Lo stato finale

Passo 1 — Genera e snellisci CLAUDE.md

Esegui /init per creare una bozza di CLAUDE.md, poi riducila a ciò che è vero: stack tecnologico, come eseguire/testare/fare il linting, convenzioni reali e regole di sicurezza ("esegui i test prima di considerare concluso il lavoro", "non toccare /generated"). Perché: è la personalizzazione con la maggiore resa — Claude la legge a ogni sessione.

Prendi un punto di partenza dai template di CLAUDE.md.

Passo 2 — Imposta i permessi

Aggiungi un file .claude/settings.json (riferimento) che autorizzi in anticipo i comandi sicuri e ripetitivi e neghi quelli pericolosi:

{
"permissions": {
"allow": ["Read", "Bash(npm run test:*)", "Bash(npm run lint)", "Bash(git diff:*)"],
"ask": ["Write", "Bash(npm install:*)"],
"deny": ["Read(./.env)", "Bash(git push --force:*)"]
}
}

Perché: meno interruzioni sulle azioni sicure, blocchi netti su quelle rischiose. Vedi Permessi.

Passo 3 — Aggiungi un hook di formattazione

Formatta automaticamente dopo ogni modifica (hook):

{ "hooks": { "PostToolUse": [ { "matcher": "Edit|Write",
"hooks": [ { "type": "command", "command": "f=$(jq -r '.tool_input.file_path'); npx prettier --write \"$f\" 2>/dev/null || true" } ] } ] } }

Perché: formattazione coerente, garantita — non un "ricordati per favore".

Passo 4 — Aggiungi un comando /commit

Inserisci la ricetta /commit dalla libreria degli slash command in .claude/commands/. Perché: una sola parola per un flusso di lavoro ripetibile.

Passo 5 — Usa la modalità Plan per il primo task reale

Assegna un obiettivo concreto in modalità Plan, rivedi il piano e poi lascia che venga eseguito. Perché: costruisci fiducia separando il pensiero dall'azione.

Verifica che abbia funzionato

Non darlo per scontato — controlla ogni pezzo in modo indipendente. Ogni test isola una personalizzazione, così un fallimento ti dice esattamente quale file sistemare.

Guided walkthrough1 of 4
  1. Avvia una NUOVA sessione e assegna un task normale. Claude dovrebbe fare riferimento alle tue convenzioni spontaneamente, senza che tu gliele incolli.

Avvia il primo task reale in modalità Plan

Add pagination to the users list endpoint. Plan it first — I want to review before you touch anything.
Key takeaways
  • CLAUDE.md è la personalizzazione con la maggiore resa perché Claude la legge a ogni sessione — generala con /init, poi riducila a ciò che è davvero vero
  • I permessi sono uno strumento a due facce: autorizza in anticipo i comandi sicuri e ripetitivi per ridurre le interruzioni, e nega quelli pericolosi per ottenere blocchi netti
  • Un hook rende la formattazione garantita invece che un "ricordati per favore" — il comportamento imposto dall'harness batte il comportamento richiesto in un prompt
  • Uno slash command trasforma un flusso di lavoro ripetibile in una sola parola
  • La modalità Plan separa il pensiero dall'azione, ed è così che costruisci fiducia prima di cedere maggiore autonomia
  • Verifica ogni personalizzazione con un test dedicato, così un fallimento punta a un solo file

Verifica le tue conoscenze

0/3
  1. Perché CLAUDE.md viene definita la personalizzazione con la maggiore resa?
  2. Vuoi che la formattazione automatica sia garantita, non semplicemente richiesta. Qual è il meccanismo giusto?
  3. Nel settings.json d'esempio, perché alcuni comandi stanno in "allow" e altri in "ask"?

Prossimi passi