Anatomie d'un pattern
Le modèle de contenu d'un pattern, la façon dont chaque élément est typé et déjà lié à un chemin, et comment le versionnage et le package ouvert garantissent la fiabilité du catalogue.
Sur cette page
Un pattern est volontairement simple. C'est un petit ensemble d'éléments typés, accompagné des métadonnées nécessaires pour l'afficher, le versionner et le faire correspondre à un projet. Une fois cette structure comprise, vous savez exactement ce que vous obtenez en en important un.
Un pattern est un ensemble d'éléments
Chaque pattern contient une liste d'éléments. Chaque élément correspond à exactement une mémoire, une règle ou un skill, et sait où il doit être placé.
Un élément déclare :
kind:memory,ruleouskill. Ce champ détermine le type de contenu qu'il devient à l'import.nodePath: le chemin, relatif à l'espace de travail, auquel il appartient, par exemple/app,/services/billing, ou/pour la racine. C'est la portée avec laquelle l'élément est fourni.title: le titre de la mémoire, le nom de la règle ou le nom de le skill.summary: une description d'une ligne affichée dans la liste de l'ensemble, distincte du corps.body: le contenu Markdown complet. C'est exactement ce qui est écrit dans votre espace de travail, sans aucune transformation.
Comme chaque élément indique son propre chemin, un pattern est lié à des chemins par construction. L'ensemble n'est pas un document unique qu'il faudrait ranger quelque part ; c'est un jeu d'éléments qui savent déjà où aller.
Métadonnées propres à chaque type
Certains éléments portent des champs supplémentaires adaptés à leur type de contenu, et ces champs sont conservés intacts à l'import.
- Les éléments de type règle définissent un type de portée (
folder,file_typeouproject) et une priorité (high,medium,low). Une règle qui ne les précise pas est importée comme règle de projet de priorité moyenne. Une règle importée conserve les deux : une règle de dossier de haute priorité issue d'un pattern ressort donc exactement comme une règle que vous auriez écrite vous-même. - Les éléments de type skill portent un nom de skill et des tags facultatifs, et leur résumé d'une ligne devient la description de le skill. À l'import, le skill reçoit aussi le tag
pattern:<slug>, ce qui permet de retrouver en un seul groupe tous les skills apportés par un pattern. Après l'import, le skill est détectable et invocable par son nom, comme n'importe quelle autre skill de l'espace de travail. - Les éléments de type mémoire n'ont besoin d'aucune métadonnée supplémentaire ; le corps et le chemin suffisent.
Les éléments de type règle portent aussi un mode d'application (advisory ou strict), et la copie manuelle indique ce mode pour chaque règle. L'import, lui, ne le transmet pas : une règle importée arrive comme règle consultative, fournie à titre de contexte, quel que soit le mode affiché dans le catalogue. Pour bloquer une modification, il faut une contrainte exécutable approuvée par une personne, comme pour toute règle, ainsi que l'explique Les règles comme garde-fous. Le blocage reste ainsi une décision prise par un membre de votre équipe, et non une option activée par un catalogue.
Pour la signification de fond de la portée, de la priorité et de l'application, consultez Concepts clés.
Les décomptes et les chemins sont calculés
Un pattern ne maintient jamais son résumé à la main. La ligne « 4 Rules, 2 Memories, 1 Skill » et la liste des chemins cibles, sur chaque page du catalogue comme dans le README du package, sont calculées à partir des éléments. Le contenu affiché ne peut donc jamais diverger de ce que l'ensemble contient réellement. Ajoutez une règle à un pattern, et son décompte se met à jour tout seul.
Versionnage et fraîcheur
Chaque pattern est versionné et daté, pour que vous sachiez ce que vous adoptez et quand il a changé pour la dernière fois :
versionest une version d'affichage, comme1.0.1. Elle apparaît sur la page du catalogue et dans l'aperçu d'import. Le token d'import ne la contient pas :::pathrule:package:<slug>désigne toujours la version fournie avec votre client.updatedAtest la date de la dernière modification du contenu. C'est la date « Updated » de la page du catalogue et la date de dernière modification dans le sitemap.changelogest une liste d'entrées lisibles, de la plus récente à la plus ancienne, qui consigne ce qui a changé d'une version à l'autre. Chaque pattern du catalogue en possède un, consultable dans le package ouvert.
Le versionnage compte parce que l'import est un amorçage ponctuel (voir Importer un pattern). Votre copie ne change jamais à votre insu, et Pathrule ne garde pas trace de la version importée et ne vous prévient pas lorsqu'une version plus récente est publiée. Comparez la version et la date de mise à jour affichées sur la page du catalogue avec la date de votre import, et lisez le changelog pour voir ce qui a évolué. Importer un pattern explique comment récupérer une version plus récente.
Métadonnées d'affichage
En plus des éléments, un pattern contient ce dont le catalogue a besoin pour le présenter : un nom, une accroche d'une ligne, une description plus longue, une catégorie (parmi Framework, Frontend, Backend, Billing, Infra, Workflow, AI et Security) et une icône. Chaque pattern du catalogue se présente aussi par le problème qu'il résout, le public auquel il s'adresse et une liste des erreurs qu'il évite à votre assistant. La page du catalogue affiche ces trois informations sous « Why this pattern ».
Métadonnées de correspondance
Un pattern peut déclarer le type de projet auquel il convient, dans un bloc appliesTo : chemins pertinents, tags de stack (par exemple nextjs, react) et noms de dépendances. Chaque pattern du catalogue en déclare un. Le catalogue web utilise les tags de stack pour la recherche. L'aperçu d'import transmet ce même bloc à votre assistant, qui le compare à l'arborescence et à la stack de votre projet avant d'écrire quoi que ce soit, et vous demande confirmation lorsque le pattern ne semble pas correspondre.
Le package ouvert
Le catalogue repose sur un unique package ouvert, @pathrule/patterns, publié sur npm sous licence Apache-2.0. Ce package est pur et sérialisable : il contient les définitions des patterns, leurs types et quelques fonctions utilitaires, sans aucune dépendance à du code d'interface ou cloud. Il reste ainsi lisible comme de simples données, et chaque surface peut consommer exactement les mêmes ensembles.
Ajouter un pattern revient à enregistrer une nouvelle entrée dans ce package. Comme le package est l'unique source de vérité, le catalogue du site, les outils d'import et les vues Markdown affichent tous le même contenu. Le serveur MCP de Pathrule embarque sa propre copie du package : c'est pourquoi un pattern nouvellement publié devient importable dès que la version de Pathrule que vous utilisez l'inclut.
Pour aller plus loin
- Importer un pattern montre comment un ensemble est écrit dans votre espace de travail et comment le retirer.
- Présentation des patterns offre une vue d'ensemble si vous l'avez sautée.
- Rédiger des règles et Rédiger des skills détaillent les types d'éléments.