Writing Jev criteria that the model can use
Criteria close the set of answers Jev may return. Treat them as an extension of the instruction. If they ask for different things, jev-1.13 can get confused. The jaggedness page’s example is a Noul whose true maps to no.
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.
Criteria are descriptions a person could apply. They are request text, not embeddings you train, and not a tenant-specific fine-tune. The same public weights see every account’s wording. Write them so a teammate could label the same ticket without asking you what you “really meant.”
| Type | Criteria shape | Limits (API) |
|---|---|---|
| Choice | Map of option → description or null |
Max 255 options |
| Score | Ordered array of level descriptions | 2–10 levels |
| Noul | Optional { true, false } |
— |
How to use
- Put boundary cases in the criteria, not in a footnote you hope the model infers.
- Add
other/noneon Choice when coverage is incomplete. - Write Score levels as descriptive, ordered rungs a person could apply.
- Keep criteria and instructions in language “easy for the average person to read.”
- Criteria, like instructions, can hold JSON structure.
When a wrong answer makes you explain “what you really meant,” that explanation belongs in the instruction or a criterion. TypeSafe’s literal-reading note is exactly this.
Align polarity. If the instruction asks “is this urgent?” then true should mean urgent. Inverted glosses are a known failure mode. For Choice, a null description is allowed when the key is already clear; prefer a gloss for close pairs (billing vs collections).
Compose atomic questions in code. One POST can carry many questions; each question’s criteria are local. Do not hide a second taxonomy inside a single option’s paragraph.
When not to use (or abuse) criteria
- Do not paste the employee handbook as one Choice option. That is an oracle. Split judgments; keep policy math in code.
- Do not treat criteria as a training set. Changing them does not update weights. It is still a new decision contract — replay before you promote, even if the model pin is unchanged.
- Do not encode dollars, dates, or counts as Score rungs and then interpolate. Keep arithmetic in code.
- Do not skip
other/noneon an incomplete Choice and then blame the model for inventing a winner among a bad set. It cannot leave your map; it can still pick the wrong key. - Do not write criteria that contradict structured instructions. The question and the answer space must agree.
Change control
Criteria are the part of the contract reviewers actually edit. TypeSafe’s skill advice is that humans edit criteria; agents are weak at writing them. Put the pack in one file, PR it, and store the SHA on the decision trace. Official advanced structure: primitives/advanced.
Hub: Primitives. Compare types: Choice vs Score vs Noul.
See also
FAQ
Are criteria embeddings we train?
No. They are request text. Same public weights for every account.
Null descriptions?
Allowed on Choice when the key is already clear. Prefer a gloss for close pairs.
Can I change criteria without changing the pin?
Yes — that is still a new decision contract. Replay before you promote.
Who should write criteria?
A person who can apply them. Do not outsource the first draft to an agent and merge unread.
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.