UncannyPrompt: condivisione e versioning dei Prompt AI Una piattaforma open-source e self-hosted (con alternativa SaaS gratuita) pensata per aiutare i team a gestire i propri AI prompt con maggiore controllo

UncannyPrompt: Open-Source AI Prompt Management for Teams

Negli ultimi due anni, i prompt sono entrati nella routine quotidiana di molti team che lavorano con l’AI generativa. Non come disciplina formale, e non soltanto nel senso di “prompt engineering” che vediamo spesso in talk e articoli: più semplicemente, le persone hanno iniziato a conservare (e in molti casi a condividere tra loro) le istruzioni che funzionavano.

Di solito questo approccio “save and share” nasce così, senza un piano preciso. Un prompt scritto per riassumere i ticket di supporto comincia a girare nel team e viene usato da tutti; un prompt per la code review, messo a punto dopo qualche tentativo, diventa una pratica standard prima di chiudere il lavoro; un set di regole stilistiche preparato dall’Head of Marketing finisce per rappresentare il tone of voice dell’organizzazione e viene condiviso con tutto il reparto. All'inizio sembra solo buon senso: si comincia a tenere da parte quello che funziona meglio e, ove necessario, si mette a disposizione degli altri. Con il passare del tempo, però, quel materiale inizia a circolare in modo meno ordinato di quanto vorremmo: inevitabilmente, quei prompt vengono copiati all'interno di strumenti diversi, ritoccati da persone diverse e riutilizzati in workflow che, nel frattempo, sono diventati parte del lavoro quotidiano. Quello che all’inizio sembrava un appunto temporaneo finisce per assumere un peso molto più concreto.

Il problema è che molti team continuano a trattare questi prompt come note sparse: restano nelle cronologie delle chat, in documenti privati, nei preferiti del browser, nelle wiki interne, nei drive condivisi, in pagine Notion, messaggi Slack, issue GitHub o, peggio ancora, nella memoria della persona che due mesi prima aveva scritto “la versione buona”. Il risultato di questo tipo di approccio è che, quando quel prompt va utilizzato o aggiornato, nessuno è più sicuro di quale sia la versione corrente.

Questo tipo di problema non rappresenta certo una novità per chi sviluppa software: si tratta infatti di un problema molto simile a quello che esisteva con il codice sorgente prima che i sistemi di source control diventassero uno standard. File copiati, versioni alternative, modifiche non tracciate, dubbi su quale fosse la versione corretta: non a caso Git e gli altri SCM sono diventati parte dell’infrastruttura di base di qualsiasi team di sviluppo. Proprio per questo motivo, gli sviluppatori tendono a sentire meno il problema: sono abituati a versionare ciò che conta, e non di rado finiscono per mettere anche i prompt sotto source control; per chi non usa abitualmente questi strumenti, l'alternativa più pratica è costituita dai servizi di cloud file hosting & sharing come Google Drive, Microsoft OneDrive e piattaforme similari. C'è persino chi si riduce a utilizzare Password Manager come LastPass o BitWarden, che nel bene e nel male offrono una suddivisione di elementi (entry) classificabili per tenant, workspace, categorie e tag, adattabile senza troppe difficoltà anche ai prompt.

Tutti questi approcci (Git/Gist, cloud drive, password manager) possono sicuramente funzionare, ma restano soluzioni di compromesso, nate per soddisfare esigenze diverse; a ben vedere, infatti, nessuno di questi meccanismi fornisce tutte le caratteristiche necessarie per gestire prompt AI in modo efficiente, tra cui: un catalogo strutturato, possibilmente organizzato per team, progetto, cartella, tag e stato del prompt; uno storico delle versioni, pensato per distinguere le modifiche significative dai semplici aggiornamenti di metadati; variabili e template riutilizzabili, così da evitare copie quasi identiche dello stesso prompt con valori cambiati a mano; permessi granulari, non solo a livello di file o cartella, ma anche su prompt, progetti e librerie condivise; link pubblici revocabili e con scadenza, utili quando un prompt deve essere condiviso fuori dal team senza perdere completamente il controllo; audit trail e tracciabilità, per sapere chi ha creato, modificato, condiviso, ripristinato o utilizzato un prompt; un processo di risoluzione delle variabili chiaro e ripetibile, con valori diversi per utente, progetto, workspace o organizzazione; un modello pensato per il riuso, non per archiviare file generici o frammenti di testo scollegati tra loro; e così via.

UncannyPrompt nasce per colmare questo vuoto: uno spazio strutturato per organizzare, versionare, condividere, risolvere e riutilizzare prompt AI tra team, tenant, workspace e progetti, consentendone la gestione sotto forma di asset condivisi, versionati e governabili.

Il progetto è disponibile in due modalità: le organizzazioni che vogliono il pieno controllo possono installarlo come applicazione open-source self-hosted, mentre i team che preferiscono non gestire un proprio deployment possono usare la versione SaaS gestita, con piano gratuito disponibile, attraverso il sito ufficiale uncannyprompt.com.

Il repository open-source è disponibile su GitHub all’indirizzo github.com/Ryadel/UncannyPrompt, e il progetto è rilasciato con licenza MIT, quindi può essere ispezionato, installato in self-hosting, modificato e adattato da chiunque.

Che cos’è UncannyPrompt?

Le prime versioni di molti prompt utili vengono scritte in fretta. Qualcuno deve riassumere una conversazione con un cliente, normalizzare una specifica disordinata, generare un piano di test, estrarre rischi da un documento, riscrivere contenuti con uno stile specifico o produrre una checklist a partire da procedure interne. Il prompt funziona, viene copiato, modificato un po’, condiviso con un collega, incollato in un altro strumento e poi adattato di nuovo.

Va benissimo nella fase di sperimentazione. Diventa scomodo quando quel prompt si trasforma in qualcosa da cui il team dipende.

Quando i prompt iniziano a supportare attività ripetibili, i team hanno bisogno di alcune cose che appunti generici e cronologie delle chat non offrono bene: ownership, storico, controllo degli accessi, variabili, regole di condivisione, auditability e un modo per capire quale versione sia davvero quella da usare.

UncannyPrompt offre ai team uno spazio intenzionale in cui gestire questa conoscenza legata ai prompt, invece di lasciarla crescere in modo informale tra strumenti privati e documenti sparsi.

Self-hosted o SaaS

UncannyPrompt supporta due modelli di adozione, perché non tutti i team hanno gli stessi requisiti operativi.

La versione self-hosted è pensata per i team che vogliono controllo diretto su infrastruttura, dati, autenticazione, configurazione, backup e deployment. Può essere installata dal repository open-source ed eseguita con Docker Compose, oppure adattata a un ambiente container di produzione quando il progetto supera la fase di valutazione locale.

La versione SaaS, disponibile su uncannyprompt.com, è pensata per i team che vogliono le stesse funzionalità di gestione dei prompt senza mantenere server, database, upgrade o ambiente di hosting.

In entrambi i casi, lo scopo resta lo stesso: trattare i prompt come asset riutilizzabili del team, non come snippet persi dentro workflow personali.

Funzionalità principali

UncannyPrompt organizza i prompt attraverso una gerarchia chiara: i tenant contengono workspace, i workspace contengono progetti, e i progetti contengono cartelle e prompt. Questa struttura consente di separare librerie di prompt personali, di team e di organizzazione, mantenendo esplicite ownership e regole di accesso.

I prompt possono essere taggati, aggiunti ai preferiti, fissati in evidenza, versionati, condivisi, copiati, ripristinati, risolti con variabili ed esposti tramite link pubblici quando necessario. L’obiettivo è semplificare il più possibile la gestione dei prompt, agevolando il meccanismo di utilizzo, riuso e condivisione tipico dei team che lavorano con le AI generative, mettendo a disposizione le seguenti funzionalità:

  • Catalogo prompt: organizza i prompt per tenant, workspace, progetto e cartella, con tag, note, preferiti, pin e metadati di stato.
  • Storico versioni: conserva le modifiche significative dei prompt tramite versioni immutabili, con possibilità di ripristinare versioni precedenti quando serve.
  • Risoluzione delle variabili: definisce placeholder riutilizzabili e li risolve per ambito, ad esempio prompt, progetto, workspace, tenant, utente o default di sistema.
  • Condivisione e controllo accessi: combina appartenenza al tenant con grant a livello di progetto, cartella e singolo prompt.
  • Link pubblici: espone prompt selezionati tramite URL pubblici revocabili e con scadenza.
  • Autenticazione: supporta sessioni browser, API key, Google OAuth, Microsoft Entra ID e GitHub OAuth.
  • Hardening di sicurezza: include protezione CSRF, rate limiting, secure headers, hashing dei token, variabili segrete cifrate e Swagger autenticato.
  • Audit e observability: registra le attività importanti tramite eventi di audit, log strutturati, strumentazione OpenTelemetry e health check.

Versioning dei prompt

Il versioning è una delle prime cose che mancano quando i prompt escono dalla fase di sperimentazione.

Un prompt può nascere come una semplice istruzione, poi ricevere un formato di output migliore, più vincoli, un tono più preciso, un nuovo passaggio di validazione o una sezione per gestire casi limite scoperti nell’uso reale. Queste modifiche contano. Se un prompt guida un workflow ripetibile, il team dovrebbe poter capire come si è evoluto e, quando serve, tornare a una versione precedente.

UncannyPrompt crea la prima versione quando viene creato un prompt. In seguito, una nuova versione viene registrata quando cambia il contenuto del prompt o quando vengono forniti metadati espliciti di versione, come una label o un changelog.

In questo modo lo storico resta concentrato sulle modifiche significative, invece di riempirsi con ogni piccolo aggiornamento dei metadati. Quando viene ripristinata una versione precedente, il contenuto storico diventa il contenuto corrente del prompt attraverso il normale flusso di versioning, senza riscrivere la cronologia passata.

Template riutilizzabili con variabili

Molti prompt sono utili perché la loro struttura resta la stessa mentre cambiano alcuni valori. Un prompt di supporto può richiedere il nome del cliente, il testo del ticket, l’area di prodotto o la policy di escalation. Un prompt di sviluppo può dipendere dal linguaggio di programmazione, dalle convenzioni del repository, dalla versione del framework o dallo stile di testing preferito. Un prompt marketing può cambiare in base ad audience, canale, campagna o tono.

Copiare e modificare questi valori a mano funziona per un po’, poi diventa una fonte di errori. Rende anche i prompt più difficili da condividere, perché ogni team finisce per mantenere una propria copia leggermente diversa.

UncannyPrompt supporta definizioni di variabili e valori di variabile con scope. Quando un prompt viene risolto, il sistema applica un modello di precedenza esplicito, dal valore più specifico fino ai default più generali. La risoluzione è in sola lettura: produce un testo del prompt utilizzabile senza modificare il prompt originale e senza creare una nuova versione.

I valori delle variabili segrete vengono cifrati prima della persistenza e decifrati solo quando necessario per una risoluzione autorizzata. È utile quando un template di prompt richiede contesto sensibile, ma il valore sottostante non deve essere archiviato o visualizzato in chiaro.

Condivisione e controllo accessi

Condividere prompt sembra semplice finché i team non devono controllare chi può vedere, modificare, copiare o esporre un prompt fuori dall’organizzazione. Nei gruppi piccoli, la condivisione informale può bastare. In ambienti più grandi, soprattutto quando i prompt includono procedure interne o template sensibili, le regole di accesso devono essere esplicite.

UncannyPrompt separa autenticazione e autorizzazione. Gli utenti possono accedere tramite identity provider configurati o API key, mentre i permessi vengono applicati localmente tramite ruoli di piattaforma, ruoli tenant e grant specifici sulle risorse.

L’appartenenza al tenant definisce l’accesso di base. Gli share grant forniscono accesso più preciso a progetti, sottoalberi di cartelle o singoli prompt. Listing e controlli di accesso vengono applicati tramite servizi applicativi e query di autorizzazione a livello SQL, riducendo il rischio di esposizione accidentale di dati tra tenant diversi.

I link pubblici forniscono accesso anonimo a prompt selezionati, ma vengono comunque validati con attenzione. I link possono scadere, essere revocati o eliminati, e gli accessi pubblici riusciti vengono registrati nell’audit trail.

Versione self-hosted

Il modo più rapido per provare UncannyPrompt in locale è usare Docker Compose:

Per impostazione predefinita, l’applicazione web è esposta su:

Per lo sviluppo locale, SQL Server può essere eseguito in Docker mentre la WebApp viene avviata dall’IDE o da riga di comando:

Questo offre agli sviluppatori un percorso rapido per valutare l’applicazione, ispezionare il codebase e adattare il modello di deployment al proprio ambiente.

Stack tecnologico

UncannyPrompt è sviluppato con .NET 10, ASP.NET Core Razor Pages, EF Core, SQL Server, Tailwind CSS, DaisyUI, Alpine.js, Serilog, OpenTelemetry, xUnit e Docker Compose.

Il codebase segue un’architettura a livelli. Il layer Domain contiene entità ed enum. Il layer Application contiene casi d’uso, DTO, interfacce dei servizi e logica di autorizzazione. Il layer Infrastructure implementa persistenza EF Core, migrazioni SQL Server, repository, configurazione, hashing e cifratura. La WebApp ospita UI Razor Pages, controller REST, autenticazione, middleware, Swagger e asset statici.

Questa struttura è volutamente convenzionale. Per uno strumento che gestisce conoscenza operativa, preferisco confini noiosi e comprensibili ad astrazioni troppo brillanti. L’applicazione deve essere facile da ispezionare, facile da eseguire in locale e facile da adattare quando un team deve integrarla con la propria infrastruttura.

Open source e licenza MIT

L’edizione self-hosted di UncannyPrompt è open source e rilasciata con licenza MIT. Questo consente a sviluppatori e organizzazioni di usarla, ispezionarla, modificarla, installarla in self-hosting e adattarla ai propri workflow con vincoli di licenza minimi.

Questo è importante per i team che vogliono mantenere sotto il proprio controllo librerie di prompt, procedure interne, template sensibili e conoscenza operativa. Una libreria di prompt può rivelare molto su come lavora un’azienda: procedure di supporto, criteri decisionali, percorsi di escalation, regole di gestione dei clienti, terminologia interna, convenzioni di coding, controlli di compliance. Mantenere questa conoscenza visibile e governabile conta più di quanto possa sembrare all’inizio.

A chi si rivolge

UncannyPrompt è utile per i team che usano prompt AI come parte di attività ripetibili, soprattutto quando quei prompt vengono condivisi, migliorati, revisionati e riutilizzati da più di una persona.

I casi d’uso tipici includono:

  • team software che gestiscono prompt per code review, documentazione, generazione di test, refactoring e release note;
  • team di supporto che usano prompt per riassumere ticket, classificare problemi, preparare risposte o estrarre segnali di escalation;
  • team content e marketing che mantengono prompt per controlli sul tone of voice, bozze di campagne, localizzazione e repurposing;
  • team product che lavorano con feedback utenti, note di ricerca, specifiche e analisi competitiva;
  • consulenti e agenzie che hanno bisogno di librerie di prompt riutilizzabili tra clienti, progetti o team interni;
  • team di automazione interna che vogliono template di prompt tracciabili, versionati e più facili da governare.

Può anche essere un utile progetto di riferimento per sviluppatori interessati a una moderna applicazione .NET con architettura a livelli, setup basato su Docker, persistenza SQL Server, integrazione dell’autenticazione, servizi applicativi, test, hardening di sicurezza e configurazione orientata alla produzione.

Conclusioni

I prompt non sono più soltanto frammenti di testo temporanei. Per molti team stanno diventando asset riutilizzabili, che meritano struttura, storico, controllo accessi e auditability.

UncannyPrompt nasce attorno a questa idea. Offre uno spazio condiviso per librerie di prompt, versioning, variabili, regole di accesso, link pubblici e visibilità operativa, lasciando ai team la scelta tra un’edizione open-source self-hosted e una versione SaaS gestita.

Se il tuo team usa già prompt nel lavoro quotidiano, il passo successivo di solito non è scriverne altri. È rendere quelli buoni più facili da trovare, migliorare, riutilizzare e controllare.

Riferimenti

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Leave a Reply

Your email address will not be published. Required fields are marked *


Il periodo di verifica reCAPTCHA è scaduto. Ricaricare la pagina.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.