jev-clean
Decision-first CSV cleaning: code proposes repairs, Jev scores action, applicability and risk, a fixed policy applies or abstains.
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
| Type | Question | Answers |
|---|---|---|
| Choice | Which repair action applies to this cell or row? | — |
| Yes / no | Is this candidate repair applicable here? | yes · no |
| Score | What is the semantic risk of applying this repair? | 0 · 1 · 2 |
How it works
- Generate bounded repair candidates in code
- Ask Jev for action, applicability and risk distributions
- Apply a fixed policy including tail-risk limits
- 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
decision-first data cleaning system powered by Jev
logicrw/awesome-jev-projects
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.
ProjectbetaJavaScriptRecord linkage for researchers: write the match rule in plain English and Jev judges each candidate pair with a probability.
ProjectbetaPythonNeo4j demos using Jev as a calibrated judge in GraphRAG pipelines, starting with entity resolution and a review queue.
AppprototypePythonSutro's active-learning CLI that finds rows Jev is least sure about, asks you to label them, and uses GEPA to improve the definition.
CLIbetaPythondbt 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++