Skip to content
Apothem
Référence

Hooks

Gestionnaires d'événements d'outils qui se déclenchent sur SessionStart, PreToolUse et Stop, chargeant des contextes de message imposant l'isolation de git et la discipline des plans.

Les hooks se déclenchent sur les événements d'outils et chargent des contextes de message que l'assistant traite comme des prompts système supplémentaires. Le câblage vit dans le bloc de hooks du settings.json de Claude Code, le fichier de hooks hooks.json de Codex et la table de hooks du settings.json de Qwen Code.

ÉvénementDélai d'attenteObjectif
SessionStart30 secondesLire la mémoire, vérifier l'état du plan, signaler la disponibilité
PreCompact30 secondesVérifier que l'état est externalisé avant la compaction
PostCompact30 secondesRestaurer l'état de travail après la compaction
Stop60 secondesExternalisation en fin de session
PreToolUse (Bash)10 secondesValidation de Bash — isolation des artefacts git
PreToolUse (Write/Edit/NotebookEdit/apply_patch)10 secondesIsolation des références aux plans, vérifications de frontmatter

Répartiteur

Les entrées de hook installées invoquent le répartiteur par le chemin absolu du script. Les modèles de réglages portent le jeton ${HARNESS_ROOT}python "${HARNESS_ROOT}/apothem/hooks/dispatch.py" <event> [<message-name>] — que l'installateur rend en chemin réel de la racine du harness au moment de l'installation (Claude Code et Qwen Code matérialisent le répartiteur sous <harness-root>/apothem/hooks/ ; Codex sous <harness-root>/hooks/). Le répartiteur est un script autonome de la bibliothèque standard : il amorce son propre sys.path, de sorte qu'aucun paquet apothem importable n'est nécessaire sur l'hôte. Depuis un checkout des sources, la forme de module python -m apothem.hooks.dispatch <event> (avec PYTHONPATH=src) exécute le même code pour le développement. Le répartiteur charge hooks/lib/resolve_root.py pour la résolution de la racine de l'écosystème et délègue à hooks/emit_hook_context.py et hooks/session_start_bootstrap.py.

Contextes de message

Les contextes Markdown par événement vivent sous src/apothem/hooks/messages/ :

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

Chaque fichier de contexte est chargé par le répartiteur lorsque son événement se déclenche et que son argument de contexte est enregistré dans le fichier de réglages.

Inventaire généré des messages de hook

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