Skip to content

jev-linter-action

GitHub Action that reviews repository files against your yes/no questions with Jev and passes only when every answer meets its threshold.

ProjectbetaMIT

Overview

Jev Linter Action reviews repository files using your own yes/no questions. Jev returns probabilities, and the action passes only when every expected answer meets its configured threshold. A plain question expects yes with probability at least 0.8; object form allows negative expectations and custom minimum probabilities. Files are matched by one or more globs and reviewed together by default, or independently with per-file mode. Missing inputs, malformed questions and ambiguous combinations fail before any call.

It runs on Node 24 from a checked-in bundle with no install step. An example reviews a complete Sable agent bundle. The README warns not to use whole-bundle contradiction or duplication questions as consistency checks, because oversized bundles are split and distant chunks are never compared, and recommends representative labelled evaluation before adopting focused comparisons.

What the decision model decides

TypeQuestionAnswers
Yes / noAre navigation paths grounded in supplied evidence rather than guessed? (example)—
Yes / noDo the instructions require finishing the itinerary even after the visitor declines it? (expect false)—

How it works

  1. Configure model, globs, questions and API key in a workflow
  2. Action reads matched files
  3. Jev answers each question
  4. Pass only if every answer meets its expectation and threshold

Strengths

  • No config file or install step
  • Custom expectations and thresholds
  • Validates inputs before calling

Caveats

  • Large bundles are chunked; cross-chunk comparisons are not possible
  • Needs labelled evaluation for reliable thresholds

Getting started

Add `uses: sable-inc/jev-linter-action@v1` with model, glob, questions and api-key to a workflow.

At a glance

Type
Project
Status
beta
Language
TypeScript
Runtime
GitHub Action (Node 24)
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • \`glob\` accepts one pattern or a newline-separated list. All matched files are reviewed together by default; \`per-file: true\` reviews each file independently. Missing inputs, malformed questions and ambiguous combinations fail before calls.

    logicrw/awesome-jev-projects

Frequently asked questions

What does Jev decide?

Whether each yes/no property holds for the matched files.

What is the default threshold?

Yes with probability at least 0.8.

Can it detect contradictions across a large bundle?

No; the README warns distant chunks are never compared.

Related projects

  • Claude Code plugin that checks every reply and file edit against your CLAUDE.md rules with one Jev yes/no per rule.

    PluginbetaTypeScript
  • Prose linter for AI writing tells: regex handles 18, Jev judges 15 as Nouls in one call, shipped as a Claude Code Stop hook.

    HookbetaPython
  • Published Jev client and claim check from the Fake/Real evidence-review site, where Jev filters sources and judges each claim.

    ProjectproductionTypeScript
  • Rust code-review gate asking Jev small typed questions about functions and tests, failing CI only on rules measured 80% right.

    CLIproductionRust
  • Coding-agent hook that asks Jev one yes/no per project rule on every edit or turn and makes the agent fix any violation.

    HookbetaTypeScript
  • Advisor for coding agents: git and Stop hooks flag test tampering, secrets and skipped hooks, with optional Jev review findings.

    Hookbeta