Entretenir la mémoire
Ce parcours sert à garder le dossier en bon état : repérer les défauts (lien cassé, note orpheline, frontmatter illisible…), les réparer, et ranger (renommer, déplacer, fusionner, retirer) sans casser les liens. L'application sait le faire seule pour une part ; l'agent prend le reste.
Ce que vous demandez à l'agent
« Montre-moi ce que la réparation automatique corrigerait, sans rien écrire. »
mem_health_repair« Applique cette réparation. »
« Quelles tâches de santé me reviennent ? Les résumés à composer, d'abord. »
« Renomme le projet kessho-docs en kessho-documentation, et mets à jour les liens qui le visent dans tout le vault. »
mem_renameold_slug=kessho-docsnew_slug=kessho-documentationrewrite_links=true
« Montre-moi ce que donnerait le déplacement de 20-knowledge/runner.md vers 20-knowledge/architecture/runner.md. »
« Applique ce déplacement. »
mem_movepath=20-knowledge/runner.mdto=20-knowledge/architecture/runner.mdapply=true
« Retire la note 20-knowledge/note-de-test.md : c'est un doublon de runner.md. »
mem_removepath=20-knowledge/note-de-test.mdconfirm=truereason=Doublon de runner.md.
« Finalement, remets cette note en place. »
Ce que fait l'agent
Contrôler, puis réparer
mem_health_scanaudite le vault. Lecture seule, en toutes circonstances.categoryrestreint l'audit à une catégorie (la liste est dans la référence). Chaque constat dit qui peut le réparer :stagevautapp(l'étape de réparation automatique),agent(une tâche pour l'agent) ounone(avec la raison).mem_health_repairapplique les correctifs dont la réponse est unique et sûre. Par défaut c'est un essai à blanc : la réponse porte unplan_id, le nombre de corrections et les fichiers concernés, et rien n'est écrit. Avecapply: true, l'agent doit redonner ceplan_id: sans lui, ou si la mémoire a changé depuis, rien n'est écrit. Aucun autre paramètre n'est accepté (dry_runest refusé), et rien n'est jamais supprimé.mem_health_tasksliste ce qui demande du jugement : résumé à composer, note orpheline à rattacher, lien sans cible sûre, conflit de fusion, dépôt déplacé.kindfiltre par genre,limit(30 par défaut) etcursorpaginent. Chaque tâche nomme les outils à employer et son critère de fin : le constat disparaît du scan. L'agent traite chaque tâche, puis relancemem_health_scanpour vérifier.
Ranger
Ces outils réécrivent aussi les liens qui visent ce qu'ils déplacent (wikiliens, liens Markdown, frontmatter), dans tout le vault. rewrite_links: false désactive cette réécriture pour mem_rename, mem_merge et mem_reclass.
mem_moverenomme ou déplace un fichier ou un dossier. Sansapply, il rend le plan sans rien écrire : fichiers déplacés, chaque lien avant et après, liens laissés, avertissements,empreinte. Avecapply: true, il applique ; siempreinteest donnée et que le vault a changé depuis, rien n'est écrit. Il refuse une cible occupée, un nom invalide, un dossier protégé, une opération git en cours, ou un plan qui casserait un lien.mem_renamerenomme un projet ou un domaine (old_slug,new_slug) ;mem_mergefusionne deux projets ou deux domaines de même nature (source_slug, supprimé après fusion, danstarget_slug) ;mem_reclasschange la portée (scope) ou la zone (zone) d'une note. Ces trois outils écrivent dès l'appel : ils n'ont pas d'essai à blanc. Pour revenir en arrière, voirmem_move_undoci-dessous.mem_move_undoannule la dernière opération de déplacement du vault (mem_move,mem_rename,mem_reclass,mem_merge, ou le même geste fait dans l'application) : fichiers et liens reviennent à leur état d'avant. Il refuse si un fichier touché a changé depuis.
Retirer
mem_remove déplace une note vers la corbeille du vault (.trash/), avec une note jointe (date, motif, ancien chemin) ; il ne supprime jamais. Ses gardes :
- une note créée par ce serveur pendant la session en cours se retire librement ; pour toute autre,
confirm: trueetreason(non vide) sont exigés ; - une note citée par d'autres est refusée, avec la liste des citants ;
force: truela retire quand même et rend chaque lien devenu pendant ; - il refuse
index.md,context.md,history.md,.obsidian/et.trash/, et tout retrait pendant une opération git en cours ; - il écrit une ligne d'audit dans
99-meta/migrations/removals.md. Une note déjà poussée reste dans l'historique git.
mem_restore la remet en place, octet pour octet, et refuse si un fichier occupe déjà son chemin d'origine : rien n'est jamais écrasé.
D'autres outils de rangement existent, par exemple mem_attach (rattacher une note orpheline à un projet ou un domaine) ou mem_accept_dangling (déclarer un lien mort volontaire) ; ils sont dans la Référence MCP.
Ce que vous voyez

- La santé. La barre d'état affiche la SANTÉ de la mémoire, et l'accueil porte le Score de santé de la mémoire. Il compte les anomalies et sépare ce que l'application répare seule de ce qui revient à un agent (« N tâches pour un agent », avec Copier la consigne). Préparer la réparation suit le même principe en deux temps que
mem_health_repair: un plan, puis Appliquer ; un plan périmé est refusé. Voir Accueil. - Ranger et retirer. Dans une zone, le menu d'une note propose Renommer, Déplacer et Retirer, avec l'aperçu des liens à mettre à jour et un bouton Annuler pour revenir en arrière ; Retirer envoie la note à la corbeille (
.trash) et propose Retirer quand même quand d'autres notes la citent. Voir Zones. - Ce que l'agent vient de changer. Le témoin de fraîcheur s'allume après chaque écriture d'agent et nomme la zone touchée ; Relire recharge l'écran (voir Zones).