eval-hooks

Solid

Audit Claude Code hooks defined in settings.json files for validity, performance safety, and correctness. Resolves each command against the filesystem, checks exit-code strategy for blocking hooks, flags missing timeouts, and reviews interactive vs async patterns. Use when setting up hooks for the first time, debugging a hook that never fires or hangs the agent, or doing a periodic hooks hygiene pass.

AI & Automation 4,957 stars 661 forks Updated today CC-BY-SA-4.0

Install

View on GitHub

Quality Score: 96/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Hooks Evaluator Discover all Claude Code hooks across every settings file in scope, validate each one against the filesystem and hook semantics, then run an interactive session to confirm or improve them. The goal is not just to score; it is to leave every hook working, correctly scoped, and safe to run. ## When to Use - First time adding hooks (validate before committing) - A hook never fires, or fires on every tool call - The agent hangs noticeably before executing a tool - A PreToolUse hook is supposed to block but doesn't - After copying hooks from another project or machine - Periodic hygiene: "are all these hooks still doing something useful?" ## Key Concepts ### Event types | Event | When it fires | Can block? (exit 2) | |---|---|---| | `PreToolUse` | Before any tool call | Yes | | `PermissionRequest` | When a permission dialog appears | Yes | | `PostToolUse` | After tool completes successfully | No (shows stderr to Claude) | | `PostToolUseFailure` | After a tool fails | No | | `PostToolBatch` | After a full batch of parallel tool calls resolves | Yes (stops agentic loop) | | `UserPromptSubmit` | When user submits a prompt | Yes | | `UserPromptExpansion` | When a slash command expands | Yes | | `Stop` | When Claude finishes responding | Yes (continues the turn) | | `SubagentStop` | When a subagent finishes | Yes (continues the subagent) | | `TeammateIdle` | When an agent team teammate goes idle | Yes | | `TaskCreated` | When a task is being created | Yes | | `...

Details

Author
FlorianBruniaux
Repository
FlorianBruniaux/claude-code-ultimate-guide
Created
5 months ago
Last Updated
today
Language
Python
License
CC-BY-SA-4.0

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category