Skip to content

jev-enforce

Claude Code plugin that checks every reply and file edit against your CLAUDE.md rules with one Jev yes/no per rule.

PluginbetaMIT

Overview

jev-enforce makes Claude Code follow CLAUDE.md (or AGENTS.md) by checking output against it. The author's premise is that CLAUDE.md is context, not a constraint: rules hold for a few turns, then raw SQL appears in a handler or a test becomes it.skip. The plugin reads the same rule files Claude Code does, treats each bullet as a rule, and classifies each once (cached) as constraining replies, code, both or neither, skipping git and workflow rules.

A Stop hook checks the final reply and a PostToolUse hook checks Edit, Write and MultiEdit; an end mode records edits and checks them all with the reply in parallel once per turn. Broken rules come back as a block decision quoting the rule, once per turn so it cannot loop. The README estimates about 350 ms and about 3 cents per 1,000 checks. Without a key it does nothing and cannot break a session.

What the decision model decides

TypeQuestionAnswers
ChoiceDoes this rule constrain replies, code, both or neither?replies · code · both · neither
Yes / noDoes this reply or edit break this rule?—

How it works

  1. Read and classify rules from CLAUDE.md files (cached)
  2. On edit or stop, ask one Noul per applicable rule in one request
  3. Return block with quoted rules if any are broken
  4. Claude fixes in the same turn; checks run once per turn

Strengths

  • Enforces project rules on every turn cheaply
  • Cannot loop or break a session
  • CLI works via npx with nothing to install

Caveats

  • The fix itself is not re-checked
  • Requires a TypeSafe key for checks

Getting started

`claude plugin marketplace add erkamyaman/jev-enforce` and `claude plugin install jev-enforce@jev-enforce`, then add TYPESAFE_API_KEY to ~/.claude/settings.json; or try `npx jev-enforce check --as code src/orders.ts`.

At a glance

Type
Plugin
Status
beta
Language
TypeScript
Runtime
Claude Code plugin and npx CLI
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • 📏 Claude Code plugin that makes Claude follow your CLAUDE.md: every reply and edit checked by TypeSafe Jev ✅

    logicrw/awesome-jev-projects
  • 📏 Claude Code plugin that makes Claude follow your CLAUDE.md: every reply and edit checked by TypeSafe Jev ✅.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Whether each reply or edit breaks each CLAUDE.md rule, and which rules apply to code or replies.

Can it get stuck in a loop?

No, it blocks at most once per turn.

What does it cost?

The README estimates about 3 cents per 1,000 checks.

Related projects

  • Coding-agent hook that asks Jev one yes/no per project rule on every edit or turn and makes the agent fix any violation.

    HookbetaTypeScript
  • Claude Code plugin with nine Jev-judged gates for rules, scope, intent, completion and claims that escalate but never approve.

    HookbetaTypeScript
  • Prose linter for AI writing tells: regex handles 18, Jev judges 15 as Nouls in one call, shipped as a Claude Code Stop hook.

    HookbetaPython
  • GitHub Action that reviews repository files against your yes/no questions with Jev and passes only when every answer meets its threshold.

    ProjectbetaTypeScript
  • Lean Pi supervisor: zero-token regex guardrails, done-check verification, per-turn routing and a Jev/Clef semantic slop gate on diffs.

    ProjectbetaTypeScript
  • Pi extension that checks proposed code edits against repository Markdown rules with Jev, reporting rule text and line ranges.

    ProjectbetaTypeScript