Hook Development

Guía para escribir hooks de plugins de Claude Code en los nueve tipos de eventos

Por tzachbon · tzachbon/smart-ralph

Probado · Funciona ★ 8.4/10

Hook Development — Guía para escribir hooks de plugins de Claude Code en los nueve tipos de eventos

Qué hace

Proporciona guía de referencia para la creación de hooks de plugins de Claude Code, cubriendo los nueve eventos de hook (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification), hooks basados en prompt vs comandos, matchers, y los formatos hooks.json vs settings.json del plugin. Se activa cuando el usuario pide crear un hook, bloquear comandos peligrosos, validar el uso de herramientas, usar ${CLAUDE_PLUGIN_ROOT} o configurar automatización basada en eventos. Incluye scripts de ejemplo y un validador de esquema hooks.json.

Informe de la prueba

Se clonó el repositorio y se escribieron dos artefactos hooks.json para la misma tarea (validar escrituras en PreToolUse + verificar finalización en Stop). La línea base (mi propio conocimiento) produjo un hook Stop que el propio validate-hook-schema.sh del repositorio marcó como "Missing 'matcher' field", con una ruta relativa ./hooks/ y sin tiempos de espera; la versión guiada por la habilidad añadió matcher, rutas portátiles ${CLAUDE_PLUGIN_ROOT}, tiempos de espera y un Stop basado en prompt — una ganancia concreta de portabilidad/completitud. Se verificaron 3 archivos referenciados (validate-write.sh, validate-hook-schema.sh, patterns.md) todos HTTP 200, sin problemas de seguridad. Se observó una inconsistencia real: el formato de envoltura de plugin que la propia habilidad recomienda rompe el propio validador de la habilidad (jq error), que solo maneja el formato de configuración directa; y la habilidad exige un matcher en los hooks Stop, que los hooks oficiales de Claude Code no usan.

Probado el: 2026-07-21 · Claude Code 2.x (agent harness)

Instalación

git clone --depth 1 https://github.com/tzachbon/smart-ralph.git /tmp/hook-development-src
mkdir -p ~/.claude/skills
cp -R "/tmp/hook-development-src/.agents/skills/Hook Development" ~/.claude/skills/hook-development
# SKILL.md lands at ~/.claude/skills/hook-development/SKILL.md
# Utility scripts (scripts/validate-hook-schema.sh, test-hook.sh, hook-linter.sh) require `jq` on PATH.
# Note: the validator parses the DIRECT settings-format hooks.json, not the {"hooks":{...}} plugin
#   wrapper the SKILL recommends — feed it the inner events object, or it errors with a jq index error.

Comandos y prompts de ejemplo

  • /hook-developmentGuía para escribir hooks de plugins de Claude Code en los nueve tipos de eventos

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • Create a PreToolUse hook that blocks rm -rf
  • Add a Stop hook for event-driven automation
  • Write a prompt-based hook for this plugin