✅ AI Code Review Checklist: Protocollo di Validazione
Mindset: “Fidati del suggerimento, ma verifica l’implementazione.”
::: tip SCOPO DELLA CHECKLIST Questa lista deve essere utilizzata per filtrare l’output degli LLM prima che venga integrato nel repository. L’obiettivo è eliminare il “debito tecnico silente” e garantire la coerenza architetturale. :::
📋 1. Integrità Logica & Edge Cases
L’IA eccelle nel “caso medio”, ma spesso fallisce nelle condizioni limite.
- Input Null/Vuoti: Come si comporta il codice se riceve stringhe vuote, liste
Noneo puntatorinullptr? - Limiti Numerici: Sono gestiti i casi di overflow, divisione per zero o indici fuori dai limiti?
- Logica Condizionale: I blocchi
if/elsecoprono tutti i rami logici possibili o mancano dei casi di default? - Allucinazioni API: Le funzioni o i metodi chiamati esistono realmente nella versione della libreria che stai usando?
🛡️ 2. Security & Data Protection
Protezione contro l’iniezione di pattern vulnerabili.
- Sanitizzazione Input: Il codice valida i dati provenienti dall’esterno prima di usarli in query SQL o comandi di sistema?
- Funzioni Pericolose: Sono presenti chiamate a
eval(),exec(),system()opickle.loads()non protette? - Secrets Leaks: L’IA ha inserito placeholder che sembrano chiavi API reali o ha usato hard-coded credentials?
- Least Privilege: Il codice richiede più permessi di quelli strettamente necessari per il task?
🐍 3. Python-Specific Validation (Clean Code)
Assicurarsi che il codice sia “Pythonic” e manutenibile.
- Type Hinting: Tutte le funzioni hanno le annotazioni dei tipi per argomenti e ritorno?
- Context Managers: Le risorse (file, socket, connessioni DB) sono gestite tramite blocchi
with? - PEP 8: Il naming segue lo standard
snake_casee la struttura è leggibile? - Exceptions: Sono presenti blocchi
try/excepttroppo generici (es.except Exception: pass)?
⚙️ 4. C++ & Memory Safety (Systems Programming)
Verifica rigorosa per evitare crash di memoria o memory leak.
- RAII Compliance: La gestione delle risorse è legata al ciclo di vita degli oggetti (Smart Pointers)?
- Memory Ownership: È chiaro chi possiede la memoria? Sono stati usati puntatori raw (
*) dove sarebbe megliostd::unique_ptr? - Thread Safety: Se il codice è multi-thread, sono presenti race conditions o deadlock potenziali?
- Modern Standards: Il codice usa feature di C++17/20 o propone sintassi obsolete (stile C)?
⚡ 5. Performance & Risorse
Ottimizzazione del footprint hardware.
- Complessità Algoritmica: L’IA ha scelto l’algoritmo più efficiente ($O(n)$ vs $O(n^2)$) per la dimensione dei dati prevista?
- Allocazioni Inutili: Ci sono creazioni di oggetti pesanti all’interno di cicli critici?
- I/O Blocking: Le operazioni su disco o rete sono gestite in modo asincrono dove necessario?
📉 Workflow di Revisione Rapida (Mermaid)
💡 Suggerimento dell’Architetto
::: info PRO-TIP PER WIKI.JS
Ti consiglio di stampare questa checklist o di tenerla in un file REVIEWS.md nella root dei tuoi progetti. Prima di ogni commit importante di codice generato dall’IA, scrivi:
Review: Passed [Data] - [Tua Firma]
Questo crea una traccia di responsabilità che l’IA non potrà mai sostituire.
:::
Tags: #CodeReview #AI #Python #CPP #CyberSecurity #Checklist*