Skip to content

jev-clean

Decision-first CSV cleaning: code proposes repairs, Jev scores action, applicability and risk, a fixed policy applies or abstains.

ProjectprototypeMIT

Overview

Jev Clean is an experimental Python tool for cleaning CSV data with an inspectable reason to apply each repair or abstain. Local code builds bounded repair candidates, Jev returns explicit distributions for the action, its applicability and its semantic risk, and a fixed policy decides what may be applied. The model never writes executable repairs and never mutates the source CSV.

It keeps the full distribution rather than an expected score, because an average hides the high-risk tail. The README illustrates this with two synthetic risk distributions with the same expected level on a 0/1/2 scale: one passes, while the other abstains because the probability of high risk (0.20) exceeds a 0.10 limit. It saves the distribution, the recomputed expectation, every threshold comparison and the final status, and other eligibility checks must also pass. A recorded live demo on 22 September 2026 produced 10 candidates, 6 committed decisions and 4 abstentions, a partial outcome, and the rule baseline repaired more of that dataset; the author stresses this shows inspectability, not calibrated accuracy. It supports Python 3.11-3.13 with CI and is MIT licensed, at v0.2.0.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich repair action applies to this cell or row?—
Yes / noIs this candidate repair applicable here?yes · no
ScoreWhat is the semantic risk of applying this repair?0 · 1 · 2

How it works

  1. Generate bounded repair candidates in code
  2. Ask Jev for action, applicability and risk distributions
  3. Apply a fixed policy including tail-risk limits
  4. Commit or abstain; record every comparison

Strengths

  • Abstains when tail risk is too high
  • Full audit trail of each decision
  • Source CSV never mutated

Caveats

  • Experimental; rule baseline repaired more in the demo
  • Live decisions vary between runs

Getting started

`git clone https://github.com/Kunyanli230/jev-clean.git && cd jev-clean && uv sync --locked && uv run idac --help`.

At a glance

Type
Project
Status
prototype
Language
Python
Runtime
CLI
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide?

The repair action, whether it applies, and its semantic risk, each as a distribution.

Why keep the whole distribution?

An average can hide a high-risk tail; the policy checks the tail directly.

Is it better than rules?

Not shown; in the demo the rule baseline repaired more.

Related projects

  • SQLite and Node library adding Jev judgments to SQL for matching, evidence picking, ranking, review queues and semantic CI checks.

    ProjectbetaJavaScript
  • Record linkage for researchers: write the match rule in plain English and Jev judges each candidate pair with a probability.

    ProjectbetaPython
  • Neo4j demos using Jev as a calibrated judge in GraphRAG pipelines, starting with entity resolution and a review queue.

    AppprototypePython
  • Sutro's active-learning CLI that finds rows Jev is least sure about, asks you to label them, and uses GEPA to improve the definition.

    CLIbetaPython
  • dbt package whose macros run Jev Choice, Noul and Score over SQL values in DuckDB and ClickHouse models.

    ProjectbetaSQL (Jinja)
  • DuckDB extension that asks Jev about every row in SQL and returns answers as ENUM, DOUBLE or STRUCT columns.

    PluginbetaC++