Skip to content
Apothem
Referenz

Hooks

Werkzeug-Ereignishandler, die bei SessionStart, PreToolUse und Stop auslösen und Nachrichtenkontexte laden, die die git-Isolation und die Plan-Disziplin durchsetzen.

Hooks lösen bei Werkzeugereignissen aus und laden Nachrichtenkontexte, die der Assistent als zusätzliche System-Prompts behandelt. Die Verdrahtung liegt im Hook-Block der settings.json von Claude Code, der Hook-Datei hooks.json von Codex und der Hook-Zuordnung der settings.json von Qwen Code.

EreignisTimeoutZweck
SessionStart30 SekundenSpeicher lesen, Plan-Status prüfen, Bereitschaft melden
PreCompact30 SekundenVor der Kompaktierung prüfen, ob der Zustand externalisiert ist
PostCompact30 SekundenArbeitszustand nach der Kompaktierung wiederherstellen
Stop60 SekundenExternalisierung am Sitzungsende
PreToolUse (Bash)10 SekundenBash-Validierung — Isolation von git-Artefakten
PreToolUse (Write/Edit/NotebookEdit/apply_patch)10 SekundenIsolation von Plan-Referenzen, Frontmatter-Prüfungen

Dispatcher

Installierte Hook-Einträge rufen den Dispatcher über den absoluten Skriptpfad auf. Die Einstellungsvorlagen tragen das Token ${HARNESS_ROOT}python "${HARNESS_ROOT}/apothem/hooks/dispatch.py" <event> [<message-name>] — das der Installer zur Installationszeit zum realen Pfad des harness-Stammverzeichnisses rendert (Claude Code und Qwen Code materialisieren den Dispatcher unter <harness-root>/apothem/hooks/; Codex unter <harness-root>/hooks/). Der Dispatcher ist ein eigenständiges Standardbibliotheks-Skript: Er initialisiert seinen eigenen sys.path, sodass auf dem Host kein importierbares apothem-Paket benötigt wird. Aus einem Quell-Checkout führt die Modulform python -m apothem.hooks.dispatch <event> (mit PYTHONPATH=src) denselben Code für die Entwicklung aus. Der Dispatcher lädt hooks/lib/resolve_root.py für die Auflösung des Ökosystem-Stammverzeichnisses und delegiert an hooks/emit_hook_context.py und hooks/session_start_bootstrap.py.

Nachrichtenkontexte

Die ereignisbezogenen Markdown-Kontexte liegen unter src/apothem/hooks/messages/:

  • postcompact.md, precompact.md, stop.md
  • pretooluse-bash.md, pretooluse-write.md, pretooluse-edit.md, pretooluse-notebookedit.md

Jede Kontextdatei wird vom Dispatcher geladen, wenn ihr Ereignis auslöst und ihr Kontextargument in der Einstellungsdatei registriert ist.

Generiertes Hook-Nachrichtenverzeichnis

NameDescriptionSource
postcompactPost-compaction Blind Bootstrap (CM-24 §6.2). Restore working state from durable files; conversation context is now compressed.src/apothem/hooks/messages/postcompact.md
posttooluse-proactive-compactionProactive-compaction tracker for PostToolUse tool calls.src/apothem/hooks/messages/posttooluse-proactive-compaction.md
precompactPre-compaction protocol (CM-24 §2.3). Externalize all in-conversation state BEFORE the harness compresses context.src/apothem/hooks/messages/precompact.md
pretooluse-askuserquestion-recommendedCall-time (Recommended)-marker guard for AskUserQuestion tool calls.src/apothem/hooks/messages/pretooluse-askuserquestion-recommended.md
pretooluse-bash-plan-guardPlans-Discipline write guard for Bash tool calls (companion to pretooluse-write-plan-guard.md).src/apothem/hooks/messages/pretooluse-bash-plan-guard.md
pretooluse-bashCM-7 git-artifact isolation + M12 numeric-prefix discipline + M15 human-only authorship.src/apothem/hooks/messages/pretooluse-bash.md
pretooluse-conformity> Advisory: this hook reports; it does not block. Mechanical enforcement runs in CI.src/apothem/hooks/messages/pretooluse-conformity.md
pretooluse-dependency-guardDependency-manifest supply-chain guard (advisory).src/apothem/hooks/messages/pretooluse-dependency-guard.md
pretooluse-edit-header-guardSPDX-header inject guard for Edit tool calls.src/apothem/hooks/messages/pretooluse-edit-header-guard.md
pretooluse-editCodebase isolation (Edit scope).src/apothem/hooks/messages/pretooluse-edit.md
pretooluse-eval-guardDynamic-eval / unsafe-deserialization guard — advisory prompt-injection defense.src/apothem/hooks/messages/pretooluse-eval-guard.md
pretooluse-notebookeditCodebase isolation (notebook scope).src/apothem/hooks/messages/pretooluse-notebookedit.md
pretooluse-write-header-guardSPDX-header inject guard for Write tool calls.src/apothem/hooks/messages/pretooluse-write-header-guard.md
pretooluse-write-plan-guardPlans-Discipline write guard for Write / Edit / NotebookEdit tool calls.src/apothem/hooks/messages/pretooluse-write-plan-guard.md
pretooluse-writeCodebase isolation + frontmatter compliance.src/apothem/hooks/messages/pretooluse-write.md
sessionstartSession-start conformity posture.src/apothem/hooks/messages/sessionstart.md
stopSession-end protocol (CM-14 + CM-24 §2.5 + CM-26 + CM-22 §2/§4).src/apothem/hooks/messages/stop.md

On this page