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:
- Choice when the answer is one of a known, unordered set: department, document type, language. Add
otherornone of the aboveif the list might not cover every input. Maximum 255 options. - Score when the answer sits on a spectrum you can describe: severity, frustration, skill. At least two levels, at most 10.
- Noul for a clean yes/no where the probability itself is the signal: refund requested, PII present, resume mentions distributed systems.
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.