jev-lint plugin
jev-lint finds what linters miss: names, comments and tests that drifted from the code. A model answers one-sentence rules.
- 132 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Source code of checked files is sent to a paid external API.
- Pre-commit and pre-push hooks fire on every commit and push.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add plugins/jev-lintDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Source code of checked files is sent to a paid external API.
- Pre-commit and pre-push hooks fire on every commit and push.
This is third-party code. Review the repository files before installing.
What it does
`jev-lint` picks code with ast-grep matchers and asks a model a one-sentence question, for example whether a comment above a function claims something the code does not do. The model answers with a probability, and a result above the rule cutoff becomes a finding. The bundle ships 99 rules: a name against its implementation, a comment against the function body, a test against its claimed behaviour, a silently swallowed failure, what a shell script does, Markdown quality and a commit message against its diff. The Claude Code plugin adds `/jev-lint:review`, `/jev-lint:commits`, `/jev-lint:prose` and `/jev-lint:new-rule`.
Who it is for. Teams where agents write plenty of code, comments and tests and reviewers lack time to check them against the implementation.
Good fit when
- An agent rewrote a function, but the comment above it stayed as before.
- A pull request has a test that passes even when the claimed behaviour is broken.
- A commit message promises one thing and the diff does another.
- You want to describe a custom check in one sentence without writing an ESLint plugin.
Not a fit when
- You need what a compiler, type checker or ESLint already decides.
- Code must not be sent to an external API.
- The result is meant as a strict deterministic gate.
Example request
Review the current branch with `/jev-lint:review` and judge each finding against the code: which are real and which are false.Limitations
Checked code is sent to the Typesafe API, the key goes in `TYPESAFE_API_KEY` and requests cost money. The `--dry-run` mode prices a run without requests. The author reports that roughly one finding in five is wrong and that a score near the cutoff shifts between runs, so read a finding as a candidate for a human. Node 24 or newer and `npx` are required. Rules are best calibrated for TypeScript and Rust; other languages are held to the same bar but not promised. Results are not strict: the same code can score slightly differently, and verdicts are cached by rule and code content.
How to disable. Remove the plugin through `/plugin` or the package from devDependencies, then delete `.jev-lint.yaml` and the hooks created by `jev-lint init --pre-commit` and `--pre-push`.
FAQ
How do I try the rules without a key or cost?
`npx jev-lint check src --dry-run` lists the questions that would be asked and their price. `jev-lint rules` prints the rules, and CI can read a committed cache with no key.
Where does the key come from?
From the `TYPESAFE_API_KEY` or `TYPESAFEAI_API_KEY` environment variable. It does not belong in the config, because `.jev-lint.yaml` lives in the repository.
How do I run it in CI?
`review --base "$GITHUB_BASE_REF" --format github` annotates the pull request. `jev-lint init --pre-commit` and `--pre-push` create hooks, which block a commit only once a rule is raised to `severity: error`.
How do I write my own rule?
Describe an ast-grep matcher and an `ask` field with one sentence, for example about a swallowed failure in a `catch` block. The guide is in `docs/writing-rules.md`.
How does the plugin differ from the skill?
The `jev-lint` skill teaches an agent to run it and write rules, while the Claude Code plugin also installs four commands. The `jev-lint-repo` skill is for developing the tool itself.
Discussion
No questions or reviews yet.
Related
PluginsReviews the git diff and the conversation with the agent: catches bugs and gaps between your request and the agent's result. CLI, skill, GitHub Action
A static linter for agent instructions: finds ambiguous tool descriptions and schema gaps before a run, with no model or network
A Claude Code plugin that makes an agent check the code around a change and prove the work with a test and independent review
A check for AI-generated code: empty functions, imports of things that do not exist, and docs that oversell.
A Claude Code plugin set: Figma visual regression, test and code review, project lore and session analysis as an HTML report
The evidence-code-review skill for Codex and Claude Code: evidence-based change review with MUST, SHOULD, BETTER and NITS levels
README in short
The README explains the idea, lists the kinds of checks and states the weak spots plainly: non-determinism and the share of false findings. Separate guides cover cost, hooks and rule writing.