Skip to content
MrJev

jev-lint (mizchi)

Checks whether a function does what its name says, whether a comment is still true, and whether a test verifies what it claims, with a cutoff per rule.

View on GitHub →

Hands-on review

Checks whether a function does what its name says, with a cutoff per rule. Half the run respects .gitignore and the other half doesn't.

Good for

  • Rules a parser cannot check: does this name describe what the function does
  • A per-rule cutoff, so one noisy rule doesn't drag the whole run
  • Respecting `TYPESAFE_BASE_URL`, which makes it reviewable offline

Watch out for

  • Its own exclusion list skips dot-files and eight directories, and ignores .gitignore
  • The ast-grep half does read .gitignore, so one run has two different scopes
  • No CI at all, and npm is three versions ahead of the newest git tag

Tested Sep 20, 2026 at 5f473f1 · Node in Docker, offline against a local stand-in via its own base-URL override

How we reviewed this: we ran it in Docker offline, pointing it at a local stand-in through the base-URL override it already supports — no patching needed, which is more than most of this batch managed. We made no Jev calls.

What it does

It asks the questions a linter cannot: does this function do what its name promises, is this comment still true, does this test verify what it claims. Findings carry a probability and each rule has its own cutoff, so a rule that fires loosely can be tuned without touching the others.

One run, two ideas of what’s in scope

Files reach the model by three paths, and they do not agree.

The ast-grep matching path uses ast-grep’s own traversal, which reads .gitignore. The other two — block rules with an extensions: list, and the paired-arm rule that goes looking for a test file — use the project’s own file index, which does not:

export const SKIPPED_DIRECTORIES = new Set([
  "node_modules", "dist", "build", "out", "target", "coverage", "vendor", "tmp",
]);

plus a skip for anything starting with a dot. So within a single invocation, a gitignored file is out of scope for one half of the rules and in scope for the other. Whether a given file’s contents are sent depends on which rule happened to match it, which is not a property anyone would guess from the documentation.

The dot-file skip does cover .env, .git and .ssh, which is the important part. But as with the others in this batch, a credential file without a leading dot is just a file.

Verdict

The rule idea is sound and the cutoff-per-rule design is a genuine improvement over a single global threshold. Supporting a base-URL override is a small thing that made this the easiest project in the batch to examine, and more projects should do it.

Against that: no CI whatsoever — there is no .github directory — and npm is on 0.4.0 while the newest git tag is v0.2.1, so what is published is three versions ahead of anything tagged, with no automated tests gating it.

For the single-scope version of this, see JevLint, and for the call-graph version, perch.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Sep 20, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Coding Agents & Developer Tools

fast-jev-compaction

★ 7.0k▲ 1.6k

tamaratran/fast-jev-compaction

Claude Code plugin that replaces the compaction summary with Jev decisions. Every tool call and result is scored; stale ones are dropped or truncated, and everything kept stays verbatim.

TypeScriptReviewed

Jev Review

★ 628▲ 201

devagrawal09/jev-review

Staged code-review workflow for JavaScript and TypeScript with a local dashboard. Jev screens correctness, security, reliability, compatibility, and test risk, then scores severity and suggests a reviewer, with no generative model involved.

TypeScriptReviewed

Foreman

★ 595▲ 153

thruwire/foreman

Puts Jev as a fast supervisor above slower coding agents such as Codex, starting from a ticket, spec, or bug report.

PythonReviewed

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.