Passer au contenu
megapromotingDiscutons
Produits Taskin

Organizarea muncii Développement & démonstrations

Ce que nous avons établi. Qui continue. Ce qui suit.

Taskin explore la transformation des discussions et du contexte de projet en engagements, priorités et étapes de travail. L’objectif est de maintenir le lien entre une tâche et la conversation dont elle est issue.

  1. 1Discuție și context
  2. 2Sarcini propuse
  3. 3Angajamente confirmate
Schemă explicativă ·Taskin

Taskin

De l’information au travail accompli.

01

Context

Nous réunissons les sources autorisées pertinentes pour le projet.

02

Angajamente

Nous identifions les décisions et les choses à faire pour vérification par l’équipe.

03

Continuitate

Nous organisons les responsabilités et le suivi des étapes confirmées.

Là où il devient utile.

Projets

La reconstitution des décisions et des priorités sans perdre le contexte.

Întâlniri

Propositions de tâches issues des discussions, révisées avant utilisation.

Operațiuni

Une direction pour la coordination entre les personnes et les agents IA.

Les fonctions et les connexions sont en développement. Nous ne supposons pas que toute décision extraite automatiquement soit correcte ou approuvée.

Taskin en détail

Ce que vous pouvez faire avec ce projet.

Taskin est un board de travail qui a une particularité : il n’attend pas que vous y saisissiez les tâches. Il lit ce qui s’est déjà passé — appels, mails, calendrier, messages, commits, sessions de travail — et propose ce qui devrait être fait, avec la preuve à partir de laquelle la proposition est apparue.

La distinction qu’il construit est entre ce qui a été observé et ce qui a été décidé. Une tâche proposée automatiquement ne devient pas un engagement tant qu’une personne ne confirme pas le responsable, le délai et la formulation. Cette règle n’est pas une promesse d’interface, mais une restriction imposée dans la base de données : un agent ne peut pas clôturer une tâche, et toute écriture qui en clôt une doit déclarer qui l’a demandée. Une écriture sans nom est refusée.

Nous l’utilisons sur nous-mêmes. Presque tout ce qui est intéressant dedans est apparu parce qu’il nous manquait quelque chose de concret dans l’exploitation de notre propre entreprise, et les commentaires dans le code citent des comptages réels en production et des incidents datés — y compris un cas où une routine quotidienne est restée silencieuse onze jours d’affilée sans que personne ne le sache.

01

Un board complet, pas une expérience

50 routes sur 49 pages : équipes, cycles, projets, tâches, boîte de réception, feuille de route, plan de la journée, clients avec dossier et historique, dépenses récurrentes, facturation, pointage et sessions de travail, performances, chat interne, administration et membres. La base comporte 90 tables, construites à partir de 81 migrations.

02

Le collecteur : 21 boucles qui amènent la réalité sur le board

Des routines programmées sur le serveur, pas des temporisateurs dans le processus — car un temporisateur se perd à chaque redeploy. Chaque exécution passe par un enveloppe qui écrit un journal et traite même une réponse HTTP 200 comme un échec si elle contient une liste d’erreurs, avec alerte sur Telegram. L’enveloppe existe parce qu’avant, une commande qui échouait silencieusement a laissé le briefing quotidien mort pendant onze jours.

03

Serveur MCP : la même file pour les personnes et pour les agents

14 outils via HTTP — lecture (listage, recherche, ma file d’attente, la file des agents, résumé du board, personnes, agents, projets) et écriture (création, mise à jour, attribution, déplacement, commentaire). Chaque jeton d’accès est lié à un profil réel, donc l’activité sur le board consigne qui l’a demandée. Un agent IA et un collègue travaillent sur la même liste, avec les mêmes règles.

04

Intégrations réelles, nommées explicitement

Telegram, comme bot propre avec écoute permanente, y compris la transcription des messages vocaux. Quatre boîtes mail (trois Gmail et une Microsoft 365), lues exclusivement en mode lecture. Google Calendar. Appels téléphoniques, via un tronc SIP, y compris des appels de rappel initiés par le board. Obsidian. LinkedIn. Les modèles passent par une passerelle propre compatible OpenAI, et le moteur d’exécution des agents utilise une boucle d’outils via OpenRouter.

05

La règle que les agents ne peuvent pas contourner

« Un agent ne clôt pas une tâche » est une fonction dans la base de données, pas une phrase dans une description d’outil. Elle y est arrivée parce que la première version ne fonctionnait pas : elle identifiait l’acteur d’une manière qui donnait un résultat vide pour un service automatisé, donc la règle ne s’appliquait nulle part. Maintenant, l’acteur est résolu à partir de trois sources successives et, si cela ne peut pas être établi, la demande est refusée.

Données et fonctionnement

Ce qui entre dans le système. Ce qu'il faut vérifier.

Isolation par organisation, vérifiée au niveau de la ligne
Toutes les 90 tables ont l’accès au niveau de la ligne activé, sous 171 politiques. La règle interne est écrite et sans exceptions : une nouvelle table signifie une politique d’accès dessus. La hiérarchie des rôles va de Super Admin à Admin, Membre et Employé.
Les sources se lisent, elles ne se reprennent pas
Les boîtes mail sont connectées en mode lecture par conception, pas par configuration. Les sessions de travail et l’activité git se lisent depuis l’ordinateur de la personne, pas depuis le serveur. Ce qui arrive sur le board est une trace, avec lien de retour vers la source, pas une copie de la correspondance.
Les données sont hébergées sur une infrastructure propre
Supabase hébergé par nous sur une machine Azure, pas Supabase Cloud — Postgres, Kong, Auth, Realtime et Storage dans Docker Compose. L’adresse de la base est un chemin sur son propre domaine. Les migrations sont appliquées manuellement, délibérément : il n’existe pas d’étape automatique qui touche au schéma de production.
Ce qu’un modèle de langage voit
Les boucles qui résument, relient et jugent envoient du contenu aux modèles. Quatre des neuf boucles internes se désactivent d’elles-mêmes, avec un message explicite dans le journal, quand il leur manque le credential — donc l’absence d’une clé arrête le flux, elle ne le fait pas tourner à moitié.

De l'exploration à l'implémentation

Comment nous préparons un projet avec Taskin.

01

Nous partons d’une seule source et d’un seul projet

Nous ne connectons pas tout. Une source — en général le mail ou Telegram — et un projet réel, pour voir sur des données réelles ce que le système propose et quelle part de ce qu’il propose est utile.

02

Nous comparons les propositions avec les décisions réelles

La période pendant laquelle le système propose et l’équipe ne fait que confirmer ou rejeter est celle qui indique s’il vaut la peine de continuer. Une proposition rejetée est aussi informative qu’une proposition acceptée.

03

Nous posons les règles de clôture et d’attribution

Qui peut clôturer quoi, ce qu’est un délai et ce qu’il advient d’une tâche sans responsable. C’est aussi ici que se décide si les agents ont le droit d’écrire sur le board, et dans quelles conditions.

04

Nous installons sur l’infrastructure convenue

La livraison se fait par rsync vers une machine, pas un conteneur : l’interface comme répertoires statiques servis par nginx, le collecteur et le serveur MCP comme services systemd. La vérification d’état compare le paquet servi à celui construit et revient en arrière s’ils ne correspondent pas.

Des questions qui méritent d’être clarifiées.

Est-ce un produit finalisé ou une démonstration ?

Il fonctionne en production et c’est le board sur lequel nous dirigeons notre entreprise. Les chiffres : 566 commits, le dernier le 4 septembre 2026 ; 81 migrations qui construisent 90 tables ; 171 politiques d’accès au niveau des lignes ; 563 cas de test automatisés dans 38 fichiers ; 21 routines planifiées sur le serveur plus 9 boucles dans le processus ; 14 outils MCP ; 35 endpoint sur le collecteur. Ce que ce n’est pas : un service en libre-service. Il n’existe pas de bouton permettant à une équipe externe de le lancer seule — il s’installe.

Décide-t-il automatiquement qui travaille ?

Non, et la restriction est dans la base de données, pas dans l’interface. Une fonction de type garde empêche un agent de clôturer une tâche, et toute écriture qui en clôture une doit déclarer l’acteur ; si l’acteur ne peut pas être établi, la requête est refusée. Il vaut aussi la peine d’expliquer pourquoi la règle est ainsi : la première version identifiait l’acteur par une fonction qui renvoyait vide pour un service automatique, donc elle ne s’appliquait nulle part. Un audit interne l’a trouvée, et la migration qui l’a corrigée explique en commentaire exactement ce qui ne fonctionnait pas.

À quoi se connecte-t-il, concrètement ?

En vrai, avec du code et une routine planifiée : Telegram (bot propre, écoute permanente, transcription des messages vocaux), quatre boîtes mail — trois Gmail et une Microsoft 365 — en lecture seule, Google Calendar, appels téléphoniques via un trunk SIP, Obsidian, LinkedIn, plus les sessions de travail et l’activité git lues depuis l’ordinateur de la personne. Les modèles passent par une passerelle propre compatible OpenAI ; le moteur d’exécution des agents fonctionne sur OpenRouter. Ce qui n’est PAS connecté, bien que notre page d’intégrations l’affiche : Slack, GitHub, Jira, Notion, Figma, Zapier, Dropbox, Google Drive, Microsoft Teams, GitLab, Outlook. Nous avons cherché dans le code et il n’existe aucune ligne pour aucun d’eux. Cette page est une grille marketing et doit être corrigée.

Existe-t-il une intégration WhatsApp ?

Non, malgré le nom d’un écran dans l’application. Cet écran correspond en fait à l’appairage d’un appareil via code QR, dans le style auquel les gens sont habitués avec WhatsApp Web — d’où le nom. Il n’existe aucun appel vers une API WhatsApp. Plus encore : ce flux n’est pas utilisé, et ses tables sont vides, ce que constate même la migration qui a revu leurs permissions.

Qu’en est-il de la sécurité, au-delà des déclarations ?

L’utile n’est pas que nous ayons des politiques d’accès, mais que nous ayons trouvé les failles et les ayons réparées une à une, chaque migration expliquant ce qui ne fonctionnait pas. Un audit interne d’août a découvert que les trois gardes pour les agents étaient toutes inertes. Une autre garde s’est révélée fail-open — la vérification était entièrement sautée, pas refusée — et a été inversée pour échouer fermé. Le troisième problème était subtil et général : dans Postgres, une nouvelle fonction est exécutable par défaut par tout le monde, donc l’octroi explicite de droits ne restreignait rien ; on a vérifié en production qu’une clé anonyme arrivait dans le corps de la fonction, puis on a révoqué le droit par défaut. Au niveau du dépôt, une garde refuse les push directs sur la branche principale et bloque les fichiers de secrets, car un dépôt privé sur un compte personnel ne peut pas avoir de protection de branche de la part de GitHub.

Qu’est-ce qui n’est pas terminé ?

Trois choses que nous préférons dire. Les types générés pour la base de données sont obsolètes depuis janvier et contiennent des tables d’un projet totalement sans rapport, ce qui a forcé 101 conversions de type forcées dans 26 fichiers — cela fonctionne, mais cela fait perdre la vérification à la compilation précisément là où elle serait utile. Le vérificateur de style signale 161 erreurs héritées et ne bloque pas la livraison. Et 36 tests sont sautés dans l’intégration continue parce qu’ils nécessitent une clé de modèle qui n’y existe pas. Aucun n’arrête le produit ; les trois relèvent d’une dette réelle.

Comment s’installe-t-il et à quel point la livraison est-elle sûre ?

Par rsync, pas par conteneur : l’interface arrive dans un répertoire statique servi par nginx, le collecteur et le serveur MCP tournent comme services systemd. L’intégration continue exécute les tests et construit ; la livraison ne démarre que si ceux-ci ont réussi sur la branche principale, via un exécuteur propre qui a le droit d’exécuter exactement deux scripts et rien d’autre. Chaque action externe dans le pipeline est fixée à son empreinte complète, pas à un label, après la compromission d’une action populaire en mars 2026. La vérification d’état lit quel paquet est référencé par la page servie et revient en arrière si ce n’est pas le plus récent — règle écrite après un incident réel du 3 septembre 2026. Les migrations de base de données restent manuelles, délibérément.

Exemple illustratif

Une conversation téléphonique devient une tâche avec preuve jointe

Un scénario d’utilisation, sans données client ni résultats commerciaux attribués.

Situation initiale

Un appel se termine par une promesse. Personne ne l’écrit nulle part, et une semaine plus tard, personne ne se souvient ni de ce qui a été promis, ni à qui.

Comment ça fonctionne

L’appel entre dans le board par une routine programmée, comme une trace avec lien de retour à la source. Une boucle le relie au dossier client approprié et propose une tâche avec responsable et délai. La proposition reste une proposition : la gate dans la base de données ne permet pas à un agent de la clôturer, et l’écriture qui la clôturerait doit déclarer qui l’a demandée.

Rezultatul

La tâche apparaît avec le contexte dont elle résulte attaché, afin qu’un collègue qui n’a pas participé à l’appel puisse comprendre ce qu’il faut faire sans reconstruire la discussion. Une personne confirme le responsable, le délai et la formulation — ou rejette la proposition, ce qui est tout aussi informatif.

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és de collaboration

Taskin, dans le contexte de votre organisation.

Flux internes et information

Connexion des sources autorisées, organisation de l’information et revue des actions par l’équipe, avec accès séparé par rôles.

Entreprises privées

Nous définissons un pilote autour d’un processus réel : utilisateurs, données, intégrations, coûts et critères d’acceptation. L’extension suit après l’évaluation du résultat.

Institutions et entreprises publiques

Nous établissons les exigences d’accessibilité, d’hébergement, de protection des données et d’interopérabilité. Toute connexion avec des services AGE ou STISC nécessite la validation de l’éligibilité, de l’accès et des approbations.

Ce sont des scénarios d’adaptation, non des déclarations sur des contrats ou partenariats existants. Les fonctions proposées sont confirmées dans le périmètre de travail du projet.

Discuter d'un pilote

Faisant partie d’un écosystème.

Qu'est-ce que vous voudriez voir mieux fonctionner ?

Racontez-nous votre processus. Ensemble, nous décidons ce qui vaut la peine d'être construit, ce que nous pouvons connecter et comment nous vérifions le résultat.

Discutons