CMaintz

Leash — Development skill for Claude Code

Development community

Jev-powered guardrail that keeps a coding agent's output quality on a short leash: judges every turn against your un-lintable project rules and tells it which one it broke.

How to install Leash

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

What Leash does

Jev-powered guardrail that keeps a coding agent's output quality on a short leash: judges every turn against your un-lintable project rules and tells it which one it broke. Ratcheted, advisory, never a gate.

Alternatives in Development

README

Leash

Keep a coding agent's output quality on a short leash. Leash judges every turn against your project's un-lintable rules using [Jev](https://typesafe.ai) (TypeSafe's System One decision model), and tells the agent exactly which rule it broke so it fixes it before moving on. About 300 ms and a fraction of a cent per turn.

Jev-powered. Early (v0.1): the offline core (rubric, engine, ratchet, CLI). Agent hooks land next. Inspired by [Abide](https://www.npmjs.com/package/@coldtea/abide); the difference is the ratchet (below).

Why

Your `CLAUDE.md` / `AGENTS.md` is full of rules no linter can check: "no premature abstractions", "never let a raw error reach a user", "small single-purpose functions". Nothing enforces them, so the agent breaks them from the first edit. A frontier LLM could judge each rule, but at a cent and a few seconds per check it never pays off. Jev answers one typed question per rule with a calibrated probability in ~300 ms for a fraction of a cent, which is what makes checking every turn viable.

What makes it different: the ratchet

Judging every file as if freshly written buries you in findings on a real repo. Leash borrows Foundry's accepted-debt baseline: existing violations are baselined once, and Leash only ever flags what a turn **newly** introduces. The baseline is one-way, it can only shrink. That is what makes it adoptable on an existing codebase from day one.

Turn-check is the default (once per turn, on the whole diff, where the un-lintable questions actually have an answer). A per-edit mode is planned but off by default: at Jev's edit-level precision, per-edit auto-repair risks the agent chasing phantoms.

Install

npm install -g leash   # or: npx leash 

Set a key: `export JEV_API_KEY=...` (or `TYPESAFE_AI_BASE_URL` for a self-host / proxy / mock). No key means Leash no-ops and lets the edit through, always.

Use

leash report              # list the rules in .leash/rubric.json
leash audit