Topologie et structure
Ces outils gèrent la forme de la mémoire : inventorier les projets et domaines, en créer, renommer, fusionner, déplacer ou reclasser, rattacher une note, réparer des liens, retirer une note vers la corbeille et la remettre.
Deux seulement lisent (mem_list, mem_get_topology). mem_move n'écrit que si apply vaut vrai, mem_relocate_project que si confirm vaut vrai : sans eux, ce sont des essais à blanc. Les autres écrivent.
mem_move_undo annule la dernière opération de déplacement (mem_move, mem_rename, mem_reclass, mem_merge). mem_remove ne supprime pas : il déplace vers .trash/, d'où mem_restore le remet en place.
En pratique
« Crée un projet « kessho-docs » rattaché au dépôt /Users/ben/Projets/Kessho. »
« 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. »
Les outils
mem_list
Inventorie les projets, domaines et projets archivés du vault, avec leur phase, dernière session, portée, dépôt (repo_path) et nombre d'archives.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
archived_only | boolean | non / no | N'inventorier que les projets archivés. |
include_archived | boolean | non / no | Déplier les projets archivés. |
mem_get_topology
Lit la fiche de topologie d'un projet, éventuellement celle d'une branche. Son absence n'est pas une erreur.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
branch | string | non / no | Branche dont lire la topologie. |
project | string | oui / yes | Slug du projet. |
mem_init_project
Crée le squelette d'un projet ou domaine : son dossier, archives/.gitkeep, context.md et history.md, immédiatement exploitables par mem_archive.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
display | string | non / no | Nom affiché. Défaut : dérivé du slug. |
kind | string | non / no | 'project' (défaut) ou 'domain'. |
repo_path | string | non / no | Racine absolue du dépôt associé. |
scope | string | non / no | 'work' (défaut) ou 'personal'. |
slug | string | oui / yes | Slug du nouveau projet ou domaine, en kebab-case. |
mem_rename
Renomme un projet ou domaine partout où il apparaît dans son dossier (frontmatter re-étiqueté, previous_slugs posé). Les liens qui le visent (wikiliens, liens Markdown, frontmatter) sont réécrits dans tout le vault ; rewrite_links: false pour ne pas le faire. mem_move_undo annule l'opération.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
new_slug | string | oui / yes | Nouveau slug. |
old_slug | string | oui / yes | Slug actuel. |
rewrite_links | boolean | non / no | Vrai (défaut) : réécrire dans tout le vault les liens qui visent le dossier renommé. Faux : ancien comportement, liens laissés tels quels. |
mem_merge
Fusionne un projet ou domaine dans un autre de même nature : re-étiquette et déplace ses archives, puis supprime le dossier source. Les liens qui les visent (wikiliens, liens Markdown, frontmatter), archives renommées par collision comprises, sont réécrits dans tout le vault ; rewrite_links: false pour ne pas le faire. mem_move_undo annule l'opération.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
rewrite_links | boolean | non / no | Vrai (défaut) : réécrire dans tout le vault les liens qui visent les archives déplacées. Faux : ancien comportement. |
source_slug | string | oui / yes | Slug source, supprimé après fusion. |
target_slug | string | oui / yes | Slug cible, conservé et enrichi. |
mem_reclass
Change la portée ou la zone d'un atome, et le déplace si son chemin en dépend. Les liens qui le visent (wikiliens, liens Markdown, frontmatter) sont réécrits dans tout le vault ; rewrite_links: false pour ne pas le faire. mem_move_undo annule le déplacement.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
path | string | oui / yes | Chemin de l'atome, relatif au vault. |
rewrite_links | boolean | non / no | Vrai (défaut) : réécrire dans tout le vault les liens qui visent l'atome déplacé. Faux : ancien comportement. |
scope | string | non / no | Nouvelle portée : work, personal ou all. |
zone | string | non / no | Nouvelle zone de premier niveau. |
mem_move
Renomme ou déplace un fichier ou un dossier du vault (sous une zone), en réécrivant dans tout le vault les liens qui le visent — wikiliens, inclusions, liens Markdown relatifs, corps et frontmatter — et les liens relatifs qu'il porte. Sans apply, rend le plan sans rien écrire : fichiers déplacés, chaque lien avant/après, liens laissés (non résolus), avertissements, empreinte. Refuse une cible occupée, un nom invalide (Windows, caractères qui cassent un wikilien), un dossier protégé, une opération git en cours, ou un plan qui casserait un lien. Une opération interrompue est défaite au geste suivant ; mem_move_undo annule la dernière.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
apply | boolean | non / no | Vrai : appliquer. Faux (défaut) : plan à blanc. |
empreinte | string | non / no | Facultatif, avec apply : l'empreinte du plan à blanc. Si le vault a changé depuis (empreinte différente), rien n'est écrit (plan_perime). |
path | string | oui / yes | Fichier ou dossier actuel, relatif au vault. |
to | string | oui / yes | Nouveau chemin complet, relatif au vault (même dossier = renommer). |
mem_move_undo
Annule la dernière opération de déplacement du vault (interface ou agent : mem_move, mem_rename, mem_reclass, mem_merge) : remet les fichiers à leur place et les liens dans leur état d'avant. Refuse si un fichier touché a changé depuis.
Aucun paramètre. / No parameters.
mem_alias_add
Ajoute des alias en langue VÉCUE à un atome existant — les mots par lesquels un humain le cherchera, pas ceux dans lesquels il a été écrit. Mesuré sur le vault réel : le moteur atteint sa cible si et seulement si un mot distinctif de la question s'y trouve, et les alias sont le seul pont entre les deux langues. Les alias déjà présents ne sont jamais perdus.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
aliases | array<string> | oui / yes | Formulations en langue vécue : le symptôme, la sensation, le besoin — « ça saccade sur téléphone », « les accents s'affichent en carrés ». Jamais le vocabulaire technique déjà présent dans l'atome, qui n'apporterait rien. |
path | string | oui / yes | Chemin de l'atome, relatif au vault. |
mem_attach
Rattache un atome à un projet ou à un domaine EXISTANT, ou le déclare universel (attachment: universal) quand aucune preuve explicite ne le rattache — une décision écrite et réversible, que le scan des orphelins respecte. Écrit le champ et l'étiquette. Exactement un de project, domain ou universal. Refuse une cible inexistante.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
domain | string | non / no | Domaine existant. |
path | string | oui / yes | Chemin de l'atome, relatif au vault. |
project | string | non / no | Projet existant, actif ou archivé. |
universal | boolean | non / no | Vrai : l'atome est transverse par nature et ne se rattache à rien. |
mem_wikilink_retarget
Repointe les wikiliens [[from]] d'un fichier vers to, en préservant #titre et |alias ; un lien écrit dans un bloc de code n'est pas touché. Refuse une cible qui ne résout pas à un fichier unique du vault, ou un from absent du fichier. Rend le nombre d'occurrences réécrites.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
from | string | oui / yes | Cible actuelle du lien, telle qu'écrite entre les crochets. |
path | string | oui / yes | Fichier source, relatif au vault. |
to | string | oui / yes | Nouvelle cible : doit résoudre à un seul fichier. |
mem_resolve_conflict
Remplace un fichier du vault qui porte un conflit de fusion Git non résolu (bornes <<<<<<< et >>>>>>>) par sa version résolue. Refuse un fichier sans conflit, un contenu qui porte encore une borne, ou dont le frontmatter ne se lit pas. Rend l'original entier dans original : rien de ce que le fichier portait ne disparaît sans trace. Relancer mem_health_scan ensuite — un fichier illisible peut cacher d'autres anomalies.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
content | string | oui / yes | Contenu résolu complet, frontmatter compris, sans aucune borne de conflit. |
path | string | oui / yes | Fichier en conflit, relatif au vault. |
mem_accept_dangling
Déclare ACCEPTÉ un wikilien mort gardé délibérément : sa cible est ajoutée à kessho_accepted_dangling du fichier. mem_health_scan le compte alors à part (accepted_dangling_links), visible mais hors anomalies, au lieu de le signaler à chaque scan. Refuse un lien absent du fichier, ou qui résout vers un fichier du vault.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
path | string | oui / yes | Fichier source, relatif au vault. |
target | string | oui / yes | Cible du lien, telle qu'écrite entre les crochets. |
mem_remove
Retire un atome vers la corbeille du vault : il est DÉPLACÉ, jamais supprimé, vers .trash/<chemin d'origine>, avec une note jointe (date, motif, ancien chemin) ; mem_restore le remet en place. Retrait libre pour un atome créé par CE serveur pendant la session en cours ; pour tout autre atome, confirm: true ET reason sont exigés — rien n'est déduit du frontmatter. Un atome cité par d'autres est refusé, citants listés ; force: true le retire quand même et rend chaque lien devenu pendant. Refuse hors du vault, .obsidian/, .trash/, index.md, context.md, history.md, et pendant une opération git en cours. Régénère l'index de zone ; ne modifie jamais context.md (ses mentions sont signalées). Ligne d'audit dans 99-meta/migrations/removals.md. Un atome déjà poussé reste dans l'historique git : le compte rendu le dit.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
confirm | boolean | non / no | Obligatoire (vrai) pour un atome qui n'a pas été créé pendant cette session. Sans effet sinon. |
force | boolean | non / no | Vrai : retirer même si d'autres atomes le citent ; leurs liens deviennent pendants et sont listés. Faux (défaut) : refus qui nomme les citants. |
path | string | oui / yes | Chemin de l'atome, relatif au vault (ex. 20-knowledge/note-de-test.md). |
reason | string | non / no | Pourquoi l'atome est retiré. Obligatoire, non vide, pour un atome qui n'a pas été créé pendant cette session ; écrit dans la note jointe et le journal. |
mem_restore
Remet à sa place un atome retiré par mem_remove : le déplace de .trash/<chemin> vers <chemin>, octet pour octet, retire sa note jointe, régénère l'index de zone et écrit une ligne d'audit dans 99-meta/migrations/removals.md. Refuse si un fichier occupe déjà le chemin d'origine : rien n'est jamais écrasé.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
path | string | oui / yes | Chemin d'ORIGINE de l'atome, relatif au vault (ex. 20-knowledge/note-de-test.md). Le préfixe .trash/ est accepté. |
mem_promote_domain
Promeut un ensemble de fichiers en un nouveau domaine permanent. Refuse en dessous de trois sources sans dérogation.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
allow_2_items | boolean | non / no | Déroger au seuil anti-dérive de trois sources. |
slug | string | oui / yes | Slug du nouveau domaine. |
sources | array<string> | oui / yes | Chemins des fichiers à promouvoir, relatifs au vault. |
mem_relocate_project
Fait pointer un projet vers une nouvelle racine de dépôt sur le disque. Essai à blanc par défaut, garde sur l'origine Git.
| Paramètre / Parameter | Type | Requis / Required | Description (catalogue) |
|---|---|---|---|
confirm | boolean | non / no | Sans confirm, l'appel est un essai à blanc. |
force | boolean | non / no | Passer outre la garde d'origine Git. |
new_root | string | oui / yes | Nouvelle racine absolue du dépôt. |
reason | string | non / no | Motif consigné au journal d'audit. |
slug | string | oui / yes | Slug du projet ou domaine. |