Lint before lore hardens.
Regex catches broken syntax. jev-lint adds a narrow semantic pass for claims that disagree or age badly, using TypeSafe Jev as a second opinion, not a hidden editor. Your vault is never edited; you get one report.html.
$ jev-lint ~/brain scanned 99 pages asked 1,267 Jev questions found 16 findings 2 possible contradictions 1 possibly stale claim 1 missing page 12 unresolved markers took 114 s cost $0.024 input tokens wrote report.html
One vault, one run, 17 September 2026: the owner's own 99-page wiki. Numbers describe that run, not a benchmark.
Four checks. Two kinds of evidence.
Rule checks run locally and are exact. Jev signals send only the selected claim text and come back with a probability. The report never mixes the two.
- Jev signal
Possible contradictions
Compares exact claim pairs from linked or strongly overlapping pages.
- Jev signal
Possibly stale claims
Scores dated statements that may need a current source.
- Rule check
Unresolved markers
Finds TODO, FIXME,
[?], and explicit unresolved comments. - Rule check
Missing pages
Resolves Obsidian wikilinks against scanned paths, titles, and aliases.
Evidence, not vibes.
Every semantic flag is tied to the quote Jev actually scored. Open a contradiction and you get both lines, where they live, and the probability, so you can decide, not the model.
Possible contradiction · from the run above Jev probability 84% wiki/concepts/compiled-vs-retrieved-knowledge.md:22 ↔ wiki/concepts/llm-wiki-pattern.md:19 Show both lines
“get noted. Knowledge is compiled once and then kept current rather than”
compiled-vs-retrieved-knowledge.md, line 22
VERSUS
“and it is meant to be co-evolved rather than written once.”
llm-wiki-pattern.md, line 19
Verify scope and dates before changing either note. A flag is a prompt to read the sources, not permission to rewrite one.
The exact lines Jev scored in the 17 September run, fragments and all. The report lists findings per page with probability and confidence.
Run it where your notes live.
Python 3.11+. Your notes are never edited. Semantic checks send selected claims to TypeSafe Jev; stale-claim checks also send the page title and its dates. The default budget is $1.00, and a run is refused before any API call if the estimate exceeds it.
pipx install git+https://github.com/vayungodara/jev-lint
# or: uv tool install git+https://github.com/vayungodara/jev-lint
jev-lint ~/path/to/vault --dry-run
jev-lint ~/path/to/vault --open
Installation, limits, and cost model →
Set TYPESAFE_API_KEY first. --dry-run prints the question count and cost estimate without a single network call.