En résumé
Un skill est une procédure écrite en langage courant, que l’assistant lit et applique : un référentiel de statistiques, la bonne façon d’interroger un entrepôt OMOP, les conventions de votre service. Le format est un standard ouvert, lu par de nombreux assistants. Linkr fournit déjà un skill d’alignement de concepts, à importer dans LibreChat ; la gestion des skills dans Linkr, au niveau de l’espace de travail, est prévue.
Le problème : réexpliquer à chaque fois
Un modèle de langage a des connaissances générales, mais approximatives là où il faudrait être exact. Il confondra deux tests statistiques aux conditions d’application voisines. Il écrira une requête OMOP plausible mais fausse, parce qu’il ignore qu’un concept doit être cherché à la fois dans _concept_id et dans _source_concept_id. Et il ne connaît évidemment pas les usages de votre service.
Vous pouvez le corriger à chaque conversation. Ou l’écrire une fois.
C’est exactement ce qu’est un skill : une procédure de référence, rédigée pour être lue par un assistant plutôt que classée dans un tiroir.
Trois familles se dégagent vite à l’usage.
Un référentiel méthodologique
Les statistiques, par exemple : quel test pour quelle question, à quelles conditions d’application, comment rapporter le résultat. L’assistant qui vous aide à coder dispose alors d’une connaissance sourcée plutôt que de souvenirs approximatifs.
La façon d’interroger votre entrepôt
Les requêtes usuelles sur le modèle OMOP — ou sur le format que vous utilisez — avec leurs pièges. Un assistant qui a lu ce skill écrit du SQL juste sur votre modèle, au lieu de généralités plausibles.
Les usages de votre service
Ce qu’aucun modèle ne peut deviner : vos critères d’inclusion habituels, vos conventions de nommage, les exclusions que vous appliquez systématiquement.
À quoi ça ressemble
Un skill est un dossier contenant un fichier SKILL.md, et éventuellement des fichiers d’appui : des exemples, un modèle de document, un script.
L'en-tête de SKILL.md
namel'identifiant du skilldescriptionquand s'en servir : c'est sur elle que l'assistant décidelicensesous quelles conditions le réutilisermetadata.versionla version à citer dans une publicationLe fichier commence par un en-tête — un nom, une description — puis le corps est du texte libre.
---
name: requetes-omop
description: >-
Comment interroger un entrepôt au format OMOP : requêtes usuelles,
jointures sur les concepts, pièges à éviter.
---
# Interroger un entrepôt OMOP
## Toujours chercher un concept sur les deux colonnes
Un événement porte un `_concept_id` (le concept standard) et un
`_source_concept_id` (le code d'origine). Chercher sur un seul des deux
laisse passer des enregistrements : interrogez toujours les deux. …
## Compter des patients, pas des lignes
Une même mesure peut apparaître plusieurs fois pour un patient. Sauf
demande contraire, comptez des `person_id` distincts. …
Rien de plus. Pas de langage de programmation, pas de compilation : du texte que vous relisez et corrigez comme n’importe quelle note de service. C’est ce qui permet à un clinicien de l’écrire sans intermédiaire.
La description compte plus qu'on ne croit
C’est sur la description que l’assistant décide s’il doit lire un skill. Une description vague le fera passer à côté ; une description qui dit précisément dans quelles situations s’en servir la rendra utile au bon moment.
Le skill d’alignement de concepts
Linkr fournit aujourd’hui un skill, concept-mapping, pour aligner les codes locaux d’un hôpital sur les concepts standard OMOP. Un agent qui le suit travaille directement dans un projet d’alignement, par le serveur MCP :
- il parcourt les concepts source d’une catégorie et lit leurs métadonnées — unités, distribution des valeurs, services où le code est utilisé — pour départager des cibles proches ;
- il cherche les candidats dans le vocabulaire OMOP du projet, ou d’abord dans un dictionnaire de données — les concept sets de l’espace de travail — quand vous le demandez ;
- il dépose ses propositions comme suggestions IA, chacune avec son équivalence et un commentaire qui justifie le choix. Vous les relisez dans l’onglet Suggestions ;
- il ne crée d’alignement que pour les choix que vous avez confirmés, et toujours avec le statut « non vérifié ».
SKILL.md
La méthode : lire les métadonnées, justifier, ne rien valider seul.
Suit la méthode
Cherche les candidats par les outils du serveur MCP.
Suggestions IA
Vous les relisez dans l'onglet Suggestions.
Les métadonnées partent vers le modèle
Les métadonnées des concepts source — noms de services, distributions de valeurs — sont envoyées au modèle. Avec un modèle distant, réservez ce skill aux données ouvertes, ou à celles que vous êtes autorisé à transmettre à ce fournisseur. Voir La question du modèle.
L’installer
- Dans LibreChat — l’administrateur produit l’archive du skill depuis le dépôt de Linkr (
npm run skill:packdanspackages/linkr-mcp, qui créedist/concept-mapping.zip), puis l’importe dans l’espace Skills de LibreChat. Activez ensuite le skill et les outils du serveur MCP Linkr pour votre agent, et demandez par exemple : « Aligne les concepts non alignés de la catégorie Gaz du sang du projet MIMIC-IV Demo. » - Dans OpenCode ou tout client qui lit le format Agent Skills — chargez le dossier
packages/linkr-mcp/skills/concept-mappingdu dépôt.
Le skill porte un numéro de version et un journal des modifications, pour pouvoir citer la version exacte utilisée dans une publication. Après une mise à jour, réimportez-le dans LibreChat.
Gérer ses skills dans Linkr — à venir
Fonctionnalité en construction
Cette fonctionnalité n'est pas encore disponible. Voici ce qui est prévu, pour que vous puissiez juger si elle couvrira votre besoin — et nous dire si ce n'est pas le cas.
État — conception arbitrée
Disponibilité prévue — mode serveur uniquement
Écrits une fois, choisis par projet
Les skills appartiennent à l’espace de travail — c’est le bon niveau, puisqu’une convention de service vaut pour tous les projets qui en dépendent.
Chaque projet choisit ensuite ceux qu’il utilise. Un projet d’analyse activera le référentiel de statistiques ; un projet travaillant sur l’entrepôt activera celui des requêtes OMOP. Inutile de noyer l’assistant sous des procédures qui ne concernent pas le travail en cours.
Point important : un projet exporté emporte la référence aux skills qu’il utilise, pas leur copie. Sans quoi chaque projet finirait avec sa propre version divergente d’une même procédure — exactement ce qu’on cherche à éviter en l’écrivant une seule fois. Si un skill référencé manque à l’import, Linkr le signale et propose de l’installer.
Un standard ouvert, pas un format Linkr
C’est le point qui dépasse Linkr : ce format de skill est un standard ouvert, déjà lu par de nombreux assistants du marché.
C’est déjà ce qui permet au skill d’alignement de fonctionner aussi bien dans LibreChat que dans OpenCode. De même, un skill écrit pour Linkr — « comment interroger notre entrepôt OMOP » — reste lisible par l’assistant de votre éditeur de code, sur votre machine, en dehors de toute instance Linkr. Ce n’est pas un investissement dans un outil, mais dans une procédure réutilisable ailleurs.
C’est aussi ce qui rend les skills partageables : publié dans le catalogue, un skill profite à d’autres établissements, qui pourront l’adapter à leurs usages.
Un usage typique
Un centre rédige un skill de statistiques : quel test pour quelle question, conditions d’application, comment rapporter le résultat, le tout référencé. L’assistant qui aide à écrire une analyse s’y appuie au lieu de reconstituer de mémoire. Publié, ce skill sert à d’autres centres — et la relecture méthodologique profite à tout le monde.
Ce qui n’est pas encore tranché
- Le partage de fichiers entre skills. Le standard pousse vers des skills autonomes, donc chacun embarque ce dont il a besoin ; il n’est pas certain que cela suffise à l’usage.
- Le degré de vérification au moment de l’écriture : un skill mal formé est silencieusement ignoré par les assistants, ce qui est pénible à diagnostiquer — reste à décider ce que Linkr signale, et à quel moment.
Pour aller plus loin
- Agents — l’assistant qui lit ces skills et les applique.
- Serveur MCP — connecter LibreChat ou OpenCode à Linkr.
- Publier du contenu — diffuser un skill auprès d’autres établissements.