jev-lint (vayungodara)
Linter for Obsidian vaults and LLM wikis that flags contradictions, stale claims, unresolved markers and dangling links with Jev.
Overview
jev-lint (vayungodara) checks a Markdown knowledge base, such as an Obsidian vault or a structured LLM wiki, for possible contradictions, stale claims, unresolved markers and dangling wikilinks. Mechanical checks run locally; only selected claims (plus page title, updated date and run date for staleness) go to Jev for semantic scoring. It writes a self-contained report.html with the exact evidence behind every flag. It is unrelated to jevlint.dev.
A dry run prints the question count and cost estimate without calling Jev, and a default $1.00 budget refuses runs whose estimated cost exceeds it. Exit codes distinguish no findings, findings and errors. The README reports a run on a personal wiki of 99 pages with 1,267 questions, 16 findings, 114 seconds and $0.0243, noting this describes that vault and version 0.1.0 rather than a guarantee. It can reuse a Jev key configured for the Amp MCP server.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Do these two claims contradict each other?(inferred) | — |
| Yes / no | Is this claim likely stale given its date?(inferred) | — |
How it works
- Scan the vault and run local mechanical checks
- Select claims for semantic checks within the budget
- Ask Jev contradiction and staleness questions
- Write report.html with evidence for each flag
Strengths
- Budget cap and dry-run estimate
- Evidence shown for every finding
- Only selected claims leave the machine
Caveats
- Version 0.1.0
- Findings are signals that need human review
Getting started
`pipx install git+https://github.com/vayungodara/jev-lint`, set TYPESAFE_API_KEY, then `jev-lint ~/path/to/vault --dry-run`.At a glance
- Type
- Project
- Status
- beta
- Language
- Python
- Runtime
- CLI
- Has code
- yes
Use cases and integrations
How curated lists describe it
Lint a Markdown knowledge base (Obsidian vault or LLM wiki) for contradictions, stale claims, unresolved markers and missing pages, using TypeSafe Jev.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
Whether selected claims contradict each other or look stale.
Can it overspend?
No, runs over the budget (default $1.00) are refused before any call.
Is it related to jevlint.dev?
No.
Related projects
Local-first Windows writing studio with knowledge graphs and author voice, where optional Jev evaluates candidates and editorial decisions.
ProjectbetaTypeScriptNeo4j demos using Jev as a calibrated judge in GraphRAG pipelines, starting with entity resolution and a review queue.
AppprototypePythonCommit-msg hook where one Jev request checks the message against the staged diff and flags filler, contradictions and secrets.
HookbetaPythonEditorial QA tool where Jev judges per fact whether an edit preserved the original, with a confidence gate and human review fallback.
ProjectbetaJavaAgent skill where Jev flags 35 AI-writing patterns per paragraph and the model edits only the flagged spots.
ProjectbetaPythonCodex and Claude Code Stop hook that asks Jev how many asks and points a long agent message has, pacing multi-ask messages.
HookbetaPython