Context
Riuniamo le fonti autorizzate rilevanti per il progetto.
Organizarea muncii Dezvoltare & demonstrații
Taskin esplora la trasformazione delle discussioni e del contesto di progetto in impegni, priorità e passi di lavoro. L’obiettivo è mantenere il collegamento tra un compito e la conversazione da cui è nato.
Taskin
Riuniamo le fonti autorizzate rilevanti per il progetto.
Identifichiamo le decisioni e le cose da fare per la verifica da parte del team.
Organizziamo le responsabilità e il monitoraggio dei passaggi confermati.
Riconstituzione delle decisioni e delle priorità senza perdere il contesto.
Proposte di attività tratte dalle discussioni, revisionate prima dell’uso.
Una direzione per il coordinamento tra persone e agenti AI.
Le funzionalità e le connessioni sono in sviluppo. Non presumiamo che qualsiasi decisione estratta automaticamente sia corretta o approvata.
Taskin in dettaglio
Taskin è una board di lavoro che ha una particolarità: non aspetta che le inseriate le attività. Legge ciò che è già accaduto — chiamate, mail, calendario, messaggi, commit, sessioni di lavoro — e propone ciò che dovrebbe essere fatto, insieme alla prova da cui è emersa la proposta.
La distinzione che costruisce è tra ciò che è stato osservato e ciò che è stato deciso. Un’attività proposta automaticamente non diventa un impegno finché una persona non conferma il responsabile, la scadenza e la formulazione. Questa regola non è una promessa di interfaccia, ma una restrizione imposta nel database: un agente non può chiudere un’attività, e qualsiasi scrittura che ne chiuda una deve dichiarare chi l’ha richiesta. Una scrittura senza nome viene rifiutata.
Lo usiamo su noi stessi. Quasi tutto ciò che è interessante in esso è apparso perché ci mancava qualcosa di concreto nella gestione della nostra azienda, e i commenti nel codice citano conteggi reali in produzione e incidenti con data — incluso uno in cui una routine giornaliera è rimasta silenziosa per undici giorni di fila senza che nessuno lo sapesse.
50 percorsi su 49 pagine: team, cicli, progetti, attività, inbox, roadmap, piano della giornata, clienti con dossier e storico, spese ricorrenti, fatturazione, timesheet e sessioni di lavoro, performance, chat interna, amministrazione e membri. Il database ha 90 tabelle, costruite da 81 migrazioni.
Routine programmate sul server, non timer nel processo — perché un timer si perde a ogni redeploy. Ogni esecuzione passa attraverso un wrapper che scrive il log e tratta persino una risposta HTTP 200 come errore se porta un elenco di errori, con avviso su Telegram. Il wrapper esiste perché, prima, un comando che falliva in silenzio ha lasciato il briefing quotidiano morto per undici giorni.
14 strumenti via HTTP — lettura (elenco, ricerca, la mia coda, la coda degli agenti, riepilogo della board, persone, agenti, progetti) e scrittura (creazione, aggiornamento, assegnazione, spostamento, commento). Ogni token di accesso è legato a un profilo reale, quindi l’attività sulla board registra chi l’ha richiesta. Un agente AI e un collega lavorano sulla stessa lista, con le stesse regole.
Telegram, come bot proprietario con ascolto permanente, inclusa la trascrizione dei messaggi vocali. Quattro caselle di posta (tre Gmail e una Microsoft 365), lette esclusivamente in modalità lettura. Google Calendar. Chiamate telefoniche, tramite trunk SIP, incluse le chiamate di promemoria avviate dalla board. Obsidian. LinkedIn. I modelli passano attraverso un gateway proprietario compatibile con OpenAI, e il motore di esecuzione degli agenti utilizza un ciclo di strumenti su OpenRouter.
«Un agente non chiude un’attività» è una funzione nel database, non una frase in una descrizione di strumento. È arrivata lì perché la prima variante non funzionava: identificava l’attore in un modo che risultava vuoto per un servizio automatico, quindi la regola non si applicava da nessuna parte. Ora l’attore viene risolto da tre fonti successive e, se non si può stabilire, la richiesta viene rifiutata.
Dati e funzionamento
Dall’esplorazione all’implementazione
Non colleghiamo tutto. Una fonte — di solito la mail o Telegram — e un progetto reale, così da vedere sui dati reali cosa propone il sistema e quanto di ciò che propone è utile.
Il periodo in cui il sistema propone e il team solo conferma o respinge è quello che dice se vale la pena continuare. Una proposta respinta è altrettanto informativa quanto una accettata.
Chi può chiudere cosa, cosa significa una scadenza e cosa succede a un’attività senza responsabile. Qui si decide anche se gli agenti hanno il permesso di scrivere sulla board, e a quali condizioni.
Livraison tramite rsync verso una macchina, non un container: l’interfaccia come directory statiche servite da nginx, il collettore e il server MCP come servizi systemd. Il controllo di salute confronta il pacchetto servito con quello costruito e fa rollback se non coincidono.
È in produzione ed è la board con cui guidiamo la nostra azienda. I numeri: 566 commit, l’ultimo il 4 settembre 2026; 81 migrazioni che costruiscono 90 tabelle; 171 policy di accesso a livello di riga; 563 casi di test automatici in 38 file; 21 routine pianificate sul server più 9 loop nel processo; 14 strumenti MCP; 35 endpoint sul collettore. Ciò che non è: un servizio self-service. Non esiste un pulsante con cui un team esterno possa avviarlo da solo — si installa.
No, e la restrizione è nel database, non nell’interfaccia. Una funzione di tipo guardia impedisce a un agente di chiudere un’attività, e qualsiasi scrittura che ne chiuda una deve dichiarare l’attore; se l’attore non può essere stabilito, la richiesta viene respinta. Vale la pena dire anche perché la regola appare così: la prima versione identificava l’attore tramite una funzione che restituiva vuoto per un servizio automatico, quindi non si applicava da nessuna parte. Un audit interno l’ha trovata, e la migrazione che l’ha corretta spiega nel commento esattamente cosa non funzionava.
Davvero, con codice e con routine pianificata: Telegram (bot proprio, ascolto permanente, trascrizione dei messaggi vocali), quattro caselle di posta — tre Gmail e una Microsoft 365 — lette solo, Google Calendar, chiamate telefoniche tramite trunk SIP, Obsidian, LinkedIn, più sessioni di lavoro e attività git lette dal computer della persona. I modelli passano attraverso un gateway proprio compatibile OpenAI; il motore di esecuzione degli agenti gira su OpenRouter. Ciò che NON è connesso, nonostante la nostra pagina delle integrazioni lo mostri: Slack, GitHub, Jira, Notion, Figma, Zapier, Dropbox, Google Drive, Microsoft Teams, GitLab, Outlook. Ho cercato nel codice e non esiste alcuna riga per nessuno di questi. Quella pagina è una griglia di marketing e va corretta.
No, nonostante il nome di una schermata nell’app. Quella schermata è in realtà l’associazione di un dispositivo tramite codice QR, nello stile a cui il mondo è abituato da WhatsApp Web — da lì viene il nome. Non esiste alcuna chiamata a un API WhatsApp. Inoltre: quel flusso non è usato, e le sue tabelle sono vuote, cosa che constata persino la migrazione che ne ha rivisto i permessi.
La parte utile non è che abbiamo policy di accesso, ma che ne abbiamo trovato i buchi e li abbiamo riparati uno per uno, ogni migrazione spiegando cosa non funzionava. Un audit interno di agosto ha scoperto che tutte e tre le guardie per gli agenti erano inattive. Un’altra guardia si era rivelata fail-open — il controllo veniva saltato del tutto, non respinto — ed è stata invertita per fallire in chiusura. Il terzo problema era sottile e generale: in Postgres una nuova funzione è eseguibile implicitamente da tutti, quindi la concessione esplicita dei diritti non restringeva nulla; è stato verificato in produzione che una chiave anonima arrivasse nel corpo della funzione, poi è stato revocato il diritto implicito. A livello di repository, una guardia respinge i push diretti sul ramo principale e blocca i file di segreti, perché un repository privato su un account personale non può avere la protezione del ramo da GitHub.
Tre cose che preferiamo dire. I tipi generati per il database sono vecchi da gennaio e contengono tabelle di un progetto del tutto non correlato, il che ha imposto 101 conversioni di tipo forzate in 26 file — funziona, ma perde il controllo di compilazione proprio dove servirebbe. Il verificatore di stile segnala 161 errori ereditati e non blocca la consegna. E 36 test sono saltati nell’integrazione continua perché richiedono una chiave modello che lì non esiste. Nessuno dei tre blocca il prodotto; tutti e tre sono debito reale.
Tramite rsync, non container: l’interfaccia arriva in una directory statica servita da nginx, il collettore e il server MCP girano come servizi systemd. L’integrazione continua esegue i test e costruisce; la consegna parte solo se questi hanno superato il ramo principale, tramite un esecutore proprio che ha il permesso di eseguire esattamente due script e nient’altro. Ogni azione esterna nella pipeline è fissata sulla sua impronta completa, non su un’etichetta, dopo il compromesso di un’azione popolare nel marzo 2026. Il controllo di salute legge quale pacchetto sia referenziato dalla pagina servita e fa rollback se non è quello fresco — regola scritta dopo un incidente reale del 3 settembre 2026. Le migrazioni del database restano manuali, deliberatamente.
Esempio illustrativo
Uno scenario di utilizzo, senza dati del cliente o risultati commerciali attribuiti.
Una chiamata finisce con una promessa. Nessuno la scrive da nessuna parte, e dopo una settimana nessuno ricorda più né cosa è stato promesso, né a chi.
La chiamata entra nel board tramite una routine pianificata, come traccia con collegamento indietro alla fonte. Un loop la collega al dossier del cliente corretto e propone un’attività con responsabile e scadenza. La proposta resta proposta: la guardia nel database non permette a un agente di chiuderla, e la scrittura che dovrebbe chiuderla deve dichiarare chi l’ha richiesta.
Il compito appare con allegato il contesto da cui è risultato, così che un collega che non è stato nella chiamata possa capire che cosa deve essere fatto senza ricostruire la discussione. Una persona conferma il responsabile, la scadenza e la formulazione — oppure respinge la proposta, il che è altrettanto informativo.
Ce este necesar:Sursa trebuie conectată efectiv, cu acces autorizat, și trebuie să existe un acord al echipei asupra a ce înseamnă o sarcină atribuită. Sistemul nu presupune consimțământul nimănui.
Possibilità di collaborazione
Il collegamento delle fonti autorizzate, l’organizzazione delle informazioni e la revisione delle azioni da parte del team, con accesso separato per ruoli.
Definiamo un pilot attorno a un processo reale: utenti, dati, integrazioni, costi e criteri di accettazione. L’estensione segue dopo la valutazione del risultato.
Stabiliamo i requisiti di accessibilità, hosting, protezione dei dati e interoperabilità. Ogni connessione con servizi AGE o STISC richiede la validazione dell’ammissibilità, dell’accesso e delle approvazioni.
Questi sono scenari di adattamento, non dichiarazioni su contratti o partenariati esistenti. Le funzioni proposte si confermano nell’ambito di lavoro del progetto.
Discută un pilotUn assistente connesso alle informazioni della vostra attività, nei canali in cui vi scrivono i clienti.
PlatformăCronberry riunisce fonti autorizzate, conversazioni e relazioni in uno spazio di ricerca e coordinamento.
Dezvoltare & demonstrațiiMegaforms esplora la raccolta di risposte tramite moduli conversazionali, incluse risposte vocali e trascrizione.
Dezvoltare & demonstrațiiRaccontaci il tuo processo. Insieme stabiliamo cosa vale la pena costruire, cosa possiamo collegare e come verifichiamo il risultato.