What problem does it solve? Writing a Claude Code hook by hand requires knowing the lifecycle events, the stdin/stdout protocol, exit-code semantics, and settings.json wiring. This Skill turns a plain-English description of a desired guarantee or automation into a working, tested hook without the user writing Python. ## Core Features & Use Cases - Event Selection: Maps the requested behavior to the correct lifecycle event (PreToolUse, PostToolUse, Stop, UserPromptSubmit, SessionStart, Notification, PreCompact) and determines whether it can block. - Hook Authoring: Writes a uv single-file Python script that reads JSON from stdin, fails open on errors, honors stop_hook_active, and runs project commands with the correct virtualenv on PATH. - Settings Wiring and Verification: Merges the hook into .claude/settings.json without clobbering existing hooks, then runs the hook with sample payloads to confirm it exits 0 when allowing and 2 when blocking. - Use Case: A user says "never let the agent read my .env file" and receives a blocking PreToolUse hook, wired into settings.json, with a tested payload proving it refuses the read. ## Quick Start Ask the agent to create a hook that blocks edits to the migrations folder until the tests pass, and let it write, wire, and verify the hook for you.