Primitives · Last updated

Choice vs Score vs Noul

Jev (TypeSafe System One) exposes three question types. You can mix them in a single questions map. Every question is evaluated in parallel against the same state. First-party evaluation is still one POST /v1/systemone (plus GET /v1/models for the catalog). This page is the picker, not a reprint of the three primitive pages.

This page is for builders who already heard of Jev / System One and want a production-minded mental model. jev.pro is an independent unofficial field guide — not affiliated with TypeSafe AI. Confirm facts on docs.typesafe.ai. We do not sell keys.

Type Question you are asking Returns
Choice Which of these options? choice, probabilities, confidence
Score Which level on this ordered rubric? score, legend, probabilities, confidence
Noul Is this true? noul from 0 to 1

How to pick

Official guidance, restated as a shop-floor rule:

Do not use a Noul of 0.5 as “medium skill.” That value means yes and no are equally likely, not that the candidate is intermediate. Measure skill with a Score whose levels you define.

If two types both fit, pick the one your code can act on directly: Choice → code paths, Score → threshold, Noul → if. The primitive is a contract with your action space, not a writing style.

Shared request fields

Every question has an ID, type, and instructions. Choice and Score require criteria. Noul accepts optional criteria that describe what yes and no mean.

instructions may be a string, object, or array. Structured instructions put the question in one field and supporting data in others; refer to those fields with backticks. That habit belongs on structured instructions; here the rule is simply: one atomic question per key.

Independence

Answers are constrained to the options you supplied. They are also independent: adding or removing a question does not become hidden context for the others. That is why batching is the default and second requests are the exception. Compose atomic questions in code; send many in one POST.

Independence is also why you should not hide a second judgment inside a Choice description (“billing, unless the customer is angry”). Ask a Score for frustration and a Choice for department, then combine in code.

When not to use this picker as a design

Do not invent a fourth primitive. Do not ask Jev to generate the email after it picks a type. Do not treat “I used all three in one blob” as sophistication — if the actions do not need three answers, drop the unused keys. Do not clone a rival “which primitive?” essay: this site’s win is the action-space test, not a longer taxonomy.

If the work is exact arithmetic, date order, or a dollar compare, none of the three types is the right tool. Keep that in code. If you need a narrative exhibit, Jev will not write it; store a decision trace instead.

Practical composition

A support ticket often needs all three: Choice for queue, Score for severity, Noul for “explicit refund request.” That is still one HTTP call. Read Choice, Score, and Noul before you copy a mega-prompt into a single Choice. Confidence is peakedness of the Choice/Score distribution; Noul has none — see confidence.

Hub: Primitives. Official primitives: docs.typesafe.ai/primitives.

FAQ

Can I send Choice, Score, and Noul in one request?

Yes. That is the default. One POST, many questions, same state.

Is 0.5 on a Noul a medium Score?

No. It means uncertain. Write Score levels if you need a spectrum.

Does Noul return confidence?

No. Threshold noul in code. Do not invent a wire field.

What if my list of options is incomplete?

Use Choice and add other or none. Do not hope the model abstains silently.

Disclaimer

This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.

Sources