Hippocampus

Permet à l'agent de tirer des leçons de ses erreurs : les écrire sur le disque pour ne plus les répéter. Consulter avant de commencer une tâche complexe avec `mem` ; après une erreur, une correction ou une décision, utiliser `mem add` puis `mem build` pour consigner la leçon.

Qu'est-ce que Hippocampus ?

Hippocampus est un outil de mémoire structuré pour les agents d'IA (comme Claude Code, Cursor, Codex), leur permettant de capitaliser sur leurs expériences passées. Il fonctionne en quatre niveaux : les notes brutes (Tier-3) sont stockées dans `notes/` et indexées automatiquement par `mem build` qui génère un catalogue et des packs thématiques (Tiers 0-2). Avant une tâche non triviale, l'agent consulte la mémoire via `mem` pour éviter les pièges déjà rencontrés ; après une correction ou une décision, il enregistre la leçon avec `mem add` puis `mem build`. L'outil repose sur un système de classification automatique des notes par mots-clés ou par pack défini dans un fichier JSON. Il est interdit de modifier manuellement les fichiers générés, de lire en bloc les notes brutes, ou d'y stocker des secrets. La mémoire est prioritaire sur les instructions générales, mais cède face aux preuves tangibles (code, logs) qui peuvent invalider une note obsolète. Hippocampus encourage ainsi un apprentissage continu et une réduction des erreurs répétitives.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add tinchak0207/Hippocampus

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Hippocampus : faire apprendre de ses erreurs à l'agent

Les pièges rencontrés sont écrits dans notes/, mem build compile l'index, et avant une prochaine tâche similaire, l'agent consulte d'abord comment il a échoué la fois précédente. CLI : mem.

Répertoire racine de la mémoire $MEM_HOME (par défaut ~/.claude/memory). Tout est en texte brut, mem build génère les trois autres couches à partir de notes/.

Quand l'utiliser

  • Avant de commencer une tâche non triviale : vérifier si cette tâche a déjà été réalisée, s'il y a des décisions ou des pièges.
  • Lorsque l'utilisateur mentionne « la dernière fois », « comme dit précédemment », « selon l'ancienne règle ».
  • Avant d'envoyer un sous-agent : inclure les souvenirs pertinents dans le cahier des charges.
  • Après avoir obtenu un résultat réutilisable, résolu un problème récurrent, ou avoir été corrigé par l'utilisateur : rédiger une note.

Modèle à quatre niveaux

NiveauFichierContenuQui écrit
Niveau-0MEMORY.mdTable de routage : conventions de lecture/écriture, liste des packs, 12 notes les plus récentes ; avec budget d'octets (par défaut 12000)mem build
Niveau-1packs/<id>.mdUne page par domaine, chaque note est une ligne : description + cheminmem build
Niveau-2catalog.tsvChaque note sur une ligne : pack date type name title bytes gistmem build
Niveau-3notes/*.mdTexte original, avec front-matter YAMLmem add crée le fichier, tu rédiges le contenu

Règles de classification dans $MEM_HOME/.memorypack/packs.json : si le front-matter contient un metadata.pack avec un ID valide, il est utilisé ; sinon, le système note par mots-clés (strong +3, keywords +1). Zéro point va dans misc.

Chemin de lecture (dans l'ordre, arrêter dès que suffisant)

  1. Lire l'intégralité de MEMORY.md (il est petit, conçu pour être lu en entier).
  2. Trouver le domaine selon la section « quand lire » → mem pack <id> pour une lecture rapide de ce domaine.
  3. Pour localiser une entrée spécifique → mem find <mot-clé> [--pack <id>] [--limit N], ne renvoie que les lignes du catalogue.
  4. Pour seulement 1 à 3 notes ciblées → mem show <nom> pour lire le texte original.

En cas de conflit entre la mémoire et les preuves tangibles (code, journaux, sorties de commandes), les preuves prévalent et l'utilisateur est informé que la note est obsolète.

Chemin d'écriture (un seul possible)

mem add <slug> --type project|feedback|reference [--pack <id>] [--title "titre"]
# Ouvrir le chemin affiché, remplir la ligne de description + FAIT / décision / piège / éléments connexes
mem build
  • description est le seul contenu qui apparaît dans les trois premiers niveaux : écris-le comme « ce que c'est + quand l'utiliser » en une phrase.
  • Modifier une note existante : éditer directement le fichier dans notes/, puis mem build.
  • Après l'écriture, tu peux exécuter mem doctor pour vérifier le budget, les liens brisés et les descriptions manquantes.

Interdictions

  • Ne pas modifier manuellement MEMORY.md, packs/*, catalog.tsv : ce sont des fichiers générés, écrasés lors du prochain mem build.
  • Ne pas lire en bloc notes/ (cat notes/*, ls et lire chaque fichier, grep sur l'ensemble du répertoire) : utiliser mem find.
  • Ne pas supprimer une note, sauf demande explicite de l'utilisateur ; si elle est obsolète, la marquer dans le texte original et mettre à jour la description.
  • Ne pas écrire de secrets, tokens, mots de passe, clés privées, informations personnelles identifiables dans une note.
  • Ne pas créer un second dépôt de mémoire ; les anciens chemins d'autres outils doivent être liés symboliquement vers $MEM_HOME.

Références

  • Maintenance courante : prompts/maintain.md
  • Révision de fin de session et construction proactive : prompts/proactive-build.md
  • Extrait de règles à coller dans AGENTS.md / CLAUDE.md : prompts/agents-snippet.md
  • Exemples de hooks : prompts/hooks/

Skills associés