Dezvoltarea Hook-urilor pentru Plugin-uri Claude Code

Ce face

Skill-ul hook-development te ajută să creezi hook-uri event-driven pentru Claude Code. Acestea rulează automat la evenimente precum PreToolUse, PostToolUse, Stop, SessionStart sau UserPromptSubmit. Poți valida tool-uri înainte de execuție, bloca comenzi periculoase sau adăuga context dinamic. Versiunea curentă (0.1.0) pune accent pe hook-urile bazate pe prompt (LLM-driven), care iau decizii contextuale fără scripturi bash complicate.

Când îmi folosește

Îl folosești când vrei să „create a hook”, „add a PreToolUse hook”, „validate tool use”, „block dangerous commands” sau „implement prompt-based hooks”. E util pentru automation zilnic: verifici calitatea codului, integrezi tool-uri externe sau încarci context la început de sesiune. Hook-urile prompt-based sunt recomandate pentru edge-case-uri, iar cele command-based pentru verificări rapide și deterministe.

Cum îl invoc / declanșez

Skill-ul se activează automat când menționezi termeni ca „create a hook”, „${CLAUDE_PLUGIN_ROOT}”, „PreToolUse”, „prompt-based hooks” sau „event-driven automation”. Pentru detalii exacte de invocare verifică doctrina pentru detalii exacte. Configurezi hook-urile în hooks/hooks.json (format plugin cu wrapper „hooks”) sau direct în .claude/settings.json (format settings fără wrapper).

Exemplu practic

Vrei să validezi scrieri de fișiere. În hooks/hooks.json adaugi:

{
  "description": "Validation hooks for code quality",
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "prompt",
            "prompt": "Evaluate if this tool use is appropriate: $TOOL_INPUT",
            "timeout": 30
          }
        ]
      }
    ]
  }
}

Hook-ul prompt-based analizează input-ul și decide dacă permite operația.

Output / unde aterizează

Hook-urile se salvează în structura plugin-ului (de obicei hooks/hooks.json) sau în settings-urile utilizatorului. Rezultatele apar ca decizii de validare, mesaje de eroare sau acțiuni automate. Pentru hook-uri command-based, scripturile bash din ${CLAUDE_PLUGIN_ROOT}/hooks/ rulează și returnează output-ul direct în fluxul Claude Code.

Limite / gotchas

Hook-urile prompt-based suportă doar Stop, SubagentStop, UserPromptSubmit și PreToolUse. Timeout-urile implicite (30s pentru prompt, 60s pentru command) pot fi ajustate, dar depășirea lor anulează hook-ul. Formatul plugin cere wrapper-ul „hooks”, iar cel de settings nu. Nu uita că descrierea din JSON e opțională. Pentru scenarii complexe sau integrări externe, testarea manuală rămâne obligatorie. Vezi All guides pentru alte skill-uri daily.