Benutzerdefiniertes PostToolUse-Hook für On-Demand-Laden von CLAUDE.md außerhalb des Projektbaums

✍️ OpenClawRadar📅 Veröffentlicht: 18. April 2026🔗 Source
Benutzerdefiniertes PostToolUse-Hook für On-Demand-Laden von CLAUDE.md außerhalb des Projektbaums
Ad

CLAUDE.md-Ladeverhalten in Claude Code

Die Quelle beschreibt, wie Claude Code CLAUDE.md-Dateien unter verschiedenen Bedingungen verarbeitet:

  • Hierarchisches Laden: Wenn eine Sitzung in einem Unterverzeichnis gestartet wird, werden sowohl die lokale CLAUDE.md als auch die CLAUDE.md-Dateien des übergeordneten Verzeichnisses geladen. Beispiel: Sitzung in root/a/ lädt sowohl root/a/CLAUDE.md als auch root/CLAUDE.md.
  • Bei-Bedarf-Laden von Unterverzeichnissen: Unterverzeichnisse des Wurzelverzeichnisses der aktuellen Sitzung laden ihre CLAUDE.md-Dateien, wenn Claude auf Dateien in diesen Verzeichnissen zugreift. Beispiel: Sitzung in root/ lädt root/CLAUDE.md initial, dann lädt root/a/CLAUDE.md, wenn Claude eine Datei in root/a/ liest.
  • Zusätzlicher Verzeichniszugriff über Flags: Die Verwendung von --add-dir mit CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 ermöglicht den Zugriff auf CLAUDE.md-Dateien in Verzeichnissen außerhalb des Projektbaums, aber diese werden zu Sitzungsbeginn geladen und nicht bei Bedarf.

Das Problem: Externe Verzeichnis-CLAUDE.md-Dateien werden nicht bei Bedarf geladen

Der Autor stellt fest, dass beim Arbeiten in einem Projekt und dem Anweisen von Claude, Dateien aus Verzeichnissen außerhalb des Verzeichnisbaums der Sitzung zu lesen, alle CLAUDE.md-Dateien in diesen externen Verzeichnissen nicht automatisch geladen werden. Dies führt zu Problemen bei der progressiven Offenlegung von Kontext und erfordert jedes Mal manuelles Eingreifen.

Ad

Lösung: Benutzerdefinierter PostToolUse-Hook

Die Lösung umfasst die Erstellung eines PostToolUse-Hooks, der:

  • Bei jedem Tool-Aufruf prüft, ob Claude außerhalb des Projektbaums arbeitet
  • Von diesem Verzeichnis aus nach oben geht und nach CLAUDE.md-Dateien sucht
  • Wenn gefunden, mit Code 2 beendet, um Anweisungen an Claude zurückzugeben, die ihm sagen, diese zu lesen
  • Verfolgt, welche Dateien bereits in einer sitzungsbezogenen temporären Datei aufgetaucht sind, um wiederholte Anweisungen zu vermeiden

Ein SessionStop-Hook räumt die für die Verfolgung verwendete temporäre Datei auf. Der Autor stellt ein Skript namens check_claude_md.py bereit (Quelle im Originalbeitrag verlinkt), das diese PostToolUse-Hook-Funktionalität implementiert.

Praktische Implementierung

Der Ansatz behebt die spezifische Einschränkung, bei der externe Verzeichnis-CLAUDE.md-Dateien nur zu Sitzungsbeginn geladen werden, wenn das Flag --add-dir mit CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 verwendet wird. Durch das Abfangen von Tool-Aufrufen und das Prüfen auf Operationen außerhalb des Projektbaums ermöglicht der Hook ein bei-Bedarf-Laden ähnlich wie bei Unterverzeichnissen innerhalb des Projektbaums.

Diese Art von benutzerdefiniertem Hook ist nützlich für Entwickler, die häufig über mehrere Projekte hinweg arbeiten oder auf gemeinsame Kontextdateien aus externen Verzeichnissen verweisen müssen, ohne Claude jedes Mal manuell anweisen zu müssen, CLAUDE.md-Dateien zu lesen.

📖 Read the full source: r/ClaudeAI

Ad

👀 Siehe auch