Hook Development

Wskazówki dotyczące pisania hooków wtyczek Claude Code dla wszystkich dziewięciu typów zdarzeń

Autor: tzachbon · tzachbon/smart-ralph

Testowano · Działa ★ 8.4/10

Hook Development — Wskazówki dotyczące pisania hooków wtyczek Claude Code dla wszystkich dziewięciu typów zdarzeń

Co robi ten skill

Dostarcza wskazówki referencyjne do tworzenia hooków wtyczek Claude Code, obejmujące wszystkie dziewięć zdarzeń hooków (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification), hooki oparte na promptach vs komendach, matchery oraz formaty hooks.json vs settings.json wtyczek. Uruchamia się, gdy użytkownik prosi o utworzenie hooka, blokowanie niebezpiecznych komend, walidację użycia narzędzi, użycie ${CLAUDE_PLUGIN_ROOT} lub konfigurację automatyzacji opartej na zdarzeniach. Zawiera przykładowe skrypty i walidator schematu hooks.json.

Raport z testu

Sklonowano repozytorium i napisałem dwa artefakty hooks.json dla tego samego zadania (walidacja zapisów na PreToolUse + sprawdzenie ukończenia na Stop). Wersja bazowa (moja własna wiedza) wygenerowała hook Stop, który własny skrypt repozytorium validate-hook-schema.sh oznaczył jako „Missing 'matcher' field”, ze względną ścieżką ./hooks/ i bez limitów czasu; wersja prowadzona przez umiejętność dodała matcher, przenośne ścieżki ${CLAUDE_PLUGIN_ROOT}, limity czasu i Stop oparty na promptach — konkretny zysk w przenośności/kompletności. Sprawdzono 3 odwołane pliki (validate-write.sh, validate-hook-schema.sh, patterns.md) wszystkie HTTP 200, brak zagrożeń bezpieczeństwa. Zaobserwowano rzeczywistą niespójność: format opakowania wtyczki, który sama umiejętność zaleca, psuje własny walidator umiejętności (błąd jq), który obsługuje tylko bezpośredni format ustawień; a umiejętność wymaga matchera na hookach Stop, czego oficjalne hooki Claude Code nie używają.

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

Instalacja

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.

Komendy i przykładowe prompty

  • /hook-developmentWskazówki dotyczące pisania hooków wtyczek Claude Code dla wszystkich dziewięciu typów zdarzeń

Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):

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