Claude Code Stop Hook: Tests vor „fertig“ prüfen
Ein kurzer Stop Hook prüft Tests oder Dateien, bevor Claude Code den Zug beendet.
Eine Antwort mit „fertig“ beweist nicht, dass Tests liefen oder das Build-Artefakt existiert. Ein Stop Hook kann vor dem Ende eine kurze lokale Prüfung ausführen. Er ersetzt weder CI noch eine vollständige Teststrategie.
Minimaler Hook
Legen Sie in .claude/settings.json ein Stop-Ereignis an, das ./scripts/check-before-stop.sh mit einem kurzen Timeout ausführt. Das Skript startet den fokussierten Test und prüft zum Beispiel dist/app.js.
Bei Erfolg beendet sich das Skript mit 0. Bei einem Fehler schreibt es genau eine konkrete Ursache nach stderr und endet mit 2. In Claude Code blockiert nur Exit-Code 2 den Stop und gibt den Grund an Claude zurück; 1 ist normalerweise nur ein nicht blockierender Hook-Fehler.
Ein Stop Hook führt die kurze Prüfung am Turn-Ende aus. CLAUDE.md beschreibt Regeln, führt aber keine Kommandos aus. CI läuft unabhängig und bleibt die letzte Schranke.
Vollständige Prüfung
- Verwenden Sie absichtlich einen falschen Dateipfad und prüfen Sie manuell Exit-Code
2. - Starten Sie Claude Code mit einer kleinen Aufgabe. Der Hook muss den Stop blockieren und die kurze Ursache anzeigen.
- Korrigieren Sie Test oder Pfad und wiederholen Sie die Aufgabe. Exit-Code
0muss den Stop erlauben. - Wenn
stop_hook_activebereits wahr ist, fügen Sie keinen blinden Retry hinzu. Beheben Sie die genannte Prüfung oder stoppen Sie die Sitzung und reparieren Sie den Hook.
Geben Sie keine API Keys, .env-Inhalte oder vollständige Testlogs aus. Für einen separaten API-Ablauf nutzen Sie die BetterToken-Anleitung für Claude Code.