Zum Inhalt springen
Pathrule

doku

Anatomie eines Patterns

Das Inhaltsmodell hinter einem Pattern, wie jeder Baustein typisiert und vorab einem Pfad zugeordnet ist und wie Versionierung und das offene Paket den Katalog verlässlich halten.

Auf dieser Seite

Ein Pattern ist bewusst einfach aufgebaut. Es besteht aus einem kleinen Bündel typisierter Bausteine und den Metadaten, die nötig sind, um es anzuzeigen, zu versionieren und einem Projekt zuzuordnen. Wenn du die Struktur kennst, ist sofort klar, was du beim Import bekommst.

Ein Pattern ist ein Bündel von Bausteinen

Jedes Pattern enthält eine Liste von Bausteinen. Jeder Baustein ist genau eine Memory, eine Regel oder ein Skill und weiß, wo er landen soll.

Ein Baustein legt Folgendes fest:

  • kind: memory, rule oder skill. Davon hängt ab, zu welchem Inhaltstyp der Baustein beim Import wird.
  • nodePath: der Pfad relativ zum Workspace, zu dem er gehört, zum Beispiel /app, /services/billing oder / für die Wurzel. Mit diesem Geltungsbereich wird der Baustein ausgeliefert.
  • title: der Titel der Memory, der Name der Regel oder der Name des Skills.
  • summary: eine einzeilige Beschreibung, die in der Bündelliste angezeigt wird, getrennt vom Body.
  • body: der vollständige Markdown-Inhalt. Genau das wird ohne jede Umwandlung in deinen Workspace geschrieben.

Weil jeder Baustein seinen eigenen Pfad angibt, ist ein Pattern von vornherein pfadbezogen. Das Bündel ist kein einzelnes Dokument, das erst irgendwo abgelegt werden muss, sondern eine Sammlung von Bausteinen, die bereits wissen, wohin sie gehören.

Typspezifische Metadaten

Manche Bausteine haben zusätzliche Felder, die zu ihrem Inhaltstyp passen, und diese bleiben beim Import unverändert erhalten.

  • Regel-Bausteine legen einen Scope-Typ (folder, file_type oder project) und eine Priorität (high, medium, low) fest. Eine Regel ohne diese Angaben wird als Projektregel mit mittlerer Priorität importiert. Eine importierte Regel behält beides, sodass eine ordnerbezogene Regel mit hoher Priorität aus einem Pattern genauso auftaucht wie eine, die du selbst geschrieben hast.
  • Skill-Bausteine haben einen Skill-Namen und optionale Tags, und ihre einzeilige Zusammenfassung wird zur Beschreibung des Skills. Beim Import wird der Skill zusätzlich mit pattern:<slug> getaggt, sodass du alle Skills, die ein Pattern mitgebracht hat, als Gruppe wiederfindest. Nach dem Import ist der Skill auffindbar und über seinen Namen aufrufbar, genau wie jeder andere Skill im Workspace.
  • Memory-Bausteine brauchen keine zusätzlichen Metadaten; Body und Pfad reichen aus.

Regel-Bausteine haben außerdem einen Durchsetzungsmodus (advisory oder strict), und die Vorlage zum manuellen Kopieren kennzeichnet jede Regel damit. Der Import übernimmt ihn nicht: Eine importierte Regel kommt als beratende Regel an, die als Kontext mitläuft, ganz gleich, wie der Katalog sie kennzeichnet. Um eine Änderung zu blockieren, braucht es eine ausführbare Einschränkung, die eine Person freigegeben hat, genau wie bei jeder anderen Regel, wie in Regeln als Leitplanken beschrieben. So bleibt das Blockieren eine Entscheidung, die jemand in deinem Team trifft, und nichts, was ein Katalog einschaltet.

Was Geltungsbereich, Priorität und Durchsetzung im Einzelnen bedeuten, erklärt Kernkonzepte.

Anzahlen und Pfade werden abgeleitet

Ein Pattern pflegt seine eigene Zusammenfassung nie von Hand. Die Zeile „4 Rules, 2 Memories, 1 Skill“ und die Liste der Zielpfade auf jeder Katalogseite und in der README des Pakets werden aus den Bausteinen berechnet. Deshalb kann der angezeigte Inhalt nie von dem abweichen, was das Bündel tatsächlich enthält. Fügst du einem Pattern eine Regel hinzu, aktualisiert sich die Anzahl von selbst.

Versionierung und Aktualität

Jedes Pattern ist versioniert und datiert, damit du erkennst, was du übernimmst und wann es sich zuletzt geändert hat:

  • version ist eine Anzeigeversion wie 1.0.1. Sie erscheint auf der Katalogseite und in der Import-Vorschau. Das Import-Token enthält sie nicht: ::pathrule:package:<slug> meint immer die Version, die dein Client mitbringt.
  • updatedAt ist das Datum der letzten inhaltlichen Änderung. Es ist das „Updated“-Datum auf der Katalogseite und das Datum der letzten Änderung in der Sitemap.
  • changelog ist eine Liste gut lesbarer Einträge, die neuesten zuerst, die festhält, was sich zwischen den Versionen geändert hat. Jedes Pattern im Katalog hat eines, nachzulesen im offenen Paket.

Versionierung ist wichtig, weil der Import eine einmalige Grundausstattung ist (siehe Ein Pattern importieren). Deine Kopie ändert sich nie unbemerkt, und Pathrule verfolgt weder, welche Version du importiert hast, noch benachrichtigt es dich, wenn eine neuere veröffentlicht wird. Vergleiche Version und Aktualisierungsdatum auf der Katalogseite mit dem Zeitpunkt deines Imports und lies im Changelog nach, was sich geändert hat. Wie du eine neuere Version übernimmst, beschreibt Ein Pattern importieren.

Anzeige-Metadaten

Neben den Bausteinen enthält ein Pattern alles, was der Katalog für die Darstellung braucht: einen Namen, einen einzeiligen Slogan, eine längere Beschreibung, eine Kategorie (Framework, Frontend, Backend, Billing, Infra, Workflow, AI oder Security) und ein Icon. Jedes Pattern im Katalog erklärt sich außerdem selbst: welches Problem es löst, für wen es gedacht ist und welche Fehler es deinem Assistenten erspart. Die Katalogseite zeigt alle drei Punkte unter „Why this pattern“.

Metadaten zur Zuordnung

Ein Pattern kann in einem appliesTo-Block angeben, zu welcher Art von Projekt es passt: relevante Pfade, Stack-Tags (zum Beispiel nextjs, react) und Namen von Abhängigkeiten. Jedes Pattern im Katalog gibt einen solchen Block an. Der Webkatalog nutzt die Stack-Tags für die Suche. Die Import-Vorschau übergibt denselben Block an deinen Assistenten, der ihn vor dem Schreiben mit dem Verzeichnisbaum und dem Stack deines Projekts vergleicht und dich um Bestätigung bittet, wenn das Pattern nicht zu passen scheint.

Das offene Paket

Hinter dem Katalog steht ein einziges offenes Paket, @pathrule/patterns, das auf npm unter Apache-2.0 veröffentlicht ist. Das Paket ist rein und serialisierbar: Es enthält die Pattern-Definitionen, ihre Typen und einige Hilfsfunktionen, ohne Abhängigkeit von UI- oder Cloud-Code. Dadurch bleibt es als einfache Daten lesbar, und jede Oberfläche kann genau dieselben Bündel verwenden.

Ein neues Pattern ist ein neuer Eintrag, der in diesem Paket registriert wird. Weil das Paket die einzige maßgebliche Quelle ist, zeigen der Katalog auf der Website, die Import-Werkzeuge und die Markdown-Ansichten alle denselben Inhalt. Der MCP-Server von Pathrule bringt seine eigene Kopie des Pakets mit; deshalb lässt sich ein neu veröffentlichtes Pattern erst importieren, wenn die Pathrule-Version, die du verwendest, es enthält.