Skip to content
Apothem
Referencia

Hooks

Manejadores de eventos de herramientas que se disparan en SessionStart, PreToolUse y Stop, cargando contextos de mensaje que imponen el aislamiento de git y la disciplina de planes.

Los hooks se disparan en eventos de herramientas y cargan contextos de mensaje que el asistente trata como prompts de sistema adicionales. El cableado vive en el bloque de hooks del settings.json de Claude Code, el archivo de hooks hooks.json de Codex y el mapa de hooks del settings.json de Qwen Code.

EventoTiempo de esperaPropósito
SessionStart30 segundosLeer memoria, comprobar el estado del plan, reportar la disponibilidad
PreCompact30 segundosVerificar que el estado esté externalizado antes de la compactación
PostCompact30 segundosRestaurar el estado de trabajo tras la compactación
Stop60 segundosExternalización al final de la sesión
PreToolUse (Bash)10 segundosValidación de Bash — aislamiento de artefactos de git
PreToolUse (Write/Edit/NotebookEdit/apply_patch)10 segundosAislamiento de referencias a planes, comprobaciones de frontmatter

Despachador

Las entradas de hook instaladas invocan al despachador mediante la ruta absoluta del script. Las plantillas de ajustes llevan el token ${HARNESS_ROOT}python "${HARNESS_ROOT}/apothem/hooks/dispatch.py" <event> [<message-name>] — que el instalador renderiza a la ruta real de la raíz del harness en el momento de la instalación (Claude Code y Qwen Code materializan el despachador bajo <harness-root>/apothem/hooks/; Codex bajo <harness-root>/hooks/). El despachador es un script autónomo de la biblioteca estándar: arranca su propio sys.path, de modo que no se necesita ningún paquete apothem importable en el host. Desde un checkout de fuente, la forma de módulo python -m apothem.hooks.dispatch <event> (con PYTHONPATH=src) ejecuta el mismo código para desarrollo. El despachador carga hooks/lib/resolve_root.py para la resolución de la raíz del ecosistema y delega en hooks/emit_hook_context.py y hooks/session_start_bootstrap.py.

Contextos de mensaje

Los contextos en Markdown por evento viven bajo src/apothem/hooks/messages/:

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

Cada archivo de contexto es cargado por el despachador cuando su evento se dispara y su argumento de contexto está registrado en el archivo de ajustes.

Inventario de mensajes de hook generado

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