La tua app è viva. E cresce più in fretta di quanto tu riesca a capirla.
Quando un progetto creato con l’IA cambia, conta sapere cosa è stato verificato, cosa resta ignoto e quale azione è autorizzata. Care spiega l’approccio alle prove di EolSpace; CareProof ne è la componente probatoria. L’esempio qui sotto è preparato e non è possibile ordinare pubblicamente un servizio.
«Non riesco a correggerlo perché non ho scritto questo codice» — e ogni piccolo errore diventa una serata di ipotesi.
Le chiavi del tuo database stanno da qualche parte nel codice della pagina e non sai con certezza se sia sicuro.
Dopo ogni deploy non sei sicuro che quello che funzionava ieri funzioni ancora oggi.
Come funziona
01
Un controllo dall'esterno
Guardiamo l'app come la vede un visitatore qualsiasi: certificato, raggiungibilità, codice pubblico della pagina, marcatore di build. Non rompiamo nulla, non cambiamo nulla e non entriamo mai nel tuo codice.
02
Una ricevuta con tre stati
Ogni riga riceve uno di tre verdetti — confermato, guasto, non stabilito — e l'indirizzo della sua prova. Un punteggio complessivo non esiste di proposito: nasconderebbe proprio ciò che devi vedere.
03
Un prompt pronto per la tua IA
Una riga con un problema include testo per il tuo editor o strumento AI abituale. Aiuta a preparare una modifica; la controlli e la applichi tu. Solo una nuova esecuzione della stessa prova può confermare la correzione.
04
Scadenza onesta
Fai un deploy — la ricevuta non finge di essere ancora verificata. Passa a «in attesa di nuovo controllo» finché non guardiamo di nuovo. Una vecchia ricevuta che resta verde in silenzio è peggio di nessuna ricevuta.
Che aspetto ha una riga della ricevuta
Queste sono righe reali prodotte dal controllo — solo su un'app inventata.
secret-scan:tua-app.exampleguasto
Nel codice pubblico della pagina è stata trovata una chiave di servizio Supabase. Quella chiave aggira tutte le regole di accesso al database: chi la trova legge e modifica tutti i tuoi dati.
Prompt pronto per il tuo editor IA
Nel bundle pubblico della mia web app è stato trovato un segreto. Trovalo nel codice frontend, rimuovilo dal bundle client, sposta tutte le operazioni che lo usano sul lato server (API route o edge function), poi revoca la chiave e generane una nuova presso il provider. Mostra il diff e spiega cosa resta ora sul client.
secret-scan:altra-app.examplenon stabilito
È stata trovata una chiave pubblica Supabase — è normale, esiste per essere pubblica. Ma se le tue tabelle siano chiuse dalle regole di accesso, un controllo dall'esterno non lo vede. Quindi: non stabilito, non «tutto bene».
tls:tua-app.exampleconfermato
Il certificato del dominio è valido e non scaduto alla data del controllo.
Nell'albero non ci sono .claude/settings.json né .claude/settings.local.json — quindi non c'è nemmeno un hook che esegua un comando all'avvio di una sessione dell'agente. L'assenza qui è misurata, non «fuori portata»: la riga è legata al commit e scade con il successivo.
AGENTS.md è stato letto per intero: nessun carattere Unicode nascosto che un editor non mostra ma un modello legge come istruzione. Il file letto è nominato nel limite di copertura di questa riga.
Una chiave trovata non la citiamo mai — né nel report né in una email. Nominiamo la classe del ritrovamento e dove si trova, perché la ricevuta non diventi il secondo punto di fuga.
Le due righe «agent-hygiene» vengono da una fonte diversa dal controllo esterno: le produce il comando eol nel tuo stesso albero. Legge soltanto file e non esegue nulla. La famiglia ha cinque controlli: hook in .claude/settings.json, l'attivazione automatica di tutti i server MCP del progetto, task di VS Code che partono all'apertura della cartella, skill che si concedono Bash aggirando il gate di fiducia, e caratteri Unicode nascosti in CLAUDE.md o AGENTS.md. È un'autovalutazione su un commit preciso, non un badge: cambia il codice e la riga attende una nuova esecuzione.
Prove vive, non promesse
Prima di fidarti di qualcuno, guarda cosa fa davvero questo sistema. Entrambe le pagine sono aperte e funzionano adesso.
Contrassegni legati a commit precisi — questo sito compreso. Se il codice si muove, il contrassegno torna da solo a «in attesa di nuovo controllo».
Cosa non promettiamo
È un'autovalutazione rispetto ai controlli che eseguiamo davvero — non un audit e non una garanzia.
«Non stabilito» non significa «tutto bene» né «tutto male». È un limite dichiarato: questo non l'abbiamo controllato, o non ci siamo riusciti.
Un punteggio complessivo non esiste. Un pallino verde sopra tre stati diversi è esattamente ciò che ci rifiutiamo di produrre.
Guardiamo dall'esterno. Ciò che si vede solo dall'interno del tuo codice un controllo esterno non lo vedrà — e lo dice apertamente invece di tacere. Nell'albero entra solo il comando eol che lanci tu stesso: legge le configurazioni degli agenti senza eseguirle, e i tuoi test girano solo su un tuo comando separato.
Stato dell’accesso a EolSpace
EolSpace è pensato per discutere il tuo caso: cosa stai creando, cosa vuoi osservare e quali cambiamenti contano. Un canale pubblico per queste richieste non è ancora confermato; il pilota chiuso non è un servizio aperto.