Privacy e sicurezza
Quali dati raccogliamo, perché, come li trattiamo — e com'è fatto il sistema sotto, in modo che tu possa giudicare in autonomia di che ti fidi e di che no. Tono: spiegato a un avvocato che vuole capire prima di usare.
Skillagram è una rete sociale tra avvocati: ci si iscrive, si condividono agent, prompt, skill e plugin per l'AI legale, si seguono colleghi, si entra in community, ci si scrive in privato. Avvocati recensiscono i contributi e segnalano i casi in cui un'AI ha sbagliato sul diritto italiano. Non è un servizio commerciale, non si vende l'AI. Fa parte della famiglia RegIA / BeccarIA ma è un prototipo gestito dall'autore come persona fisica.
Parte 1 — Privacy
Titolare del trattamento
Michele Loi — autore e maintainer del prototipo, in qualità di persona fisica (questo non è un servizio commerciale; non c'è una società dietro).
- Contatto privacy ed esercizio dei diritti:
micheleloi@skillagram.ai
- Il modulo "Hai bisogno di rimuovere un contenuto?" recapita allo stesso indirizzo
Quali dati personali raccogliamo
Quando navighi le pagine pubbliche
Le pagine pubbliche (la home, il catalogo dei contributi, la pagina Provala) sono leggibili senza account. Mentre navighi e basta:
- Niente analytics di terze parti. Il sito non usa Google Analytics, Meta Pixel, Hotjar o servizi di tracciamento. Non c'è un cookie di tracking.
- Il tuo browser salva localmente sul tuo dispositivo alcune informazioni di stato (lingua, community attiva, un identificativo anonimo per non far votare due volte la stessa recensione). Restano nel tuo browser; l'elenco completo è in Cookie e memoria del browser.
- Il server che ospita il sito (VPS easyname, a Vienna — Austria, UE) registra, come ogni server web, i metadati tecnici delle richieste, incluso l'indirizzo IP (non anonimizzato). I log di accesso sono conservati circa 14 giorni, poi cancellati automaticamente.
Quando crei un account e accedi
Per pubblicare, scrivere in chat, seguire colleghi, salvare skill o entrare in una community serve un account. Skillagram è login-first: la lettura del catalogo è aperta, ma la partecipazione passa per l'accesso. L'accesso è senza password da ricordare, in due modi:
- Link magico via email — inserisci la tua email, ti arriva un link che ti fa entrare. Supabase gestisce internamente una credenziale cifrata lato server; tu non crei né digiti una password, e nessuna password vive nel tuo browser.
- Accedi con Google — se scegli questa via, Google ci restituisce email, nome e foto. La verifica dell'email è gestita internamente dall'infrastruttura di autenticazione (Supabase); non è un dato che il tuo profilo conserva o mostra. È una tua scelta: chi non vuole coinvolgere Google usa il link magico.
Quello che conserviamo dell'account: la tua email (è la tua identità di accesso) e un identificativo utente interno. La sessione di accesso è salvata nel localStorage del browser perché tu resti connesso fra una visita e l'altra.
Il tuo profilo pubblico
Alla prima iscrizione crei un profilo. Sono pubblici e visibili a chiunque:
- Nome visualizzato — obbligatorio. Non c'è verifica che corrisponda al nome reale.
- Foto profilo (avatar) — richiesta in fase di creazione del profilo (l'interfaccia non ti fa salvare senza). Vive in uno spazio di archiviazione pubblico.
- Handle (
@nomeutente) — generato automaticamente, poi fisso.
- Bio, studio, profilo LinkedIn — opzionali; se compilati, pubblici.
Quando pubblichi un contributo, questo rimanda al tuo profilo: nome e avatar accompagnano sempre ciò che condividi.
Quando ti scrivi in privato con un collega (chat)
La chat 1:1 è il punto su cui devi essere informato con precisione, perché qui la riservatezza ha un confine tecnico onesto:
- I messaggi sono conservati in chiaro sui nostri server (database PostgreSQL di Supabase). La chat NON è cifrata end-to-end.
- Chi può leggerli, normalmente: solo i due partecipanti, per regole sul database (Row Level Security).
- Chi può leggerli, tecnicamente: il maintainer, perché possiede la chiave amministrativa del database (
service_role) che scavalca quelle regole. È una possibilità tecnica reale e te la diciamo invece di nasconderla. È lo stesso modello di Slack, LinkedIn o Instagram: server-readable, dichiarato.
- Quando scrivi a un bot guida (Avv. Demo Rossi, Avv.ssa Demo Bianchi), il contenuto del messaggio e le ultime battute vengono inviati ad Anthropic (Claude) per generare la risposta. Questo non è la sandbox "niente lascia il browser": qui il messaggio passa da un server e arriva a un fornitore esterno. Anthropic agisce come responsabile del trattamento (API commerciale di Claude): i dati dell'API non sono usati per l'addestramento e sono conservati ~30 giorni; il DPA è incorporato nei Commercial Terms. Trasferimento USA coperto da SCC.
⚠️ Per il tuo segreto professionale, non incollare in chat (né ai bot) dati identificativi o riservati del cliente. La chat è pensata per scambio tra colleghi su skill, prompt e metodo — non è un canale per il materiale di causa. Se devi parlare di un caso reale, pseudonimizzalo prima con Recode IT (togli i dati identificativi): la fattispecie resta discutibile, i nomi no. Il segreto professionale è un tuo dovere (art. 28 Codice Deontologico Forense; art. 622 c.p.) e su un canale leggibile dal gestore lo proteggi tu, non la cifratura.
Quando pubblichi un contributo (agent / prompt / skill / plugin)
Salviamo quello che hai messo nel modulo. Tutto questo è pubblico sul sito: titolo, descrizione, contenuto pieno, area legale, tipo, licenza scelta (regola il riuso da parte degli altri), eventuale link GitHub, eventuali riferimenti normativi. Il contributo è collegato al tuo profilo (nome + avatar pubblici).
- Per i plugin: l'upload del file
.zip non è attivo: il modulo registra solo il nome del file come testo, nessun file viene caricato o conservato. Per condividere un plugin usa un link GitHub.
La pubblicazione richiede l'accesso.
Quando scrivi una recensione o segnali un errore dell'AI
- Nome (dal profilo). Pubblichi da loggato: il contributo è tuo e lo modifichi o cancelli dal tuo profilo (niente più link via email).
- Contenuto (stelle + testo per le recensioni; prompt + risposta errata + correzione + riferimenti per le segnalazioni). Per le segnalazioni di errore il contenuto è pubblico: pseudonimizza il caso prima (togli i dati identificativi).
- I contributi sono sempre firmati. Skill, recensioni e segnalazioni escono a tuo nome dal tuo profilo (da loggato): l'opzione "Pubblica senza il mio nome" non è più disponibile. Il nome lo conserviamo per moderazione e per poterti contattare, e non promettiamo che sia irrintracciabile. La riservatezza vera è quella del caso, non del tuo nome: pseudonimizzalo con Recode. (Alcuni contributi legacy, precedenti a questa scelta, possono ancora comparire senza firma.)
- Conferme di segnalazione: se confermi la segnalazione di un collega, la conferma è firmata col tuo nome (dal profilo, da loggato) ed è pubblica; la cancelli dal tuo profilo.
Quando provi un prompt o una skill nella sandbox ("Provala")
Questo è il punto più garantista, ed è il motivo per cui la sandbox può dire "niente lascia il tuo browser". La pagina Provala esegue un prompt/skill usando la tua chiave API, sul tuo testo. Quando premi Esegui:
- La chiamata va diretta dal tuo browser al fornitore AI che scegli. Non passa dai server di Skillagram. Non vediamo né la chiave, né il testo, né la risposta.
- La tua chiave API è tenuta solo in
sessionStorage e si cancella quando chiudi la scheda.
- I fornitori selezionabili: Anthropic (Claude), OpenAI, DeepSeek, Google Gemini, Mistral e un endpoint personalizzato ("Altro"). Per supportarli tutti, la Content-Security-Policy consente connessioni verso qualunque host HTTPS — non più solo due domini fissi. La garanzia che conta resta: nessun proxy di Skillagram, una sola destinazione per esecuzione (verificabile in DevTools → Network), codice pubblico e ispezionabile.
Quando tu mandi il testo del caso al fornitore AI, vale il rapporto fra te e quel fornitore. Alcuni hanno datacenter fuori dall'UE (es. DeepSeek, Cina). Per questo: pseudonimizza sempre il caso prima con Recode (togli i dati identificativi). Nella sandbox BYO-key quella responsabilità è tua.
Quando segui, blocchi, salvi, entri in una community
- Follow (chi segui / chi ti segue): pubblici.
- Blocchi: privati — chi blocchi non lo sa.
- Segnalibri (skill salvate): privati, visibili solo a te.
- Iscrizione a una community: il roster è pubblico. Alla prima iscrizione vieni aggiunto alla community di default ("Diritto").
Quando voti "Utile"
Il voto incrementa il contatore. Per evitare doppi voti dallo stesso browser, salviamo una stringa anonima generata localmente. Non è l'IP, non è il tuo nome, non è collegata a te direttamente.
Notifiche al maintainer
A ogni nuovo profilo e a ogni nuova skill pubblicata, il sistema invia un'email al maintainer (via Resend) con pochi dati di sintesi più un link. Campi inviati — nuovo profilo: nome visualizzato (+ handle), eventuale studio, link al profilo; nuova skill: tipo, titolo, autore, eventuale area, link alla skill. Nessuna email e nessun indirizzo IP sono inclusi. Serve a sapere cosa entra nella piattaforma e a poter moderare. Non scatta su nuovi messaggi, recensioni o segnalazioni.
Quando usi il modulo "Richiesta di rimozione"
Il modulo apre il tuo client di posta già precompilato e mandi tu la mail a micheleloi@skillagram.ai. Riveli la tua email a noi volontariamente con quell'azione; non viene conservata nel database del sito.
Perché trattiamo questi dati (base giuridica)
- Account, accesso e chat: necessità contrattuale di erogarti il servizio (art. 6.1.b GDPR) + tuo consenso all'iscrizione (art. 6.1.a).
- Pubblicazione di contributi/recensioni/errori: consenso esplicito al submit (art. 6.1.a), con piena consapevolezza che va live.
- Bot guida AI: i bot rispondono solo su argomenti relativi al funzionamento e alle finalità della piattaforma. Base giuridica: tua scelta di scrivere a un bot (art. 6.1.a GDPR); ti invitiamo comunque a pseudonimizzare (togliere i dati identificativi) qualsiasi dato personale.
- Sandbox "Provala" (BYO-key): non trattiamo nessun dato — la chiave e il testo non ci arrivano mai. Il trattamento è fra te e il fornitore AI.
- Notifiche al maintainer + hosting + backup + anti-abuso: legittimo interesse del maintainer a far funzionare e moderare il prototipo (art. 6.1.f).
- Niente marketing, niente profilazione, niente decisione automatizzata.
Quanto conserviamo
- Account (email + identificativo): a tempo indeterminato finché l'account esiste. Per cancellarlo: dal tuo profilo (pannello «Cancella il mio account», con doppia conferma) oppure scrivici.
- Profilo, contributi, recensioni, segnalazioni: a tempo indeterminato finché esistono; li modifichi o cancelli dal tuo profilo (da loggato). Se cancelli l'account, i contributi che hai pubblicato non vengono cancellati con esso: restano online senza firma (scollegati dall'account) — cancellali prima dal profilo se non vuoi lasciarli. Per contenuti pubblicati da altri, scrivici a micheleloi@skillagram.ai.
- Avatar: finché il profilo esiste. (Gli zip dei plugin non vengono conservati: l'upload non è attivo.)
- Messaggi di chat: conservati al massimo 6 mesi, poi cancellati automaticamente da un processo giornaliero (limitazione della conservazione, art. 5.1.e GDPR — meno dati conservati, minore esposizione in caso di violazione). In ogni caso, se cancelli l'account i messaggi che hai inviato vengono eliminati (in cascata) anche prima; quelli dell'altro partecipante restano fino alla scadenza dei 6 mesi.
- Recensioni e segnalazioni: legate al tuo account; non raccogliamo un'email separata per loro. Le modifichi o cancelli dal tuo profilo (da loggato).
- Voto "Utile": a tempo indeterminato (coppia anonima).
- Sandbox "Provala": non conserviamo nulla.
- Log di accesso del VPS (con IP): circa 14 giorni (rotazione automatica), poi cancellati. Log di autenticazione Supabase: gestiti dalla piattaforma Supabase secondo la sua policy.
Dove vivono i dati (destinatari)
Per erogare il servizio ci avvaliamo dei seguenti destinatari. Dove i dati escono dallo Spazio Economico Europeo (SEE), il trasferimento è coperto dalle garanzie indicate (Clausole Contrattuali Tipo della Commissione UE — "SCC" — e/o EU-US Data Privacy Framework — "DPF").
- Supabase, Inc. (USA) — responsabile del trattamento. Database, autenticazione e storage. Il database Postgres è ospitato nella regione UE (Irlanda, eu-west-1) e vi resta; tuttavia i log tecnici e alcune componenti realtime sono elaborati negli USA. Trasferimento extra-UE coperto da SCC.
- Anthropic, PBC (USA) — responsabile del trattamento. Genera le risposte dell'assistente AI ("bot guida") tramite l'API commerciale di Claude. I dati dell'API non sono usati per l'addestramento; conservazione standard di input/output 30 giorni (periodi maggiori solo per contenuti segnalati per sicurezza). Trasferimento extra-UE coperto da SCC.
- Resend, Inc. (USA) — responsabile del trattamento. Invio delle email transazionali (notifiche al gestore e, in futuro, le notifiche di "nuovo follower"). Tutti i dati, inclusi metadati e log delle email, sono archiviati negli Stati Uniti, a prescindere dalla regione di invio selezionata. Trasferimento coperto da EU-US Data Privacy Framework (DPF), con SCC come garanzia di riserva.
- easyname GmbH (Austria, UE) — responsabile del trattamento. Hosting/VPS. Il server è fisicamente a Vienna (Austria), quindi nell'UE. I log di accesso del web server (che includono l'IP del visitatore) sono conservati circa 14 giorni. Nessun trasferimento extra-UE.
- Google LLC (USA) — titolare autonomo del trattamento (non nostro responsabile). Solo se scegli "Accedi con Google". In questo flusso Google agisce come titolare autonomo: riceve e ci restituisce email, nome e foto profilo secondo le proprie condizioni privacy. Google LLC è certificata EU-US Data Privacy Framework (DPF), con SCC come garanzia di riserva.
Caso a parte — sandbox AI "porta la tua chiave" (BYO-key). Nella sandbox Provala puoi selezionare provider AI di terze parti (Anthropic, OpenAI, DeepSeek, Google Gemini, Mistral o un endpoint personalizzato), alcuni fuori dall'UE. In quel caso questi provider non sono nostri destinatari: è il tuo browser a inviare i dati direttamente al provider con la tua chiave, sotto la tua responsabilità e secondo le condizioni del provider scelto. Un motivo in più per pseudonimizzare prima (es. DeepSeek, Cina).
I tuoi diritti
- Accedere ai tuoi dati — quello che hai pubblicato è già visibile; per un export macchina-leggibile, scrivici.
- Rettificare — modifichi o cancelli i tuoi contributi (skill, articoli, recensioni, segnalazioni) dal tuo profilo, da loggato.
- Cancellare — cancelli l'account da solo, dal tuo profilo («Cancella il mio account»); i contenuti dal profilo o su richiesta scrivendoci.
- Opporti / limitare — non c'è marketing, profilazione o decisione automatizzata.
- Portabilità — su richiesta.
- Reclamo al Garante per la protezione dei dati personali (garanteprivacy.it).
Per esercitare un diritto, scrivi a micheleloi@skillagram.ai. Tempo di risposta tipico: 2-5 giorni lavorativi (è un prototipo gestito a tempo perso).
Cookie e memoria del browser
Il sito non imposta cookie HTTP e non usa cookie di tracciamento di terze parti. Usa la memoria locale del browser (localStorage/sessionStorage) per il funzionamento:
skillagram.auth — la tua sessione di accesso, per restare connesso fra le visite.
skillagram_lang — la lingua scelta (it/en).
skillagram_active_community — la community attiva.
skillagram_lang_redirected — flag tecnico anti-loop di reindirizzamento lingua; muore alla chiusura scheda.
skillagram_key_<fornitore> — la tua chiave API nella sandbox; muore alla chiusura scheda; non ci arriva mai.
- identificativo voti "Utile" — stringa anonima per non far votare due volte lo stesso browser.
Tutta memoria di prima parte, niente analytics. Si cancella svuotando i dati del sito.
Minori
Il prototipo è pensato per professionisti del diritto. In Italia l'età per il consenso digitale autonomo ai servizi della società dell'informazione è di 14 anni (art. 8 GDPR, abbassato dal D.lgs. 101/2018); coerentemente, non raccogliamo volontariamente dati di minori di 14 anni. Se ti accorgi che un contenuto riguarda un minore o è stato pubblicato da un minore, segnalacelo scrivendo a micheleloi@skillagram.ai.
Modifiche a questa pagina
Se cambiano i fornitori o le finalità di trattamento, questa pagina viene aggiornata. Il codice del sito è pubblico (AGPL-3.0) e la storia delle modifiche è ispezionabile nel repository.
Parte 2 — Sicurezza (l'architettura sotto)
L'idea: te lo spiego in modo che, anche senza essere uno sviluppatore, tu possa capire da chi dipendi quando usi il sito, dove sta il rischio, e perché certe cose le abbiamo fatte in un certo modo.
1. Il sito che vedi (frontend)
Pagine HTML statiche + JavaScript e CSS, servite da un VPS easyname (deploy via rsync; dominio skillagram.ai).
- Repo pubblico AGPL-3.0: puoi verificare riga per riga cosa fa il sito.
- Accesso login-first: catalogo e sandbox pubblici, ma per partecipare serve un account. La sessione è riconosciuta fra le visite (token in
localStorage).
- La sandbox "Provala" non passa da un nostro server: il browser parla direttamente col fornitore AI scelto, con la tua chiave (in
sessionStorage, che muore alla chiusura scheda). La Content-Security-Policy consente connessioni verso host HTTPS (per più fornitori + endpoint custom): nessun proxy Skillagram, una sola destinazione per esecuzione, verificabile in DevTools.
- Niente Google Analytics, Meta Pixel, Hotjar, fingerprinting.
2. Il database + archiviazione + autenticazione
Un PostgreSQL gestito da Supabase, regione Irlanda (eu-west-1, UE). Conserva account, profili, contributi, recensioni, segnalazioni, messaggi di chat (in chiaro), follow/blocchi/segnalibri/community, voti, conferme di segnalazione. L'archiviazione tiene gli avatar (spazio pubblico in lettura); gli zip dei plugin non vengono caricati né conservati (l'upload non è attivo).
- Autenticazione gestita da Supabase Auth (link magico via email + Google OAuth). Nessuna password digitata o conservata lato browser.
- Row Level Security (RLS): regole esplicite sul database. La chat è leggibile solo dai due partecipanti; i contributi pubblici sono leggibili da tutti e modificabili/cancellabili solo dal loro autore; blocchi e segnalibri sono privati.
- Il browser usa una chiave pubblica (publishable key): la sicurezza non sta nel nasconderla, sta nelle RLS.
- Esiste una chiave segreta (
service_role) che scavalca le RLS. Vive solo nelle Edge Function + nel cassetto del maintainer. È questa che rende i messaggi di chat tecnicamente leggibili dal maintainer — fatto dichiarato, non nascosto.
3. I bot guida AI
I profili Avv. Demo Rossi e Avv.ssa Demo Bianchi sono bot: quando scrivi loro, una Edge Function (demo-reply) invia il tuo messaggio + le ultime battute ad Anthropic (Claude). La chiave Anthropic è un segreto del backend, mai esposta al browser. C'è un limite (10 risposte per conversazione) e un rate limit. È elaborazione lato server: non è la sandbox zero-server.
4. L'invio email
Resend spedisce le notifiche al maintainer su nuovi profili/skill. Niente newsletter, niente marketing. L'API key di Resend è un segreto del progetto.
5. Le notifiche di chat
Un badge dei messaggi non letti, avvisi toast, notifiche del browser (opt-in) e aggiornamento in tempo reale via Supabase Realtime. Servono a sapere quando arriva un messaggio; non sono newsletter né tracciamento.
Cosa non c'è (per scelta)
- Niente Google Analytics, Meta Pixel, Hotjar.
- Niente "accedi con Facebook" (l'accesso è link magico o Google).
- Niente newsletter, CRM, marketing, profilazione, decisione automatizzata.
- Niente cookie HTTP di tracciamento.
- Nella sandbox BYO-key, niente nostro server in mezzo.
Cosa devi sapere se vuoi parlare di un caso reale
Vale per le segnalazioni di errore, per la chat e per i bot guida:
⚠️ Non incollare nomi di clienti, controparti, numeri di fascicolo o dati personali identificativi. Pseudonimizza il caso prima (togli i dati identificativi).
Per ridurre il rischio ti consigliamo Recode IT (recode.micheleloi.pro). Recode gira interamente nel tuo browser — non manda niente a server esterni. Sostituisce i nomi reali con pseudonimi coerenti (es. Mario Rossi → Tizio) e permette di ri-sostituire al contrario. Attenzione al concetto: è pseudonimizzazione, non anonimizzazione — il testo resta un dato personale ai sensi del GDPR. Serve a ridurre il rischio (soprattutto in caso di violazione) e a documentare la diligenza, non a eliminare gli obblighi. La protezione riguarda il caso, non il tuo nome: i contributi ora sono sempre firmati.
Trust model: di chi ti fidi quando usi questo sito
In ordine di criticità:
- Del maintainer del prototipo (Michele Loi) — ha la chiave
service_role e può tecnicamente vedere/modificare/cancellare ciò che è nel database, inclusi i messaggi di chat. Non ha accesso a quello che fai nella sandbox BYO-key (chiave, testo, risposta): non gli arrivano mai.
- Di Supabase come responsabile (database, auth, storage); regione Irlanda (UE).
- Di Anthropic quando usi i bot guida, e di Resend per le email.
- Di Google se scegli "Accedi con Google".
- Dei fornitori AI nella sandbox — solo quando la usi, e solo per i dati che tu gli mandi.
- Di easyname che ospita il sito (vede l'IP che scarica le pagine).
Il modello di trust di Skillagram non è "siamo un cerchio chiuso e privato": è "il codice è aperto, l'architettura è ispezionabile, e ti diciamo con precisione cosa è leggibile e da chi". Ti fidi della verificabilità e dell'onestà del confine, non della nostra parola.
Limiti onesti
- È un prototipo gestito a tempo perso. Niente SLA, niente garanzia di uptime.
- La chat non è cifrata end-to-end (i bot guida devono leggere il messaggio per rispondere, e la lettura server-side serve a notifiche e moderazione). Per il materiale di causa, pseudonimizza.
- Niente certificazione ISO 27001, SOC 2.
- Niente bug bounty formale, ma le segnalazioni di sicurezza sono benvenute.
- Free/entry tier dei fornitori: volumi alti potrebbero introdurre rate limit.
Come segnalare un problema di sicurezza
Se trovi un bug di sicurezza (es. leggere/modificare messaggi altrui senza consenso, estrarre email private, un'iniezione SQL o XSS, o un modo per cui la sandbox manda dati a una destinazione diversa da quella scelta):
- Non sfruttarlo. Anche solo per curiosità.
- Manda una mail a
micheleloi@skillagram.ai con subject "Security report — Skillagram" e descrizione passo-passo. Aspetta una risposta prima di parlarne in pubblico.
- Diamo credito nei commit di fix a chi segnala (o anonimato, se preferisci).