Hook Development

Průvodce psaním plugin hooků Claude Code napříč všemi devíti typy událostí

od tzachbon · tzachbon/smart-ralph

Otestováno · Funguje ★ 8.4/10

Hook Development — Průvodce psaním plugin hooků Claude Code napříč všemi devíti typy událostí

Co umí

Poskytuje referenční pokyny pro tvorbu plugin hooků Claude Code, pokrývající všech devět událostí hooků (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification), prompt-based vs. command hooky, matchery a formáty plugin hooks.json vs. settings.json. Spouští se, když uživatel požádá o vytvoření hooku, blokování nebezpečných příkazů, ověření použití nástroje, použití ${CLAUDE_PLUGIN_ROOT} nebo nastavení automatizace řízené událostmi. Obsahuje příkladové skripty a validátor schématu hooks.json.

Testovací report

Klonován repozitář a napsány dva artefakty hooks.json pro stejnou úlohu (ověření zápisů na PreToolUse + kontrola dokončení na Stop). Baseline (mé vlastní znalosti) vyprodukoval Stop hook, který vlastní validate-hook-schema.sh repozitáře označil jako "Missing 'matcher' field", s relativní cestou ./hooks/ a bez timeoutů; verze řízená dovedností přidala matcher, přenosné cesty ${CLAUDE_PLUGIN_ROOT}, timeouty a prompt-based Stop — konkrétní zisk přenositelnosti/kompletnosti. Namátkově zkontrolovány 3 odkazované soubory (validate-write.sh, validate-hook-schema.sh, patterns.md) všechny HTTP 200, žádné bezpečnostní problémy. Zjištěna skutečná nekonzistence: formát obálky pluginu, který dovednost sama doporučuje, porušuje vlastní validátor dovednosti (jq error), který zpracovává pouze přímý formát nastavení; a dovednost vyžaduje matcher na Stop hookech, které oficiální Claude Code hooky nepoužívají.

Testováno: 2026-07-21 · Claude Code 2.x (agent harness)

Instalace

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.

Příkazy a ukázkové prompty

  • /hook-developmentPrůvodce psaním plugin hooků Claude Code napříč všemi devíti typy událostí

Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):

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