Skip to content

Guides

Choice, Score, Noul

Three question types. Mix Choice, Score, Noul in one call. They are evaluated in parallel and in isolation against the same state.

Choice, Score, Noul are the entire surface of TypeSafe Jev. If you remember nothing else from this Choice, Score, Noul guide: the criteria you send are the answer space. A language model with JSON mode still samples field values. These primitives do not. Jev Patterns is a catalog of how to combine Choice, Score, Noul for jobs your compiler can see.

Official docs: questions are atomic; complex judgments should be decomposed and combined in code; each question is independent, so one answer never becomes hidden context for another. That last point is why you can ask a department Choice and an urgency Noul in one request without “urgency” leaking into the department name.

Choice

Pick one option from a set you declare. The answer is the winning key, a probability for every key, and a confidence (how peaked that distribution is). Criteria is a map: option → short rubric, or null if the key is self-explanatory. Choice is the primitive behind support ticket routing, agent tool selection, and lead intent classification.

{
  "department": {
    "type": "choice",
    "instructions": "Which team should own this ticket?",
    "criteria": {
      "billing": "Payments, invoices, refunds",
      "technical": "Bugs, outages, integrations",
      "sales": "Pricing, upgrades, demos"
    }
  }
}

Use Choice when your code has a switch. Put an other option if the list can be incomplete. Do not hide urgency inside a department name — ask a Noul for that. Do not add twenty overlapping product lines; a flat distribution is how Choice tells you the taxonomy is wrong.

Score

Rate the state on an ordered rubric. Criteria is an array of level descriptions, low to high. The answer is a probability-weighted score that can land between levels, plus a legend and confidence. Score is the primitive behind urgency scoring and RAG chunk relevance.

{
  "urgency": {
    "type": "score",
    "instructions": "How urgent is this for an engineer on call?",
    "criteria": [
      "Calm — informational",
      "Waiting — wants a reply",
      "Blocked — cannot complete the task",
      "Outage — the product is down"
    ]
  }
}

Use Score when the answer is a position on a spectrum you already named in an SLA or rubric. Sorting an inbox by score is the whole point. Do not round 2.14 to 2 and page. Threshold the weighted value. A Choice of four unordered labels is not a Score; adjacent levels would fight instead of sharing mass.

Noul

Is this statement true? The answer is a single number from 0 to 1. There is no separate confidence field: the number is the probability. Optional criteria spell out what yes and no mean, using true / false keys. Noul is the primitive behind escalate to human, refund policy gates, and the content moderation screen.

{
  "is_urgent": {
    "type": "noul",
    "instructions": "Should this jump the queue?",
    "criteria": {
      "true": "Blocked or outage",
      "false": "Can wait in the normal queue"
    }
  }
}

A Noul of 0.5 is unsure, not “medium urgency.” Do not treat it as a yellow SLA. See confidence thresholds. For safety-sensitive Nouls, auto-yes should be conservative; you are often routing to a person, not generating advice.

Choice, Score, Noul anti-patterns

  • One Choice with twelve near-synonyms. You will get a pancake distribution. Split the taxonomy or add other.
  • A Score whose levels are unordered tags. Then you do not have a Score. You have a Choice with extra math.
  • A Noul whose instructions ask for a 1–5. The primitive will still return 0–1. You wasted the rubric; use Score.
  • Chaining questions in prose (“given the department, how urgent”). Isolation means the urgency Noul cannot see the Choice. Put both facts in state if they must interact, or combine in code.

Choice, Score, Noul are cheap to over-ask. A ticket can carry six questions. Ignore three in code. That is better than a mega-prompt that smuggles policy. Jev Patterns pages show the mixes we actually like: routing + urgency, grounded Noul + verdict Choice, parallel moderation Nouls. Copy those instead of inventing a fourth primitive.

Where Choice, Score, Noul show up in the catalog

Choice: routing, tools, continue-or-stop, lead intent, eval judge, guardrail verdict. Score: urgency, RAG chunks. Noul: urgency-as-gate, groundedness, moderation categories, refund flags, spam/duplicate, needs_human. Open any card in the catalog and the chips tell you which of Choice, Score, Noul it uses. Studio draws all three as bars.

You can send all three in one request. Each question is independent — one answer never becomes hidden context for another. Fan out speculatively: ask everything you might need, then ignore the rest in code. Latency scales with tokens, not with question count. A support ticket can carry a department Choice, an urgency Score, and a needs_human Noul without becoming a prompt novel.

The jobs these primitives should not take: when not to use Jev. Compare the stack to JSON mode if you are coming from structured outputs. Copy a finished combination from the Jev Patterns catalog.

Choice, Score, Noul FAQ

What are Choice, Score, Noul?
Choice, Score, Noul are the three TypeSafe Jev question types. Choice returns a key over a closed map. Score returns a weighted position on an ordered rubric. Noul returns P(statement is true) in [0, 1].
Can I mix Choice, Score, Noul in one request?
Yes. Choice, Score, Noul questions in one call are evaluated in parallel and in isolation against the same state. Adding questions barely changes latency.
Does a Noul have a separate confidence?
No. For Noul the number is the probability. 0.5 means unsure, not medium. Choice and Score add a confidence derived from peakedness.
When should I use Choice vs Score vs Noul?
Choice when your code has a switch. Score when you have an ordered SLA or rubric. Noul when the question is a boolean you will threshold.
Do Choice, Score, Noul generate text?
No. That is the point of the primitives. If you need a sentence, use a writer model after the decision.

Next

Next in the Jev guides

Last reviewed 21 September 2026. Independent of TypeSafe AI.