pakkio’s jev-news uses Jev to group related headlines, assign sections and rate news stories. Generative models write the summaries, while ordinary code combines the ratings and tracks costs.

Separate the editorial questions

  • Relevance screening runs first; selected stories receive the deeper rating questions together.
  • Impact, new development, substance and exclusivity contribute to a weighted score. Opinion probability subtracts points.
  • Duplicate-story matching asks whether reports describe the same occurrence. An intermediate probability band goes to a generative model.
  • Review sheets retain model answers beside columns for a person’s judgments.

The source’s merge thresholds are policy settings. They need a labeled workload before their probabilities can justify automatic merging.

A changed article can keep its old rating

The rating cache includes the model name, topic, headline, snippet and other headlines. It omits the source URL and article opening, even though both can enter the model’s state.

An offline check changed the URL and opening while preserving the headline and snippet. The second invocation reused the first rating and made no new model call. That behavior was reproduced against the real rate() function with a mocked API.

Cache identity should cover the complete evidence and question definitions. A moving jev-latest alias also needs a versioning policy if results must remain comparable.

Recompute the supplied evaluation without overselling it

Running the repository’s scorer on its filled review sheet reproduced these agreement counts:

  • Section assignment: 49/60.
  • Relevance at the scorer’s cutoff: 46/60.
  • Impact within the scorer’s tolerance: 33/60.
  • Piece type: 51/60.
  • Accepted merges: 4/4.

These are calculations from the project’s stored answers and labels, not fresh Jev predictions. Labeler identity, independence and held-out status are unverified. The merge rows contain accepted groups only, so they cannot measure missed duplicates.

Keep billing estimates separate from measurements

The implementation distinguishes metered API usage from per-story estimates. Displayed estimates use character-based token counts and assumed prices; generative-model token prices default to zero for a flat plan. A low marginal estimate is therefore not the whole service bill.

Verification: four additional offline checks passed at 9386182d95b473cdc1e0a7f935d1f2497e21d1a3, including the stale-cache fixture. No live collection, Jev inference or security audit was performed. Typed output is not a correct editorial decision.