The Jev-enator
Three Claude Code hooks that each ask Jev a question.
Jake Reardon’s hooks are a danger gate before a risky command, a notice when something failed quietly, and a check on whether the work is really finished.
The Jev-enator</h1> <p align="center"> <em>It can't be bargained with. It can't be reasoned with.<br> It absolutely will not let you <code>git push --force</code> over your colleague's work.</em> </p> <p align="center"> <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-3776AB?logo=python&logoColor=white"> <img alt="dependencies: none" src="https://img.shields.io/badge/dependencies-none-2ea44f"> <img alt="latency ~350ms" src="https://img.shields.io/badge/latency-~350ms-blue"> <img alt="cost per check" src="https://img.shields.io/badge/per%20check-%240.00004-blue"> <img alt="tests 71/71" src="https://img.shields.io/badge/fixtures-71%2F71-2ea44f"> <img alt="CI" src="https://github.com/jakenbear/the-jev-enator/actions/workflows/test.yml/badge.svg"> <img alt="license MIT" src="https://img.shields.io/badge/license-MIT-lightgrey"> </p> 🤖 Claude Code hooks that use [Jev](https://docs.typesafe.ai) to make cheap, calibrated judgement calls **inside the agent loop** — where a full LLM call would be too slow and too expensive to sit in the hot path. > 👉 **New here?** [**WHY.md**](WHY.md) is the two-minute version: what breaks > without this, what Jev is doing that's interesting, and what a year of it cost > (\$0.14). ### 🎯 Four hooks so far | | Hook | Event | What it does | Default | | :-: | --- | --- | --- | --- | | 🛡️ | **danger gate** | `PreToolUse` | Blocks destructive tool calls before they run | 🔴 **enforcing** | | 🔔 | **failure notice** | `PostToolUse` | Tells the agent when command output contains a failure | 🔴 **enforcing** | | ✅ | **completion check** | `Stop` | Judges whether Claude actually finished its turn | 🟡 **log-only** | | 🔍 | **scope check** | `PreToolUse` | Notes when a write isn't part of what you asked fo