Source: README claims neither side can earn

jev-curate vs judging by chat prompt

Both workflows call a language model to grade data. The difference is what comes back: a prose paragraph you read and act on, or a typed verdict the pipeline acts on. This page compares them on the axes that matter at dataset scale.

same row, two workflows
chat:    "This step is mostly sound but could
         be clearer about the chain rule
         application..."        (0 keep/file)
curate:  {"has_circular_reasoning": noul 0.05,
          "reasoning_depth": score 4.8}  -> kept

Side by side

AxisPrompt in a chat windowjev-curate
Verdict formFree text you re-parseChoice, Score or Noul typed answer
Row coverageWhat you have patience forEvery row, streaming
Verbatim dataCopied, pasted, often rewrittenPassed as state, never rewritten
OutputChat logclean.jsonl and rejected.jsonl
Cost shapeProse billed per token0.042 USD per million input, output unmetered
RepeatsSame prompt retyped per rowPreset rubrics, same questions each row
Check before spendingNone--dry-run reports keep and reject counts

The chat flow is the incumbent workflow for most dataset work, and it is the right tool for the first dozen rows you inspect on screen. The break point is anything you plan to train on: at that size the cost is in the reshaping, not in the model call.

The shorter path is the pipeline

A chat judgment is an event. jev-curate makes the judgment a table: same rubric per row, same questions, typed answers written next to a keep or reject decision. When a reviewer asks why a row was dropped, the answer is an object in rejected.jsonl, not a scrollback.

That also makes the tool auditable. The three presets map to three evaluation templates, and each template asks Jev only what that job needs: math presets check entailment, anti-sycophancy checks rated honesty, code presets check correctness. No generic grade, no rewriter, no taxonomy drift between rows.

When to keep using chat

When the pipeline pays for itself

The crossover is not about model quality. It is about repetition. A chat grader re-reads the prompt on every row and re-emits the justification on every row, and the grader's attention is the same scarce resource each time. jev-curate evaluates the rubric once as questions, then replays it across the batch with zero per-row prompt authoring and zero prose output to eyeball.

Teams that keep chat judging past that crossover are usually not paying in tokens, they are paying in drift: the prompt changes slightly between rows, the keep threshold shifts mid-batch, and nobody can rerun yesterday's filter. Presets and --dry-run make the filter a checked-in artifact. The same command that filtered the training set filters next month's batch.

None of this argues that chat judging is useless. It argues that it is a different tool, for inspection before you commit to a rubric. The rows you save as a rubric example in a chat thread become the rows you route with a preset.

The second comparison

Hand-rolled judge scripts and manual labeling are the other incumbent. The versioned comparison walks through what you write, what you maintain, and where presets and typed verdicts change the math.

Bring a real batch, not a paste