Zum Inhalt springen
Pathrule

doku

So funktionieren Hooks

Erfahre, wie Pathrule-Hooks pfadbezogene Memories und Regeln liefern, passende Skills namentlich anbieten und vor dem ersten KI-Toolaufruf einen schnellen lokalen Cache nutzen.

Auf dieser Seite

Der Hook-Supervisor ist der Teil von Pathrule, der dafür sorgt, dass sich KI-Sessions so anfühlen, als kenne der Assistent die Konventionen deines Teams schon. Er läuft lokal, liest aus einem Cache, liefert relevante Memories und Regeln und bietet Skills namentlich an, bevor der Assistent seine erste Aktion ausführt. Die Anweisungen eines Skills kommen an, wenn du ihn aufrufst.

Diese Seite beschreibt die Mechanik aus Nutzersicht. Sie ist keine Tiefenanalyse der Laufzeit-Interna.

Was ist ein Hook

Ein Hook ist ein kleines Skript, das dein KI-Client zu klar definierten Zeitpunkten in einem Turn aufruft. Pathrule nutzt die Events zur Auslieferung und Durchsetzung, die der jeweilige Client tatsächlich bereitstellt.

  • SessionStart übergibt dem Assistenten einmal pro Session den Workspace, in dem er sich befindet, das Pathrule-Protokoll und deinen Team-Kontext.
  • UserPromptSubmit grenzt einen anstehenden Turn ein, sofern das Prompt-Event des Clients Kontext annimmt.
  • PreToolUse liefert vor einer Aktion Kontext oder eine Entscheidung zu einer strikten Regel, wenn der Client das annimmt.
  • PostToolUse zeichnet Ergebnisse auf und liefert ersatzweise pfadbezogenen Kontext bei Clients, deren Pre-Tool-Event zwar Entscheidungen, aber keinen Kontext annimmt.
  • Stop- und Session-End-Events schließen den Turn ab. Bei Claude Code und Codex kann eine von einer Person freigegebene Pflichtprüfung den Turn hier offen halten, bis ihr Befehl erfolgreich durchgelaufen ist.

pathrule setup und pathrule sync oder die VS Code-Erweiterung registrieren diese Hooks für Claude Code, Codex, Cursor und GitHub Copilot. Windsurf hat keine Pathrule-Hooks, deshalb übernimmt dort die generierte Regeldatei den Session-Bootstrap, und der lokale MCP-Server liefert bei Bedarf tieferen Kontext.

Auslieferungsprofile der Clients

ClientBootstrap und KontextStriktes Blockieren vor dem Schreiben
Claude Code und CodexSession-Start-, Prompt-Submit- und Pre-Tool-HooksJa
Cursor und GitHub CopilotSession-Start, Kontext nach dem Toolaufruf und Entscheidungen vor dem Toolaufruf (kein Prompt-Submit-Hook)Ja
WindsurfRegeldatei beim Session-Start, danach der lokale MCP-ServerKeine Pathrule-Hooks
Remote MCPExplizite Aufrufe des gehosteten MCPKeine lokalen Hooks

Eine strikte Regel ist eine Regel mit einem Blockiermuster, das eine Person freigegeben hat. Unter Regeln als Leitplanken erfährst du, was blockiert und was nur informiert.

Was der Hook tut

Der Hook-Supervisor erledigt vier Schritte in fester Reihenfolge.

  1. Pfad auflösen. Er ordnet das Arbeitsverzeichnis einem Workspace-Knoten zu.
  2. Cache lesen. Der lokale Cache enthält einen vorberechneten Index der Memories, Regeln und Skills für diesen Pfad.
  3. Ausschnitt zuschneiden. Er wählt eine Tiefe, die zur Absicht passt. Eine UI-Anpassung bekommt eine minimale Payload. Ein Bugfix oder Refactoring bekommt eine fokussierte. Discovery-Prompts schalten eine tiefere frei.
  4. Payload zurückgeben. Der Text geht als Systemkontext für die anstehende Aktion an den Client zurück.

Im lokalen Modus läuft der gesamte Ablauf auf deinem Rechner. In einem Cloud-Workspace schickt der Prompt-Hook zusätzlich den Anfang deines Prompts (etwa die ersten 1.000 Zeichen) an Pathrule Cloud, damit Wissen nach Bedeutung priorisiert werden kann. Ist dieser Aufruf langsam oder schlägt er fehl, gleicht der Hook stattdessen mit dem lokalen Index ab, sodass ein Netzwerkproblem den Turn nicht ohne Kontext lässt.

Was du siehst

Die Kontextansicht des Assistenten (die, die dein Editor anzeigt) bekommt einen Pathrule-Abschnitt. Er enthält:

  • Den Pfad, auf den der Hook aufgelöst hat, und die Pfade, in denen die Arbeit am wahrscheinlichsten liegt, als Route, die der Assistent öffnen soll, bevor er sucht. Pathrule zeichnet auf, ob er das getan hat.
  • Die passenden Regeln mit ihrer Priorität.
  • Die Memories, die für deinen Prompt am relevantesten sind, als vollständige Inhalte, mit denen der Assistent direkt arbeiten kann. Weniger sichere Treffer kommen weiterhin als Titel mit IDs, die du bei Bedarf vollständig lesen kannst.
  • Die Skills, die zu diesem Bereich passen, namentlich und bereit zum Aufruf mit ::skill-name.

Hat der Hook für den aktuellen Pfad nichts Neues und Relevantes, fügt er nichts hinzu, ein ruhiger Turn kostet also keinen Kontext.

Zwei Auslieferungskanäle

Wissen erreicht den Assistenten über zwei Hook-Kanäle mit unterschiedlichen Aufgaben.

  • Der Kanal pro Prompt läuft einmal, wenn du einen Prompt abschickst, und zwar bei Clients mit Prompt-Submit-Hook (Claude Code und Codex). Hier liegt die Tiefe: die Regeln, die zum Prompt passen, die stärksten passenden Memories als vollständige Inhalte, mit denen der Assistent direkt arbeiten kann, und die Skills, die relevant wirken, namentlich angeboten. Ein Skill ist ein Verfahren und wird deshalb nie als Anweisung hineingeschoben; sein vollständiger Inhalt kommt an, wenn du ihn mit ::skill-name aufrufst.
  • Der Kanal pro Toolaufruf läuft vor oder nach jeder Datei- oder Shell-Aktion, also viele Male pro Turn. Er bleibt bewusst schlank: Namen und einzeilige Zusammenfassungen der Regeln und Memories, die für den gerade bearbeiteten Pfad gelten. So weiß der Assistent, was dort existiert, und kann einen Inhalt bei Bedarf mit einem einzigen Aufruf lesen.

Bei Claude Code und Codex erreichen sowohl der Prompt-Kanal als auch der Pre-Tool-Kanal den Assistenten. Cursor und GitHub Copilot nehmen über ihr Prompt-Event keinen Kontext an, deshalb transportiert dort der Session-Start-Hook den Bootstrap und der Post-Tool-Hook die pfadbezogenen Namen.

Keiner der beiden Kanäle wiederholt sich. Ein Inhalt, der in der Session schon geliefert wurde, bleibt still, und ein bearbeiteter kommt beim nächsten relevanten Anlass erneut.

Was auf der Festplatte bleibt

Ein Client mit installiertem Pathrule-Hook bekommt Protokoll und Team-Kontext über den Session-Start-Hook statt über seine Instruktionsdatei. Bei Claude Code wird der Session-Start-Kontext Teil des System-Prompts und übersteht damit die Komprimierung der Unterhaltung. Die Instruktionsdatei (CLAUDE.md, AGENTS.md, die Cursor-Regel oder die Copilot-Instructions) behält nur einen kurzen Pathrule-Hinweis, und Pathrule entfernt die Protokollkopien und verzeichnisweisen Wissensdateien, die es in früheren Versionen geschrieben hat. Deine eigenen Inhalte in diesen Dateien bleiben erhalten.

In zwei Fällen bleiben die kompilierten Dateien bestehen:

  • Ein Client ohne Pathrule-Hook wie Windsurf oder ein Client, dessen Hook nicht installiert ist, behält das vollständige Protokoll und die Pfad-Wissensdateien, weil sonst nichts sie ausliefern würde.
  • Hat eine frühere Pathrule-Version deine eigene Instruktionsdatei in ein Backup verschoben, das noch nicht wiederhergestellt ist, behält Pathrule die vollständige Datei, bis dieses Backup erledigt ist. So siehst du nie nur einen kurzen Hinweis, während deine eigenen Anweisungen woanders liegen.

Wenn du die kompilierten Dateien trotz installiertem Hook behalten willst, setze PATHRULE_SIGNATURE_MODE=off in der Umgebung der Pathrule-Runtime.

Wenn der Hook nicht reicht

Hooks sind für den Normalfall gedacht. Braucht der Assistent mehr, kann er jederzeit zu den MCP-Tools greifen.

  • Bei Discovery-Prompts („liste alles auf, was wir über Billing wissen“) ruft der Assistent direkt pathrule_get_context auf.
  • Für vollständige Memory-Inhalte ruft der Assistent pathrule_read_memory mit der ID auf, die der Hook angezeigt hat.
  • Für Schreibvorgänge (der Nutzer möchte eine Konvention oder eine Regel speichern) nutzt der Assistent das passende Schreib-Tool.

Der Hook ist der schnelle Weg. MCP ist der tiefe Weg. Beide teilen sich dieselbe Quelle der Wahrheit.

Der Pfadbezug hält es klein

Der Hook liefert einen Ausschnitt, der sich nach dem Arbeitsverzeichnis richtet.

  • Eine Änderung in apps/web/dashboard zieht keine Regeln zu Datenbankmigrationen nach sich.
  • Eine Änderung in services/billing/webhooks zieht die Billing-Regeln und den Skill für Webhook-Replays heran, nicht die Konventionen der Marketing-Website.
  • Ein Discovery-Prompt im Root des Repositorys liefert einen Workspace-Überblick, nicht jeden einzelnen Inhalt.

Der Pfadbezug sorgt dafür, dass der gelieferte Kontext klein bleibt, verglichen mit einer einzigen globalen Instruktionsdatei, die jede Session vollständig lädt.

Wenn nichts erscheint

Wenn du eine Session öffnest und der Pathrule-Abschnitt leer ist, führe den Doctor aus.

pathrule doctor

Er ändert nichts und prüft:

  • Deine Anmeldung, Organisation und deinen Workspace.
  • Ob der aktuelle Ordner mit einem Workspace verknüpft ist.
  • Ob der Pathrule-MCP-Eintrag für jeden KI-Client installiert ist.
  • Welche von Pathrule verwalteten Dateien im Ordner liegen und welche Pathrule-Oberfläche in welcher Version sie geschrieben hat.

Am Ende der Ausgabe steht der nächste auszuführende Befehl, falls etwas Aufmerksamkeit braucht. Mit --json bekommst du den vollständigen Bericht, der auch die Node-Version abdeckt und MCP-Einträge markiert, die auf eine nicht mehr vorhandene Runtime zeigen.

Um die lokalen Bestandteile wiederherzustellen, führe Folgendes aus:

pathrule repair

Repair schreibt veraltete MCP-Einträge neu, installiert das Hook-Skript und die Hook-Registrierung jedes Clients neu, synchronisiert die Begleitdateien und den lokalen Cache, aus dem der Hook liest, und führt anschließend den Doctor erneut aus.

Wenn du alle Pathrule-Hooks auf einmal abschalten willst, lege ~/.pathrule/kill-hooks an. Der nächste Hook-Aufruf läuft dann einfach durch; entferne die Datei, um die Hooks wieder einzuschalten.