Leitfaden

Hooks

REAP-Hooks ermöglichen die Ausführung von Automatisierung bei wichtigen Lebenszyklus-Events. Hooks werden als einzelne Dateien in .reap/hooks/ gespeichert und der KI-Agent führt sie zum richtigen Zeitpunkt aus.

Hook-Typen

Jede Hook-Datei unterstützt einen von zwei Typen basierend auf ihrer Erweiterung:

command (.sh)

Ein Shell-Skript. Wird im Projektstammverzeichnis vom KI-Agenten ausgeführt. Verwenden für Skripte, CLI-Tools, Build-Befehle.

prompt (.md)

Eine KI-Agenten-Anweisung in Markdown. Der Agent liest die Eingabeaufforderung und führt die beschriebene Aufgabe aus — Codeanalyse, Dateiänderungen, Dokumentationsaktualisierungen usw. Verwenden für Aufgaben, die Urteilsvermögen erfordern.

Jeder Hook ist eine einzelne Datei. Mehrere Hooks pro Event werden in der durch Frontmatter festgelegten Reihenfolge ausgeführt.

Dateibenennung

Hook-Dateien folgen dem Muster: .reap/hooks/{event}.{name}.{md|sh}

Jede Hook-Datei unterstützt optionales YAML-Frontmatter:

FeldBeschreibung
conditionName eines Bedingungsskripts in .reap/hooks/conditions/ (z.B. always, has-code-changes, version-bumped)
orderNumerische Ausführungsreihenfolge wenn mehrere Hooks für dasselbe Event existieren (Standard: 50, niedrigere laufen zuerst)

Events

EventWann es ausgelöst wird
onLifeStartedNachdem /reap.start eine neue Generation erstellt hat
onLifeLearnedNachdem die Learning-Phase abgeschlossen ist
onLifePlannedNachdem die Planning-Phase abgeschlossen ist
onLifeImplementedNachdem die Implementation-Phase abgeschlossen ist
onLifeValidatedNachdem die Validation-Phase abgeschlossen ist
onLifeCompletedNach Completion + Archivierung (läuft nach dem Git-Commit)
onLifeTransitedNach jedem Phasenübergang (generisch)
onMergeStartedNachdem eine Merge-Generation erstellt wurde
onMergeDetectedNachdem die Detect-Phase abgeschlossen ist
onMergeMatedNachdem die Mate-Phase abgeschlossen ist (Genome aufgelöst)
onMergeMergedNachdem die Merge-Phase abgeschlossen ist (Quellcode zusammengeführt)
onMergeReconciledNachdem die Reconcile-Phase abgeschlossen ist (Genome-Quellcode-Konsistenz verifiziert)
onMergeValidatedNachdem die Merge-Validation abgeschlossen ist
onMergeCompletedNach Merge-Completion + Archivierung
onMergeTransitedNach jedem Merge-Phasenübergang (generisch)

Dateibasierte Konfiguration

Hooks sind dateibasiert — gespeichert in .reap/hooks/, nicht in config.yml. Jeder Hook ist eine Datei mit dem Namen {event}.{name}.{md|sh}.

text
.reap/hooks/
├── onLifeCompleted.reap-update.sh
├── onLifeCompleted.docs-update.md
├── onLifeImplemented.lint-check.sh
└── onMergeMated.notify.md

# Beispiel: .md Hook (KI-Eingabeaufforderung)
# ---
# condition: has-code-changes
# order: 30
# ---
# Änderungen prüfen und Dokumentation bei Bedarf aktualisieren.

# Beispiel: .sh Hook (Shell-Skript)
# #!/bin/bash
# # condition: always
# # order: 20
# reap update

Automatische Hook-Vorschläge

Während der Completion-Phase (Phase 5: Hook-Vorschlag) erkennt REAP wiederkehrende Muster über Generationen hinweg — wie wiederkehrende manuelle Schritte, wiederholte Befehle oder konsistente Post-Phase-Aktionen. Wenn ein Muster erkannt wird, schlägt REAP vor, einen Hook zur Automatisierung zu erstellen. Die Hook-Erstellung erfordert immer eine Benutzerbestätigung, bevor sie angewendet wird.

Ausführungshinweise

  • Hooks werden vom KI-Agenten ausgeführt, nicht von der CLI. Der Agent durchsucht .reap/hooks/ nach passenden Dateien.
  • .sh-Dateien werden als Shell-Skripte im Projektstammverzeichnis ausgeführt.
  • .md-Dateien werden als KI-Eingabeaufforderungen gelesen und vom Agenten befolgt.
  • Hooks innerhalb desselben Events laufen in Reihenfolge (Frontmatter 'order'-Feld, niedrigere laufen zuerst).
  • Bedingungen werden über .reap/hooks/conditions/{name}.sh ausgewertet (Exit 0 = ausführen, nicht-null = überspringen).
  • onLifeCompleted/onMergeCompleted Hooks laufen nach dem Git-Commit — alle Dateiänderungen durch Hooks werden nicht committet.