jev-guard (muratcakmak)
Claude Code plugin that moves CLAUDE.md rules into hooks, denying rule-breaking edits and unasked deploys via Jev probabilities.
Overview
jev-guard by muratcakmak is a Claude Code plugin that scores what the model is about to do and what it just claimed, and denies tool calls when the score is high enough. It moves the conventions that matter out of CLAUDE.md, which the model stops following as context grows, into hooks where a broken rule becomes a denied call with the correction attached.
A rule guard runs on Edit, Write and Bash: regex rules decide locally at no cost, and Jev rules (such as a hardcoded colour where a token exists, or a catch block swallowing errors) go to Jev in one batched request per call. A deploy gate asks whether a command deploys, publishes, merges or sends a credential, and whether the user's last prompt asked for exactly that. It can also route docs into prompts and check the final answer against the turn's evidence. Thresholds are configurable (deny at 0.7 by default), and every failure path lets the call through. The shipped rules are React and React Native examples meant to be replaced.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this edit break a project rule that a regex cannot express? | — |
| Yes / no | Does this command deploy, publish, merge or send a credential? | — |
| Yes / no | Did the user's last prompt ask for exactly that? | — |
How it works
- Hook fires on Edit, Write or Bash
- Regex rules decide locally first
- Jev rules and deploy questions batched in one request
- Deny with the correction if above threshold; fail open on errors
Strengths
- Rules enforced in hooks, not just prompts
- Configurable thresholds
- Fails open, never blocks on scorer outage
Caveats
- Example rules must be replaced with your own
- Fail-open design means outages skip checks
Getting started
Clone into ~/.claude/plugins/jev-guard, export JEV_API_KEY, point Claude Code at the plugin, then edit hooks/rules.ts.At a glance
- Type
- Project
- Status
- beta
- Language
- TypeScript
- Runtime
- Claude Code plugin (hooks)
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Probability-scored guardrails for Claude Code: deny rule-breaking edits and unasked-for deploys, route your docs into each prompt, and check the final answer against the turn's own evidence.
logicrw/awesome-jev-projectsProbability-scored guardrails for Claude Code: deny rule-breaking edits and unasked-for deploys, route your docs into each prompt, and check the final answer against the turn's own evidence.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
Whether edits break semantic rules and whether commands deploy something the user did not ask for.
What if Jev is unavailable?
The tool call proceeds; every failure path passes through.
Can I use my own rules?
Yes, hooks/rules.ts is the config and is meant to be replaced.
Related projects
Risk gate for AI coding agents: Jev decides at five layers and Claude Code hooks enforce deny or ask deterministically.
ProjectbetaJavaScriptAuditable Zig terminal agent pairing Codex for coding with Jev typed preflight and postflight checks under deterministic policy gates.
CLIproductionZigHermes plugin that asks Jev to review risky plans, check claims against sources, and judge whether a task is really finished.
PluginbetaAsynchronous System-1 supervisory plugin for Hermes Agent with typed Jev decisions, ranking, verification and an opt-in tool gate.
ProjectbetaPythonLean Pi supervisor: zero-token regex guardrails, done-check verification, per-turn routing and a Jev/Clef semantic slop gate on diffs.
ProjectbetaTypeScriptAdvisory Jev sidecar for Pi: four pre-flight hazard checks before bash/write/edit and four diff-quality checks after edits.
PluginbetaTypeScript