The terms, plainly
What is jev-curate? What is Jev?
The glossary maps every term this site uses back to something concrete: the binary, the model, the verdict types, and the file formats. If a sentence on the homepage puzzled you, it is answered here.
{
"has_circular_reasoning": { "noul": 0.05 },
"reasoning_depth": { "score": 4.8,
"confidence": 0.95 }
} -> keep
Core terms
- jev-curate
- An open source Rust binary that streams dataset rows from Parquet or JSONL, scores each row with Jev, and writes accepted and rejected rows to two output files. Repo: AkashPriyadarshii/jev-curate.
- TypeSafe Jev
- The System One decision model behind the tool, served at
https://api.typesafe.ai/v1/systemone. "System One" means the model answers typed questions fast and cheaply rather than generating prose. Pricing:0.042 USD per million input tokens, output unmetered, roughly 250k tokens per second. - Noul
- Jev's calibrated probability answer. A Noul of 0.05 for "has_circular_reasoning" reads as a 5% chance the row contains circular logic. Presets set thresholds on these values to decide keep or reject.
- Score
- Jev's ordinal rating, 1 to 5, with a separate confidence value. The reasoning-math preset uses a reasoning depth score to keep steps that entail the answer.
- Choice
- Jev's pick from a fixed option list. Useful for routing decisions on a row, such as dataset family, error class, or whether to pass a row to a heavier eval.
- Speculative fan-out
- The client sends one row as state and all preset questions in a single request. One round trip per row instead of one per question. A 12.2x reduction in request cost at the batching layer.
- Token bucket / rate limit
- The client's adaptive limiter matching TypeSafe's 1,200 requests per minute. It refills 20 tokens per second, which is why a single node sustains about 20 rows per second. See benchmarks for the measured number.
- Preset
- A bundled evaluation rubric. The three shipped presets are
reasoning-math,anti-sycophancyandcode-correctness. Each asks Jev the same questions for every row. - Dry run
- Runs the pipeline without contacting the API. Reports the keep and reject counts you would get, so a bad threshold costs zero tokens. Run
--dry-runbefore anything else. - Parquet / JSONL
- The two supported I/O formats. Parquet for columnar datasets, JSONL for line-oriented ones. Rows stream in and out; the binary does not load the dataset into memory.
- clean.jsonl / rejected.jsonl
- The two outputs in the output folder. Accepted rows land in
clean.jsonl, rejected rows with their verdicts land inrejected.jsonl, so a human reviewer can audit every drop.
Why the glossary matters
The ecosystem around Jev is young, and young ecosystems inherit loose vocabulary. "Sifter", "judge", "verdict", "rubric" get used interchangeably. This page fixes the terms for this project: a sifter keeps and drops rows, a judge scores them, a verdict is the typed answer, a rubric is the set of questions. Any other meaning on this site is a bug.
Readers who came from a forum post or an awesome list can start here, then go to use cases for the workflows, or the comparison page for the chat first alternative.