Introduzione: cos’è Claude Code e perché è interessante
Claude Code è un ambiente pensato per scrivere e migliorare codice insieme a un’IA.
Non si limita a generare funzioni o script: analizza la codebase, propone modifiche, aiuta con refactoring e test, installa dipendenze e può modificare i file in autonomia.
Nota: online esistono già numerose guide — introduttive e avanzate — su come usare Claude per programmare.
Questo articolo non è una guida completa, ma un esempio pratico applicato a un piccolo progetto open per mostrare potenzialità e semplicità d’uso dello strumento.
Il progetto di partenza
Come esempio pratico ho usato un mio piccolo progetto open source:
👉 onnx-model-generator-docker
È un servizio REST Dockerizzato che converte modelli HuggingFace in formato Open Neural Network Exchange (ONNX) utilizzando la libreria onnxruntime-genai: riceve una richiesta HTTP e restituisce un modello ottimizzato pronto da scaricare.
Il progetto funziona, ma si tratta di un semplice prototipo e c’è spazio per migliorare qualità, sicurezza e test.
Attivare Claude Code
Ho collegato il repository e lanciato /init, che analizza la codebase e genera CLAUDE.md, una guida interna per l’IA con struttura del progetto, dipendenze, punti critici e possibili miglioramenti.


I suggerimenti di miglioramento
Dopo l’analisi, ho chiesto a Claude Code di suggerire possibili migliorie al progetto e il tool ha prodotto una roadmap per priorità:
- Critico (Sicurezza & Stabilità): validazione parametri di input, gestione token, rate limiting…
- Alto (Performance & Osservabilità): logging avanzato, health checks, metriche…
- Medio/Basso: modularizzazione del codice, OpenAPI docs, caching strategy…


Ho scelto di partire dal punto più importante: validare i parametri di input.
Applicare la validazione degli input
Il parametro model_name non veniva validato. Claude Code ha proposto e implementato controlli:
- stringa obbligatoria
- massimo 200 caratteri
- regex per il formato (alfanumerici, punti, trattini, underscore e slash)
- blocco path traversal (
../) - blocco di slash multipli consecutivi
Passaggi principali:


main.py con le nuove regole di validazione
Test, risoluzione problemi e verifica
L’IA ha predisposto anche i test: aggiunta di pytest e pytest-cov in requirements.txt, creazione di test_validation.py e fix di ambiente per usare directory temporanee prima dell’import di main.py.




Riepilogo finale
Al termine: validazione robusta in main.py, 12 test automatici tutti verdi, dipendenze e documentazione aggiornate, con comandi rapidi per eseguire i test e fare build.

CLAUDE.md aggiornato con comandi di test e build

Risultato e riflessioni
In sintesi, con Claude Code ho:
- Ottenuto un’analisi completa e una roadmap chiara.
- Implementato automaticamente la validazione degli input.
- Verificato tutto con test generati dall’IA.
- Aggiornato documentazione e comandi operativi.
Il progetto è ora più robusto e sicuro, con un effort molto inferiore rispetto a farlo a mano.
Conclusioni (tempi, profili e valore formativo)
- Programmatore esperto (con conoscenza dello stack): probabilmente avrebbe impiegato un tempo simile (o poco più). Nel mio caso, con Claude il flusso ha richiesto ~15 minuti netti dall’analisi all’esito positivo dei test.
- Programmatore esperto ma fuori dallo stack/language del progetto: qui l’IA tende a far risparmiare tempo, colmando rapidamente i gap di contesto (setup, convenzioni, dipendenze, entrypoint).
- Sviluppatore junior: senza guida avrebbe impiegato più tempo con risultato peggiore. In questo scenario Claude diventa soprattutto un’occasione di apprendimento: capire i rischi nei sorgenti (path traversal, command injection, input sanitization), vedere test di regressione e buone pratiche applicate a un caso reale.
In ogni caso, la revisione umana del codice resta necessaria: l’IA accelera e alza la baseline di qualità, ma la responsabilità finale del software è di chi lo mantiene.