Aller au contenu
← Tous les projets

Mémoire · Développement

Julien Memory

Une mémoire pour mes assistants IA, où rien ne devient officiel sans que je le valide.

Fonctionneljuillet 2026 — en coursProjet personnel

En résumé

Problème
Les assistants IA oublient tout d'une conversation à l'autre. Et quand on leur donne une mémoire, ils mélangent le personnel, le professionnel et ce qui est partagé avec une équipe.
Solution
Une mémoire organisée en espaces séparés, où une information dépassée est remplacée plutôt qu'empilée, et où les assistants ne peuvent que proposer. C'est moi qui valide.
Ce que ça apporte
Le contexte survit d'une conversation à l'autre, les espaces ne se mélangent pas, et rien ne devient officiel sans mon accord.
Où il en est
Fonctionne et me sert tous les jours. 82 tests passent. La mémoire se remplit petit à petit.
Mon rôle
J'ai défini ce que devait faire la mémoire et ses règles, piloté sa construction avec des assistants de code, puis vérifié le résultat par les tests.

Pourquoi ce projet

Les assistants IA oublient tout d'une conversation à l'autre. Tout le monde connaît le problème.

Celui dont on parle moins arrive juste après : une fois qu'on donne une mémoire à un assistant, que lui laisse-t-on y écrire ? C'est là que les choses se compliquent.

Ce qui ne va pas avec une mémoire classique

Dès qu'elle dépasse quelques dizaines d'informations, trois problèmes apparaissent.

Tout se mélange. Une information personnelle, une décision professionnelle et une donnée d'équipe finissent au même endroit. Le jour où il faut partager quelque chose, impossible de trier proprement.

Rien n'est remplacé. Une décision prise en janvier et son annulation en mars ont le même poids. La mémoire devient moins fiable que pas de mémoire du tout.

Elle se remplit de suppositions. Si l'assistant choisit seul ce qu'il retient, il finit par mémoriser ses propres hypothèses et par les traiter comme des faits.

Ce que j'ai construit

Aucun passage automatique entre les espaces : un export est toujours une action volontaire.

Une mémoire organisée autour de quatre règles :

  • chaque note a une forme précise, avec sa source, son statut et ses dates. Rendre la source obligatoire suffit à empêcher qu'une supposition entre en mémoire ;
  • les espaces sont séparés : personnel, équipe et système. Passer de l'un à l'autre demande une action volontaire ;
  • une note peut en remplacer une autre. L'ancienne reste consultable, mais ne fait plus foi ;
  • les assistants proposent, je valide. Rien ne devient officiel sans mon accord.

Ce que ça change

Quand je pose une question aujourd'hui, l'assistant retrouve le contexte d'une décision d'il y a trois semaines, avec son statut : confirmée, simplement proposée, ou remplacée depuis.

Et une information jamais validée reste une proposition. Elle ne devient pas un fait parce qu'elle a été répétée plusieurs fois.

Voir les détails techniques

Les notes

Chaque note est un fichier Markdown avec un en-tête structuré, vérifié au chargement. Une note mal remplie n'est pas ignorée en silence : le chargement s'arrête et indique le fichier et le champ en cause.

La recherche

Elle se fait sur les mots, avec plus de poids pour le titre et les étiquettes que pour le texte, et une note confirmée remonte avant une proposition. C'est simple et ça fonctionne en local. En contrepartie, une question posée avec d'autres mots que ceux de la note peut ne rien trouver.

Le contrôle qualité

Un module repère les contradictions possibles entre deux notes, les notes remplacées sans remplaçant et les boucles de remplacement. Il signale, il ne tranche pas : laisser le système décider seul reviendrait à lui rendre le droit de dire ce qui est vrai.

Les tests

82 tests, sur 10 fichiers, vérifient notamment qu'un contenu privé ne peut jamais se retrouver dans un export destiné à un espace partagé. Ils tournent sur des dossiers temporaires, jamais sur la vraie mémoire.

Chiffres

82

tests automatisés

sur 10 fichiers : schéma, stockage, sécurité, export, fusion, migration

Source · suite de tests relancée le 30 septembre 2026

3

espaces séparés

un espace système, un espace privé et un espace équipe, sans passage automatique de l'un à l'autre

Source · structure du dépôt et règles d'export

7

modules

schéma, stockage, sécurité, export, fusion, migration et contrôle qualité

Source · arborescence du code source

Ce que j'ai fait

  • Architecture

    J'ai défini la forme des notes : type, source, statut, dates de validité, liens entre notes.

  • Création des règles

    J'ai écrit les règles de séparation entre espaces, dont l'interdiction de sortir un contenu privé vers un espace partagé.

  • Développement assisté

    Le serveur, le stockage, la recherche, la fusion et la migration ont été écrits en TypeScript avec Claude Code et Codex.

  • Contrôle qualité

    J'ai fait ajouter un contrôle qui repère les contradictions possibles et les remplacements incohérents entre notes.

  • Tests

    82 tests vérifient le schéma, le stockage, la sécurité, l'export, la fusion et la migration.

  • Documentation

    J'ai documenté la forme des notes, les règles d'usage et la façon de valider une information.

Preuves

  • 82 tests

    vérifié

    Ils vérifient le schéma, le stockage, la sécurité, l'export, la fusion de notes et la migration. Les tests de sécurité s'assurent qu'un contenu privé ne peut pas passer dans un autre espace.

    Source
    suite de tests du système
    Vérifiable par
    Suite relancée le 30 septembre 2026 : 82 tests passants sur 10 fichiers.
  • Des espaces vraiment séparés

    vérifié

    Chaque espace est un dossier à part. Faire passer une information d'un espace à l'autre demande une action volontaire, ça n'arrive jamais par accident pendant une conversation.

    Source
    configuration des espaces et règles d'export
    Vérifiable par
    Lecture de la configuration, puis vérification par les tests qu'aucun contenu privé ne sort de son espace.
  • Un contrôle qualité

    vérifié

    Un module repère les contradictions possibles entre notes, les notes remplacées sans remplaçant et les boucles de remplacement.

    Source
    module de contrôle qualité du système
    Vérifiable par
    Lecture du module et exécution de ses tests.
  • C'est moi qui valide

    vérifié

    Aucun assistant ne peut écrire directement dans la mémoire officielle. Il dépose une proposition, qui attend que je la valide.

    Source
    règles d'usage du système et outils exposés aux agents
    Vérifiable par
    Lecture des règles, et vérification que l'outil de validation n'est pas accessible aux assistants.

Limites

  • La recherche se fait sur les mots, pas sur le sens. Une question posée avec d'autres mots que ceux de la note peut ne rien trouver.
  • Le contrôle des contradictions signale, il ne tranche pas. C'est à moi de décider.
  • La mémoire contient encore peu de choses. Elle prend de la valeur à mesure qu'elle se remplit.
  • Tout fonctionne en local, sur une seule machine.
  • Si je ne relis pas les propositions, la mémoire officielle reste vide. Tout repose sur cette discipline.

Ce que j'en retiens

  • Le plus utile n'est pas d'écrire, c'est de remplacer. Une mémoire qui empile tout finit par rendre une vieille information aussi crédible qu'une nouvelle.
  • Interdire aux assistants d'écrire directement dans la mémoire officielle m'a coûté un peu de confort, mais a réglé le vrai problème : elle ne se remplit plus de suppositions.
  • Rendre un champ obligatoire, comme la source, oblige à réfléchir à ce qu'on écrit.

Ce que ça peut apporter à une entreprise

  • Une équipe peut utiliser le même principe de remplacement pour qu'une décision annulée n'apparaisse plus comme valable, sans effacer l'historique.
  • Une entreprise qui confie des données sensibles à des assistants IA peut reprendre la séparation des espaces, pour qu'un dossier client ne se retrouve jamais dans un autre.
  • Un service conformité peut distinguer clairement ce qu'un système a proposé de ce qu'une personne a validé.

Technologies

  • TypeScript
  • Node.js
  • Model Context Protocol
  • Zod
  • Vitest
  • Markdown

Projets liés