claudeers.
// Claude Plugins

jev-enforce

πŸ“ Claude Code plugin that makes Claude follow your AGENTS.md: every reply and edit checked by TypeSafe Jev βœ…

Install with your AI

Paste into Claude Code, Cursor, or any agent β€” it reads the repo and wires the tool into your project.

Install and set up jev-enforce (claude-plugin project) into my current project.
Found on https://claudeers.com/jev-enforce
Repo: https://github.com/erkamyaman/jev-enforce
Homepage/docs: https://www.npmjs.com/package/jev-enforce
Detected install method: claude-plugin β†’ /plugin install jev-enforce@erkamyaman/jev-enforce
Category: plugins. Platforms: cli, api, mobile.
Read the repo's README for exact setup and env vars, then install it and wire it into my project.

Claudeers Health Verdict:
unknown; community-verified: false. Confirm the source before running anything.
// or install directly (claude-plugin)

⚠ Unverified / not recently updated β€” review before pasting a run-this config.

/plugin marketplace add erkamyaman/jev-enforce
/plugin install jev-enforce@erkamyaman/jev-enforce
// or clone
git clone https://github.com/erkamyaman/jev-enforce

// compatibility

Platformscli, api, mobile
Operating systemsβ€”
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguageTypeScript

Get your FREE $2.50 API credits to access TickAtlas financial data β†—

jev-enforce

Claude Code plugin that checks every reply and every file edit against your CLAUDE.md (or AGENTS.md), using TypeSafe's Jev. Break a rule and Claude gets it quoted back and fixes it, in the same turn.

jev-enforce catching six broken rules in one check

The handler it is checking is demo/src/orders.ts.

Why

CLAUDE.md is context, not a constraint. It holds for a few turns, then a handler shows up with raw SQL in it and a test quietly becomes it.skip. Nothing checks the output against the rules, so this does.

Jev makes it cheap enough to run every turn: it answers typed yes/no questions instead of writing text, all of them in one request. One question per rule, about 350ms, about 3 cents per 1,000 checks.

Try it

Nothing to install, Node 18+ and npx are enough:

npx jev-enforce check --as code src/orders.ts

Install

claude plugin marketplace add erkamyaman/jev-enforce
claude plugin install jev-enforce@jev-enforce

Add your key (from console.typesafe.ai) to ~/.claude/settings.json:

{ "env": { "TYPESAFE_API_KEY": "..." } }

No key, no checks. It cannot break a session.

How it works

  • Reads the same rule files Claude Code does: ~/.claude/CLAUDE.md, CLAUDE.md, .claude/CLAUDE.md, CLAUDE.local.md, .claude/rules/**, and AGENTS.md when the project has no CLAUDE.md, matching Claude Code's own precedence. Each bullet is one rule.
  • Sorts each rule once, cached: does it constrain replies, code, both, or neither. Git and workflow rules land in neither and are skipped.
  • A Stop hook checks the final reply. A PostToolUse hook checks Edit, Write and MultiEdit.
  • With JEV_ENFORCE_MODE=end, edits are only recorded while Claude works. The Stop hook checks every edited file and the reply together, in parallel, so a turn pays for one check no matter how many edits it made.
  • Broken rules come back as decision: "block" with the rules quoted, so Claude fixes it before you see it. Once per turn, so it cannot loop, which also means the fix itself is not re-checked.

CLI

Installed as a plugin, or through npx jev-enforce:

jev-enforce rules                          # your rules and how each was sorted
jev-enforce check --as code src/orders.ts  # exits 1 if a rule is broken
jev-enforce check --as reply message.txt

The CLI reads TYPESAFE_API_KEY from the environment, so it works in CI as a rule check on changed files.

Settings

EnvDefault
TYPESAFE_API_KEYnoneRequired
JEV_ENFORCE_THRESHOLD0.7How sure Jev must be before Claude is told
JEV_ENFORCE_MODEturnend checks all edits once when the turn ends, instead of after each edit
JEV_ENFORCE_OFFunset1 disables it

Benchmark

59 labeled examples against 19 rules, half style and half architecture and security. Full output in bench/results.md, reproduce with npm run bench.

ThresholdPrecisionRecallClean texts wrongly flagged
0.687.8%95.6%3 of 28
0.7 (default)93.3%93.3%2 of 28
0.895.3%91.1%2 of 28
0.997.4%84.4%1 of 28

348ms p50, $0.0027 for the whole run.

What it is bad at

  • It is a model, not a guarantee. At the default threshold about 1 in 15 flags is wrong and about 1 in 15 broken rules slips through.
  • Exact characters. It read 2019–2024 as an em dash.
  • Dataflow. prefer-const rules need a linter, not a model.
  • Rules that depend on state outside the text. "Never add an npm dependency" scored 0.56 on a new axios import, because it cannot see package.json. Editing an old migration scored 0.06.
  • Your reply text, edits and rules go to TypeSafe's API.

Development

npm install
npm test

TypeScript, no runtime dependencies, tests run offline against a fake Jev. dist/src/ is committed because Claude Code runs plugin hooks straight from the repo, so run npm run build before committing (npm run check-dist verifies).

If this saves you from one more "I told it not to do that" moment, you can sponsor the work.

License

MIT

// faq

What is jev-enforce?

πŸ“ Claude Code plugin that makes Claude follow your AGENTS.md: every reply and edit checked by TypeSafe Jev βœ…. It is open-source on GitHub.

Is jev-enforce free to use?

jev-enforce is open-source under the MIT license, so it is free to use.

What category does jev-enforce belong to?

jev-enforce is listed under plugins in the Claudeers registry of Claude-compatible tools.

2 views
β˜… 10 stars
unclaimed
updated 1 day ago

// embed badge

jev-enforce on Claudeers
[![Claudeers](https://claudeers.com/api/badge/jev-enforce.svg)](https://claudeers.com/jev-enforce)

// retro hit counter

jev-enforce hit counter
[![Hits](https://claudeers.com/api/counter/jev-enforce.svg)](https://claudeers.com/jev-enforce)

// reviews

// guestbook

0/500

// related in Claude Plugins

πŸ”“

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.

// pluginsmultica-ai/β˜… 215,548[ claude ]
πŸ”“

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explainin…

// pluginsanthropics/⟨PythonβŸ©β˜… 147,969[ claude ]
πŸ”“

"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/

// pluginsHKUDS/⟨PythonβŸ©β˜… 50,756β—· Apache-2.0[ claude ]
πŸ”“

financial-services β€” a Claude ecosystem project on GitHub.

// pluginsanthropics/⟨PythonβŸ©β˜… 37,359β—· Apache-2.0[ claude ]
β†’ see how jev-enforce connects across the ecosystem