Language server · classifier
Steer code with rules, not with token maxxing.
Jev is a classifier, not a chat model: one typed question about one line → a value and a probability, never prose. jev-lsp runs repo rules as ordinary LSP diagnostics, code actions, and code lens.
- 1 line → 1 value + p
- LSP diagnostics
- local / cheap models
Surfaces
Findings on the line: same surfaces your client already has
On save, matching lines become diagnostics a harness or editor already understands. No custom jev/… methods.
Model shape
Classifier, not chat
- One question → one answer: pass/fail or typed value + probability floor.
- Rules in the repo:
.jev/rules/*.json, versioned like code. - Semi-deterministic: pattern exact; judgement must clear the floor before publish.
prose · whole file · every turn
Here are several thoughts about this file… consider error handling on line 412, also naming, also whether the module boundary is right, also…
{
"value": "fail",
"p": 0.91
}
Workflow
The loop
- 01Spec: what the code must do.
- 02Rules:
.jev/rules/*.json(words + pattern for candidate lines). - 03Steer: jev-lsp on save, human or harness.
- 04Stay on track: ordinary diagnostics.
Full schema → docs/GUIDE.md.
{
"id": "no-unwrap",
"question": "Does this line unwrap a Result/Option unsafely?",
"pattern": "\\.unwrap\\(\\)",
"floor": 0.8
}
Economics
Why local / cheap models work here
Rules carry conventions; the model answers about one candidate line. No matching pattern → no model call.
| rules pass | chat review (same file) | |
|---|---|---|
server.rs ~2.6k lines |
~5.3k in / 345 out · 2 findings · ~$0.00022 | ~30.5k in / 9 out · 0 findings · ~$0.00306 |
| 30 Rust docs | ~$0.0034 · 20 calls | — |
decide jev-1.13 vs chat review gemini-2.5-flash-lite. PoC: accuracy from steering, not token maxxing.
Accuracy from steering, not from burning tokens.
Clients
Same findings in a harness, Neovim, or VS Code
No custom methods. Neovim is primary (nvim/). Anything that starts a language server works, harnesses included. VS Code / Cursor via editors/cursor/.
diagnostics code actions code lens