Zum Inhalt springen

Regeln aus dem CodeCharter-Katalog suchen und übernehmen

Durchsucht den kuratierten CodeCharter-Regelkatalog, bevor ihr eine neue Regel schreibt, und übernehmt eine passende Regel in euer eigenes Regelwerk.

Bevor ihr eine Regel komplett neu schreibt, lohnt sich ein Blick, ob es sie schon gibt. Der Tab Beispiele auf der Seite Regeln ist ein durchsuchbarer Katalog der kuratierten Beispielregeln von CodeCharter, zentral gepflegt und für alle Organisationen gleich. Ihr könnt ihn durchsuchen, den vollständigen Quelltext jeder Regel lesen und eine Regel unter einem selbst gewählten Slug in euer eigenes Regelwerk übernehmen. Derselbe Katalog ist auch über die Kommandozeile und über einen KI-Assistenten erreichbar, sodass sich die Frage "gibt es das schon?" überall beantworten lässt, wo ihr gerade arbeitet.

Was der Katalog enthält

Der Katalog enthält die eingebauten Beispielregeln von CodeCharter: funktionsfähige .ccr-Regeln mit Testspezifikation, die gängige Muster aus Kategorien wie Namensgebung, Struktur, Dokumentation und SOLID-Design abdecken. Sie werden zentral kuratiert, nicht von eurer Organisation verfasst, und erscheinen deshalb bei jedem Kunden identisch. Nutzt sie unverändert, indem ihr sie einem Profil hinzufügt, oder übernehmt eine als Ausgangspunkt und passt sie an eure eigenen Konventionen an.

Eure eigenen Regeln liegen getrennt davon im Tab Meine; wie ihr diese anlegt, bearbeitet und veröffentlicht, steht unter Regeln verwalten.

Durchsuchen und filtern

Öffnet den Tab Beispiele auf der Seite Regeln. Das Suchfeld gleicht gegen Name, Kategorie und Regelinhalt ab und aktualisiert die Liste während der Eingabe. Die Facetten Kategorie und Schweregrad grenzen die Ergebnisse weiter ein; wählt einen oder mehrere Werte, um zu filtern. Jede Ergebniskarte zeigt Name, Slug, Kategorie und Standard-Schweregrad der Regel.

Eine Katalogregel lesen

Wählt eine Karte, um die Detailseite zu öffnen. Sie zeigt Slug, veröffentlichte Version und Schweregrad der Regel und teilt sich in zwei Bereiche:

  • .ccr-Quelltext: die eigentliche Regellogik, mit einer Kopieren-Schaltfläche.
  • Spezifikation: die Testspezifikation (Treffer und Nicht-Treffer), umschaltbar zwischen gerenderter Vorschau und dem rohen Markdown.

Eine Regel übernehmen

Wählt auf einer Karte oder der Detailseite Übernehmen, um die Regel in euer eigenes Regelwerk zu kopieren. Der Dialog schlägt einen freien Ziel-Slug auf Basis des Katalog-Slugs vor (mit dem Suffix -copy, dann -copy-2 und so weiter, falls dieser Slug in eurer Organisation bereits vergeben ist) und prüft den von euch gewählten Slug während der Eingabe gegen eure vorhandenen Regeln.

Das Bestätigen legt in eurem Tab Meine eine neue Regel unter dem Ziel-Slug an; Quelltext, Spezifikation, Kategorie und Schweregrad der Katalogregel werden dabei in ihren ersten Entwurf kopiert. Von hier an verhält sie sich genau wie eine selbst geschriebene Regel: Öffnet sie im Regeleditor, führt die Spezifikation aus, passt DSL oder Spezifikation nach Bedarf an und veröffentlicht eine Version, sobald sie fertig ist.

Die Übernahme ist eine einmalige Momentaufnahme. Die neue Regel behält keine fortlaufende Verbindung zur Katalogregel oder ihrer Version: Spätere Änderungen an der Katalogregel wirken sich nicht auf eine bereits übernommene Regel aus, und eure übernommene Regel erscheint an keiner Stelle im Katalog als Variante des Originals. Wenn ihr eine neuere Version einer bereits übernommenen Katalogregel möchtet, übernehmt sie erneut unter einem anderen Slug und vergleicht beide, oder gleicht die Änderung von Hand ab.

Suche über die Kommandozeile

codecharter rules search durchsucht denselben Katalog auf demselben Weg, sodass sich die Frage "gibt es das schon?" auch aus einem Terminal oder Skript heraus beantworten lässt, ohne das Portal zu öffnen:

codecharter rules search "unused parameter" --category naming --severity warn

Die Suchanfrage ist ein Freitext-Argument; lasst es weg, um den Katalog in einer stabilen Reihenfolge zu durchblättern. Optionen:

Option Zweck
--scope Zu durchsuchender Bestand: example (der kuratierte Katalog, Standard) oder mine (eure eigenen Regeln).
--category Kategoriefilter, wiederholbar (ODER-Verknüpfung).
--severity Schweregradfilter, wiederholbar (ODER-Verknüpfung): info, warn, error.
--tag Tag-Filter, wiederholbar; ein Treffer muss jedes übergebene Tag tragen.
--in-profile Beschränkt auf Regeln, die in einem Profil verwendet (true) oder nicht verwendet (false) werden.
--page / --page-size Seitensteuerung; Seitengröße standardmäßig 25, maximal 100.
--portal-url Basis-URL des Portals (Standard: das gehostete Portal).
--api-key Bearer-API-Key; ohne Angabe wird auf die installierte Lizenz zurückgegriffen.

Der Befehl gibt die gefundenen Regeln mit Slug, Kategorie, Schweregrad, letzter Version (oder unpublished), der Anzahl referenzierender Profile und einem Relevanz-Score aus, gefolgt von den Facettenzahlen für Kategorie, Schweregrad und Tag. Er endet mit Exitcode 0, sobald die Suche abgeschlossen ist, unabhängig von der Trefferzahl, und mit 2 bei einem Nutzungsfehler, einem nicht erreichbaren Portal oder einem fehlenden Zugangsdatum.

Suche über einen KI-Assistenten

Der MCP-Server stellt denselben Katalog über das Werkzeug search_rules bereit. Ein Assistent mit installiertem CodeCharter-MCP-Server sollte search_rules aufrufen, bevor er scaffold_rule verwendet, wenn ihr ihn bittet, eine neue Regel zu schreiben: Ein Treffer bedeutet, eine vorhandene Regel anzupassen statt dieselbe Prüfung ein zweites Mal zu schreiben. search_rules akzeptiert einen Freitext-query sowie dieselben Filter scope, categories, severities, tags und in_profile wie die Kommandozeile und liefert Treffer zusammen mit Facettenzahlen zurück, sodass der Assistent eine engere Suche vorschlagen kann, statt zu raten. Die vollständige Werkzeugreferenz und den Ablauf, in den search_rules eingebettet ist, findet ihr unter MCP-Regelautorisierung.

Von der übernommenen Regel zur CI

Eine übernommene Regel startet genau wie eine neu angelegte: als Entwurf in eurem Tab Meine. So bringt ihr sie zum Einsatz:

  1. Öffnet sie im Regeleditor, passt Quelltext oder Spezifikation nach Bedarf an und führt die Spezifikation aus.
  2. Veröffentlicht eine Version, sobald die Spezifikation besteht (siehe Veröffentlichen).
  3. Fügt die veröffentlichte Regel einem Profil hinzu und veröffentlicht eine Profilversion: genau die referenzieren eure CI-Pipelines.

Weiterführend