Find the claims your second brain forgot to question.

A cost-capped linter for Obsidian vaults and Markdown wikis. It finds possible contradictions, dated claims, unresolved markers, and missing pages, then shows the exact quote it scored, both lines for a contradiction, and how sure it is.

A stack of note pages. The top page has a line struck through in red; its corner is folded back to reveal the same line highlighted in yellow on the page beneath.
One page lifted. The line it disagrees with, underneath.

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.