<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: omelette joe</title>
    <description>The latest articles on DEV Community by omelette joe (@omelette_joe_1c78f8497383).</description>
    <link>https://dev.to/omelette_joe_1c78f8497383</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4134132%2Fd6c1f883-6f1b-44d6-a8fc-86da1e414ac7.png</url>
      <title>DEV Community: omelette joe</title>
      <link>https://dev.to/omelette_joe_1c78f8497383</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/omelette_joe_1c78f8497383"/>
    <language>en</language>
    <item>
      <title>Jev’s score is 0..n-1, not 0–1 — the gotcha that breaks thresholds</title>
      <dc:creator>omelette joe</dc:creator>
      <pubDate>Mon, 21 Sep 2026 05:04:55 +0000</pubDate>
      <link>https://dev.to/omelette_joe_1c78f8497383/jevs-score-is-0n-1-not-0-1-the-gotcha-that-breaks-thresholds-2l9i</link>
      <guid>https://dev.to/omelette_joe_1c78f8497383/jevs-score-is-0n-1-not-0-1-the-gotcha-that-breaks-thresholds-2l9i</guid>
      <description>&lt;p&gt;If you treat TypeSafe’s Jev &lt;code&gt;score&lt;/code&gt; like a confidence float between 0 and 1, your gates will be wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Score actually returns
&lt;/h2&gt;

&lt;p&gt;Score is the &lt;strong&gt;probability-weighted mean of rubric indices&lt;/strong&gt;. If your criteria are &lt;code&gt;["Low","Normal","High","Urgent"]&lt;/code&gt;, indices are &lt;code&gt;0..3&lt;/code&gt;. A live response we copied looked like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;score&lt;/code&gt;: &lt;strong&gt;2.46&lt;/strong&gt; (not 0.62)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;legend&lt;/code&gt;: &lt;code&gt;{"0":"Low","1":"Normal","2":"High","3":"Urgent"}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;probabilities&lt;/code&gt; keyed by &lt;strong&gt;index strings&lt;/strong&gt; (&lt;code&gt;"0"&lt;/code&gt;, &lt;code&gt;"1"&lt;/code&gt;, …), never by your labels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So &lt;code&gt;2×0.5 + 3×0.48 ≈ 2.46&lt;/code&gt; means “between High and Urgent.” Round for the band; the fraction tells you which way the mass leans.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two siblings that also bite
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Noul has no &lt;code&gt;confidence&lt;/code&gt; field&lt;/strong&gt; — not null, absent. Distance from 0.5 is what you have for a gate.&lt;/li&gt;
&lt;li&gt;Ask several questions in &lt;strong&gt;one&lt;/strong&gt; call: they share one state and run in parallel. Paying for the state three times is the expensive habit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it without the official waitlist
&lt;/h2&gt;

&lt;p&gt;I run an independent &lt;strong&gt;relay&lt;/strong&gt; (not a TypeSafe first-party key): Google sign-in → &lt;code&gt;jv_live_…&lt;/code&gt; → &lt;code&gt;POST https://jev-agent.com/api/v1/classify&lt;/code&gt; with a ruleset name, or &lt;code&gt;/api/v1/systemone&lt;/code&gt; with the official shapes so you can swap host+token later.&lt;/p&gt;

&lt;p&gt;Free tier: &lt;strong&gt;5 credits / month&lt;/strong&gt; (1 credit ≈ 1000 input tokens). No uptime SLA.&lt;/p&gt;

&lt;p&gt;Start: &lt;a href="https://jev-agent.com/api-access" rel="noopener noreferrer"&gt;https://jev-agent.com/api-access&lt;/a&gt; · docs: &lt;a href="https://jev-agent.com/docs" rel="noopener noreferrer"&gt;https://jev-agent.com/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Not affiliated with TypeSafe AI.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>api</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Try TypeSafe’s Jev Free: Live Demos, Measured Cases, No Waitlist</title>
      <dc:creator>omelette joe</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:21:14 +0000</pubDate>
      <link>https://dev.to/omelette_joe_1c78f8497383/try-typesafes-jev-free-live-demos-measured-cases-no-waitlist-490j</link>
      <guid>https://dev.to/omelette_joe_1c78f8497383/try-typesafes-jev-free-live-demos-measured-cases-no-waitlist-490j</guid>
      <description>&lt;p&gt;TypeSafe’s Jev is a System One decision model: you send a state plus typed questions, and you get structured answers back — a Choice, a Score, or a Noul probability — not chat prose.&lt;/p&gt;

&lt;p&gt;If you only need “which tool runs next” or “how bad is this ticket,” parsing JSON out of a chat model is slow and fragile. Jev is built for that gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you can do today without the vendor waitlist
&lt;/h2&gt;

&lt;p&gt;On &lt;a href="https://jev-agent.com" rel="noopener noreferrer"&gt;jev-agent.com&lt;/a&gt; you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get a &lt;strong&gt;free API key&lt;/strong&gt; (email, no card) for &lt;strong&gt;eight tuned rulesets&lt;/strong&gt; and call decisions without writing Jev question shapes yourself&lt;/li&gt;
&lt;li&gt;Run &lt;strong&gt;live demos&lt;/strong&gt; in the browser: &lt;a href="https://jev-agent.com/chess" rel="noopener noreferrer"&gt;chess&lt;/a&gt; and &lt;a href="https://jev-agent.com/wikirace" rel="noopener noreferrer"&gt;wikirace&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Read &lt;strong&gt;use-case writeups&lt;/strong&gt; with live-API measured cost and latency: triage, tool selection, moderation, routing, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Numbers from live calls (not a slide deck)
&lt;/h2&gt;

&lt;p&gt;Rate card: &lt;strong&gt;$0.042 per 1M input tokens&lt;/strong&gt;, output free (no output tokens).&lt;/p&gt;

&lt;p&gt;Examples reported from live API calls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One Choice over 3 options: &lt;strong&gt;$0.0000144&lt;/strong&gt; (342 input tokens)&lt;/li&gt;
&lt;li&gt;Choice + Score + Noul in one call: &lt;strong&gt;$0.0000226&lt;/strong&gt; (539 tokens)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Latency on the hot path is typically &lt;strong&gt;70–500ms&lt;/strong&gt; end-to-end depending on route. Putting several questions in &lt;strong&gt;one&lt;/strong&gt; request matters: they share one state and run in parallel, so you don’t pay for the state three times.&lt;/p&gt;

&lt;h2&gt;
  
  
  When it fits
&lt;/h2&gt;

&lt;p&gt;Reach for Jev when the answer is a &lt;strong&gt;decision&lt;/strong&gt;, not a sentence: routing, classification, tool pick, rubric grading, boolean guardrails. Skip it when you need prose, code, or a conversation — pair it with an LLM for that half.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not affiliated
&lt;/h2&gt;

&lt;p&gt;jev-agent.com is an independent guide with measured figures and demos. &lt;strong&gt;Not affiliated with TypeSafe AI.&lt;/strong&gt; Where this site and the official docs disagree, trust &lt;a href="https://docs.typesafe.ai" rel="noopener noreferrer"&gt;docs.typesafe.ai&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Start here: &lt;a href="https://jev-agent.com" rel="noopener noreferrer"&gt;https://jev-agent.com&lt;/a&gt; · free key: &lt;a href="https://jev-agent.com/api-access" rel="noopener noreferrer"&gt;/api-access&lt;/a&gt; · cases: &lt;a href="https://jev-agent.com/use-cases" rel="noopener noreferrer"&gt;/use-cases&lt;/a&gt; · pricing: &lt;a href="https://jev-agent.com/pricing" rel="noopener noreferrer"&gt;/pricing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>machinelearning</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
