Skip to content

Topology and structure ​

These tools handle the shape of the memory: list projects and domains, create, rename, merge, move or reclassify them, attach a note, repair links, send a note to the trash and put it back.

Only two read (mem_list, mem_get_topology). mem_move only writes when apply is true and mem_relocate_project only when confirm is true: without them, they are dry runs. The others write.

mem_move_undo undoes the last move operation (mem_move, mem_rename, mem_reclass, mem_merge). mem_remove does not delete: it moves to .trash/, from where mem_restore puts it back.

In practice ​

You ask your agent

« Which projects do I have in memory? »

→ The agent callsmem_list
You ask your agent

« Create a "kessho-docs" project attached to the repository /Users/ben/Projets/Kessho. »

→ The agent callsmem_init_project
  • slug = kessho-docs
  • repo_path = /Users/ben/Projets/Kessho
You ask your agent

« Rename the kessho-docs project to kessho-documentation, and update the links that point at it across the whole vault. »

→ The agent callsmem_rename
  • old_slug = kessho-docs
  • new_slug = kessho-documentation
  • rewrite_links = true
You ask your agent

« Show me what moving 20-knowledge/runner.md to 20-knowledge/architecture/runner.md would do. »

→ The agent callsmem_move
  • path = 20-knowledge/runner.md
  • to = 20-knowledge/architecture/runner.md

The tools ​

mem_list ​

Lists the vault's projects, domains and archived projects with their phase, last session, scope, number of archives and repository path (`repo_path`).

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
archived_onlybooleannon / noN'inventorier que les projets archivés.
include_archivedbooleannon / noDéplier les projets archivés.

mem_get_topology ​

Reads a project's topology sheet, optionally the one of a given branch; its absence is not an error.

Catalog description (French, verbatim):

Lit la fiche de topologie d'un projet, éventuellement celle d'une branche. Son absence n'est pas une erreur.

Paramètre / ParameterTypeRequis / RequiredDescription (catalogue)
branchstringnon / noBranche dont lire la topologie.
projectstringoui / yesSlug du projet.

mem_init_project ​

Creates the skeleton of a project or domain (its folder, archives/.gitkeep, context.md and history.md), ready for mem_archive.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
displaystringnon / noNom affiché. Défaut : dérivé du slug.
kindstringnon / no'project' (défaut) ou 'domain'.
repo_pathstringnon / noRacine absolue du dépôt associé.
scopestringnon / no'work' (défaut) ou 'personal'.
slugstringoui / yesSlug du nouveau projet ou domaine, en kebab-case.

mem_rename ​

Renames a project or domain everywhere it appears in its folder (frontmatter relabelled, previous_slugs set); links pointing at it are rewritten across the vault, and mem_move_undo reverts it.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
new_slugstringoui / yesNouveau slug.
old_slugstringoui / yesSlug actuel.
rewrite_linksbooleannon / noVrai (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 ​

Merges a project or domain into another of the same kind: relabels and moves its archives, then deletes the source folder; links pointing at them are rewritten across the vault, and mem_move_undo reverts it.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
rewrite_linksbooleannon / noVrai (défaut) : réécrire dans tout le vault les liens qui visent les archives déplacées. Faux : ancien comportement.
source_slugstringoui / yesSlug source, supprimé après fusion.
target_slugstringoui / yesSlug cible, conservé et enrichi.

mem_reclass ​

Changes a note's scope or zone and moves it if its path depends on them; links pointing at it are rewritten across the vault, and mem_move_undo reverts the move.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
pathstringoui / yesChemin de l'atome, relatif au vault.
rewrite_linksbooleannon / noVrai (défaut) : réécrire dans tout le vault les liens qui visent l'atome déplacé. Faux : ancien comportement.
scopestringnon / noNouvelle portée : work, personal ou all.
zonestringnon / noNouvelle zone de premier niveau.

mem_move ​

Renames or moves a file or folder of the vault while rewriting every link that points at it; without apply it returns the plan and writes nothing, and mem_move_undo reverts the last move.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
applybooleannon / noVrai : appliquer. Faux (défaut) : plan à blanc.
empreintestringnon / noFacultatif, avec apply : l'empreinte du plan à blanc. Si le vault a changé depuis (empreinte différente), rien n'est écrit (plan_perime).
pathstringoui / yesFichier ou dossier actuel, relatif au vault.
tostringoui / yesNouveau chemin complet, relatif au vault (même dossier = renommer).

mem_move_undo ​

Undoes the vault's last move operation (mem_move, mem_rename, mem_reclass, mem_merge or one made from the interface): puts files and links back as they were; refuses if a touched file changed since.

Catalog description (French, verbatim):

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 ​

Adds aliases, in the words a person would actually use to look for it, to an existing note; aliases already present are never lost.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
aliasesarray<string>oui / yesFormulations 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.
pathstringoui / yesChemin de l'atome, relatif au vault.

mem_attach ​

Attaches a note to an existing project or domain, or declares it universal when nothing explicit ties it to one (exactly one of project, domain or universal); refuses a target that does not exist.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
domainstringnon / noDomaine existant.
pathstringoui / yesChemin de l'atome, relatif au vault.
projectstringnon / noProjet existant, actif ou archivé.
universalbooleannon / noVrai : l'atome est transverse par nature et ne se rattache à rien.

Repoints a file's [[from]] wikilinks to a new target, preserving #heading and |alias and leaving links inside code blocks alone; refuses a target that does not resolve to a single vault file.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
fromstringoui / yesCible actuelle du lien, telle qu'écrite entre les crochets.
pathstringoui / yesFichier source, relatif au vault.
tostringoui / yesNouvelle cible : doit résoudre à un seul fichier.

mem_resolve_conflict ​

Replaces a vault file carrying an unresolved Git merge conflict with its resolved version; refuses a file without conflict or content that still has a marker, and returns the whole original.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
contentstringoui / yesContenu résolu complet, frontmatter compris, sans aucune borne de conflit.
pathstringoui / yesFichier en conflit, relatif au vault.

mem_accept_dangling ​

Marks a deliberately kept dead wikilink as accepted, so mem_health_scan counts it separately instead of reporting it on every scan; refuses a link that is not in the file or that resolves to a vault file.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
pathstringoui / yesFichier source, relatif au vault.
targetstringoui / yesCible du lien, telle qu'écrite entre les crochets.

mem_remove ​

Moves a note to the vault's .trash/ (never deletes it), with an attached note of date, reason and former path; a note not created during the current session needs confirm: true and a reason, and a note cited by others is refused unless force is set.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
confirmbooleannon / noObligatoire (vrai) pour un atome qui n'a pas été créé pendant cette session. Sans effet sinon.
forcebooleannon / noVrai : 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.
pathstringoui / yesChemin de l'atome, relatif au vault (ex. 20-knowledge/note-de-test.md).
reasonstringnon / noPourquoi 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 ​

Puts back a note removed by mem_remove, byte for byte, from .trash/ to its original path; refuses if a file already occupies that path, so nothing is ever overwritten.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
pathstringoui / yesChemin d'ORIGINE de l'atome, relatif au vault (ex. 20-knowledge/note-de-test.md). Le préfixe .trash/ est accepté.

mem_promote_domain ​

Promotes a set of files into a new permanent domain; refuses fewer than three sources unless allow_2_items is set.

Catalog description (French, verbatim):

Promeut un ensemble de fichiers en un nouveau domaine permanent. Refuse en dessous de trois sources sans dérogation.

Paramètre / ParameterTypeRequis / RequiredDescription (catalogue)
allow_2_itemsbooleannon / noDéroger au seuil anti-dérive de trois sources.
slugstringoui / yesSlug du nouveau domaine.
sourcesarray<string>oui / yesChemins des fichiers à promouvoir, relatifs au vault.

mem_relocate_project ​

Points a project at a new repository root on disk; a dry run unless confirm is true, with a guard on the Git origin that force can override.

Catalog description (French, verbatim):

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 / ParameterTypeRequis / RequiredDescription (catalogue)
confirmbooleannon / noSans confirm, l'appel est un essai à blanc.
forcebooleannon / noPasser outre la garde d'origine Git.
new_rootstringoui / yesNouvelle racine absolue du dépôt.
reasonstringnon / noMotif consigné au journal d'audit.
slugstringoui / yesSlug du projet ou domaine.

Kessho · Cookie-free audience measurement, on an ArboRithm server.