Semantic code lint
Lint code against conventions written in plain English, the rules a regex can't express.
Write your team's conventions the way you'd explain them to a new hire, and check code against them in CI or in your agent's write-check-fix loop. It also catches names that lie, stale comments and swallowed errors.
Try it live
Real calls to Jev. Pick an example or paste your own.
Pick an example or paste your own input, then run it.
Under the hood
Every question and rule, in the open. Fork it to change any of them.
What it asks
Reads conventions and code, then asks 5 questions in one call.
- Q1Follows the conventionsYes / no
Does the
codefollow every rule inconventions? - Q2Clear namesYes / no
Do the function and variable names in the
codesay what they do? - Q3Does what its name saysYes / no
Does each function in the
codedo what its name says, with no hidden side effects? - Q4Stale commentsYes / no
Does the
codecontain a comment that no longer matches the code next to it? - Q5Swallowed errorsYes / no
Does the
codeswallow errors or ignore failure cases a caller would care about?
How it decides
Rules run in code, top to bottom. The first one that matches gives the verdict.
- 1If Follows the conventions < 0.35Violations
- 2If Swallowed errors ≥ 0.75Violations
- 3If Follows the conventions < 0.6Warnings
- 4If Clear names < 0.4Warnings
- 5If Does what its name says < 0.4Warnings
- 6If Stale comments ≥ 0.6Warnings
- 7If Swallowed errors ≥ 0.5Warnings
- ·DefaultClean
Call it from your code
Every template runs as-is with an API key, no setup: POST /api/v1/judges/semantic-lint/run.
curl -X POST https://tryevally.com/api/v1/judges/semantic-lint/run \ -H "Authorization: Bearer $EVALLY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input": { "conventions": "Never swallow errors: log them with context or rethrow. Functions that start with '\''get'\'' must not write to the database.", "code": "async function getUser(id) {\n try {\n const user = await db.users.find(id);\n await db.audit.insert({ event: '\''viewed'\'', id }); // read-only lookup\n return user;\n } catch (e) {\n return null;\n }\n}" }}'Seen in the wild
Community builds on Jev that use this pattern. Not affiliated with Evally.
More in Engineering
- Engineering
PR risk review
Is this pull request safe to merge, or does it need a careful human look?
Safe to mergeNeeds careful reviewChanges requested7 questions - Engineering
Commit message check
Does the commit message match the staged diff, with no secrets or debug leftovers?
Looks goodAmendBlock5 questions - Engineering
PR labeler
Label pull requests by type and area, and flag what belongs in the changelog.
FeatureBug fixRefactor+64 questions - Engineering
Package risk check
Catch typosquats and hostile install scripts before an install runs them.
AllowReviewBlock7 questions - Engineering
Vulnerable code check
Flag injection, path traversal, hardcoded secrets and other common holes in a change.
CleanReviewVulnerable4 questions - Engineering
Judge question review
Review a question before Jev answers it: two judgments in one, inputs no option fits, a rating hiding in a yes/no.
Good to goImproveRewrite3 questions - Engineering
Should this be a judge?
Paste a prompt from your code. Find out whether it's really a decision a judge would answer faster and cheaper.
Use a judgeSplit itKeep the LLM4 questions