Sai davvero cosa ha scritto l'AI nel tuo repository? Il caso Agent Console

VibeInspect.ai · 3 settembre 2026 · 5 min di lettura
- copilot
- autorizzazioni
- audit
- vibe-coding
- sicurezza
Un registro firmato dimostra cosa ha fatto l'AI, ma non se il codice è buono
Chi costruisce software affiancato da un agente AI, prima o poi si scontra con una domanda scomoda: cosa ha toccato esattamente quel modello nel mio codice, e chi lo può dimostrare? Su Dev.to, l'autore di Agent Console racconta di aver costruito un'app desktop in cui gli agenti hanno scritto la stragrande maggioranza del codice, supervisionati attraverso l'app stessa. Il punto centrale è netto: ogni sessione produce un registro firmato che prova la sequenza degli eventi, ma — parole sue — "prova che questa sequenza è avvenuta in questo ordine e non è stata modificata dopo. Non prova che il codice sia buono. È un audit trail, non un oracolo."
Questa distinzione è la cosa più importante che un founder possa portarsi a casa. Sapere chi ha scritto una riga e quando non ti dice nulla su cosa quella riga fa realmente in produzione. Un ledger crittografico è una garanzia di tracciabilità, non di correttezza.
Cosa significa se il tuo codice l'ha scritto Copilot
Se hai accettato suggerimenti di GitHub Copilot per settimane, dentro il repository c'è ormai una stratificazione di codice che non hai mai letto riga per riga. Copilot completa in linea, in tempo reale, mentre scrivi: è comodissimo proprio perché non ti obbliga a fermarti. Ma questo è anche il problema. Il flusso non lascia un punto in cui ti sia chiesto "ho capito cosa fa questa funzione di autorizzazione?".
Prendiamo un caso concreto e frequente: le autorizzazioni. Copilot tende a proporre pattern plausibili basati su ciò che ha visto altrove. Un controllo di accesso che sembra corretto — un if user.role == 'admin' piazzato nel posto giusto — può convivere con endpoint gemelli in cui quel controllo semplicemente non è stato suggerito, o è stato suggerito in una forma che non copre il caso reale. Il risultato è un'autorizzazione a macchia di leopardo: alcune rotte protette, altre no, senza che nessuno abbia deciso consapevolmente quali.
Avere un registro di quando Copilot ha inserito quel controllo non ti aiuta. Ti serve un verdetto su se le autorizzazioni del tuo repository reggono davvero.
Perché ora ti serve un audit
Il codice generato in fretta si accumula come inventario. Ogni completamento accettato è un piccolo debito che rimandi: lo verificherai "quando ci sarà tempo". Il tempo non arriva mai, e nel frattempo pubblichi.
Un audit serve proprio a interrompere questo ciclo con un momento dedicato, esterno al flusso di sviluppo. Non è un controllo che fai mentre scrivi — è un controllo che fai dopo, guardando il repository dall'alto. La differenza è la stessa che passa tra rileggere una frase mentre la scrivi e farla leggere a qualcun altro a mente fresca.
VibeInspect è pensato esattamente per questo. Carichi lo ZIP del repository, alcuni specialisti AI lo analizzano e ricevi un PDF con un verdetto. Nessun server coinvolto: il codice sorgente viene cancellato al termine dell'analisi. Non è un pentest, non corregge il codice e non promette sicurezza assoluta. È un giudizio strutturato sullo stato reale di ciò che hai pubblicato.
Sul tema delle autorizzazioni, un audit ti dice quali endpoint espongono operazioni sensibili senza un controllo coerente, dove un ruolo viene verificato in un punto ma non in un altro, e dove la logica di accesso è stata duplicata con varianti sottilmente diverse. È la differenza tra "credo che sia protetto" e "ecco il file e la riga dove non lo è".
Cosa un linter non vede
Qui sta il fraintendimento più comune. Molti pensano che, avendo il linter verde in CI, il repository sia a posto. Ma un linter e un audit rispondono a domande completamente diverse.
Un linter controlla la forma: indentazione, variabili non usate, import mancanti, convenzioni di stile. È un controllo sintattico e, al massimo, su pattern locali noti. Non ha la minima idea di quale sia la tua logica di business.
Un linter non sa che quell'endpoint dovrebbe verificare il ruolo dell'utente. Non sa che due rotte simili dovrebbero avere lo stesso livello di protezione. Non sa che una funzione di autorizzazione, scritta impeccabilmente dal punto di vista dello stile, in realtà lascia passare un caso che non dovrebbe. Un if formalmente corretto che controlla il ruolo sbagliato supera qualsiasi linter senza un avviso.
Allo stesso modo, il tipo di garanzia raccontato nell'articolo — un registro firmato di ciò che l'agente ha fatto — vive su un piano ancora diverso. Ti dà la cronologia verificabile delle modifiche, ma non giudica se quelle modifiche abbiano introdotto un buco nelle autorizzazioni. Tracciabilità, forma e correttezza sono tre cose separate. Ti servono tutte e tre, ma non puoi far coprire a una il lavoro dell'altra.
È per questo che un repository con CI verde e un audit trail perfetto può comunque avere un problema di controllo accessi grave. Nessuno dei due strumenti stava guardando in quella direzione.
Cosa fare questa settimana
Non serve riscrivere tutto. Serve un verdetto. Ecco un percorso concreto da chiudere entro pochi giorni:
- Fai un elenco degli endpoint della tua applicazione che eseguono operazioni sensibili: lettura di dati altrui, modifica, cancellazione, azioni amministrative.
- Per ognuno, chiediti onestamente: c'è un controllo di autorizzazione, e sai dove si trova nel codice? Se la risposta è "credo di sì", segnalo.
- Non fidarti del linter verde come prova. Ricorda che non è mai stato progettato per giudicare la tua logica di accesso.
- Se hai accumulato molto codice suggerito da Copilot senza rileggerlo, sottoponi il repository a un audit che ti restituisca file, riga ed evidenze sui punti deboli delle autorizzazioni.
Se il problema è proprio "non so se le mie autorizzazioni reggono", il piano Diagnostic di VibeInspect a €499 ti dà file, riga ed evidenze — senza correzioni automatiche e senza revisione umana. È il livello giusto quando hai un problema tecnico preciso da mettere a fuoco, non solo una vaga sensazione di rischio.
Aver usato l'AI non è l'errore. L'errore è pubblicare senza un verdetto su ciò che l'AI ha scritto per te.
Domande frequenti
Un audit trail firmato basta a dire che il mio codice è sicuro?
No. Un registro firmato prova la sequenza delle modifiche e che non sono state alterate dopo, ma non giudica se il codice sia corretto o se le autorizzazioni reggano. È tracciabilità, non un verdetto sulla qualità.
Il linter è verde: perché dovrei fare comunque un audit?
Il linter controlla la forma del codice: stile, variabili inutilizzate, import. Non conosce la tua logica di business e non sa se un endpoint verifica il ruolo giusto. Un controllo accessi errato ma scritto in modo pulito supera il linter senza avvisi.
Cosa può dirmi VibeInspect sulle autorizzazioni del mio repository?
Con il piano Diagnostic ricevi file, riga ed evidenze sui punti dove il controllo accessi è assente, incoerente o duplicato in varianti diverse. Non corregge il codice e non è un pentest: ti dà un verdetto strutturato in un PDF.
VibeInspect conserva il mio codice sorgente?
No. Carichi lo ZIP, gli specialisti AI lo analizzano e il codice sorgente viene cancellato al termine dell'analisi. Non resta su alcun server.