muratcakmak

Jev Guard — Development skill for Claude Code

Development community

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.

How to install Jev Guard

This entry records only its repository, not the path inside it, so there is no exact command to give. Open muratcakmak/jev-guard and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Jev Guard does

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.

Alternatives in Development

  • Fast Jev Compaction — Claude Code plugin that replaces the compaction summary with Jev decisions: every tool call and result is scor 425 ★
  • Migrations — Versioned breaking change migrations for Turbo 263 ★
  • Claude Fable 5 Prompt Strategies — Use when composing prompts targeting Claude Opus 5 (Claude 디폴트), Fable 5, Opus 4.8, or Sonnet 5 — 최신 Claude 프롬 176 ★

README

jev-guard

A Claude Code plugin that scores what the model is about to do — and what it just claimed — with a probability model, and denies the call when the score is high enough.

Conventions written in `CLAUDE.md` are advice. The model follows them until the context gets long, then quietly stops. `jev-guard` moves the ones that matter out of the prompt and into hooks, where a broken rule is a denied tool call with the correction attached, not a review comment three days later.

Scoring runs through [Jev](https://typesafe.ai) (`noul` questions — each returns a probability, not a yes/no), so the thresholds are yours to set. **Every failure path passes the call through**: no key, endpoint down, malformed response, the tool call proceeds. The guard never blocks on the scorer being unavailable.

What it does

**1. Rule guard** (`tool.call` on Edit/Write/Bash)

`hooks/rules.ts` holds two tables. `REGEX_RULES` decide locally — no network, no cost — and suit anything a pattern can settle: a path, a command, a flag. `JEV_RULES` go to Jev as one batched request per tool call and cover what a regex cannot express: *is this a hardcoded color where a token exists?*, *is this a catch block that swallows the error?* A rule's `reason` is shown to the model verbatim, so write it as the correction you want.

**2. Deploy gate** (same request, Bash only)

Two questions on every command: *does this deploy, publish, merge, or send a credential?* and *did the user's last prompt ask for exactly that?* Deny when the first is `≥ denyThreshold` and the second is `< 0.5`. This is what stops an agent from pushing a branch you were still discussing. It is deliberately literal — a general go-ahead does not satisfy the second question, and you will be asked again in the command's own words. That is the design, not a bug.

**3. Background mover** (same request)

A command Jev scores as long-running — installs, a full test suite, a dev server — is rewritten to `run_in_background` instead of b