Design atomic Jev questions for reviewable routing
A reviewable three-question specification, edge cases and versioned routing suggestions.
Use caseSeparate category, evidence sufficiency and impact for fictional product reports, then combine the answers in code. Includes a specification and edge cases.
Separate category, evidence sufficiency and impact for fictional product reports, then combine the answers in code. Includes a specification and edge cases.
Source · JevLog editorial · Original guide

Source cover · TypeSafe AI
Published 2026-10-02 from current official docs with original exercises. No live service calls; source publication dates not established.
Problem
Section titled “Problem”A combined importance and ownership question mixes criteria. Fix the state and independently evaluate category, context and impact. Questions in one Jev call see the same state and cannot consume each other’s answers.
Before you begin
Section titled “Before you begin”-
Download question-design.json and label its four fictional inputs first.
-
The call example needs Python, typesafe-sdk and server-side TYPESAFE_API_KEY. Live execution consumes API quota; designing the specification does not.
Original JevLog diagram, not a product screenshot or measured result.
1. Fix the state without inserting conclusions
Section titled “1. Fix the state without inserting conclusions”Retain behavior, environment and reproduction conditions. For example: download fails in Firefox, works in Chrome, and still fails after clearing cache. Do not prepend a severity conclusion. Remove identifiers while keeping relevant context.
2. Give each question one job
Section titled “2. Give each question one job”Use Choice for category, Noul for context sufficiency and Score for impact. Criteria belong in instructions and criteria, with an other fallback. A question ID is an application key, not an instruction.
from typesafe_sdk import TypeSafeClient, Choice, Noul, Scorequestions = { "queue": Choice(instructions="Which team should review this report?", criteria={"engineering": "Software behavior", "content": "Wording or documentation", "other": "Neither or unclear"}), "context": Noul(instructions="Does the report describe a concrete failing action and its environment?"), "impact": Score(instructions="How much does this block the stated task?", criteria=["Task works normally", "A stated workaround works", "No stated workaround works"]),}with TypeSafeClient() as client: result = client.system_one("Download fails in Firefox but works in Chrome.", questions) print(result.choices["queue"].choice) print(result.nouls["context"].noul) print(result.scores["impact"].score)3. Combine answers in code
Section titled “3. Combine answers in code”Check fields, queue.confidence and context.noul. Missing evidence, uncertainty or other goes to review. Otherwise emit a suggestion, not a ticket. A cutoff such as 0.8 requires validation and is not an accuracy guarantee.
4. Probe overlapping criteria
Section titled “4. Probe overlapping criteria”The fixture covers clear context, missing context, wording and unrelated input. Label before calling and record case ID, version, expected and actual answers and disagreement. Revise one criterion at a time without moving labels to fit predictions.
5. Version the specification and handoff
Section titled “5. Version the specification and handoff”Save routing-v1 and original evidence alongside the suggestion. Dependent questions require separate calls and an intermediate state. Application code still checks action allowlists and user permissions.
Practice sample: download question-design.json for local use; not a live run here.
Result and cautions
Section titled “Result and cautions”A reviewable three-question specification, edge cases and versioned routing suggestions.
- Noul has a noul probability without separate confidence; missing fields are errors.
- All four cases have labels and explicit fallbacks.
- Logs record question versions and code checks permissions.
Source boundary: compiled from the linked public sources; not reproduced here. Review classifications before acting; they do not run actions automatically.
Related guides
Section titled “Related guides”- Choose Jev confidence thresholds with a labeled CSV
- Write a reviewable Jev Score rubric for issue impact
- Make your first Jev decision on a release change
Can a question consume another answer in the same call?
Section titled “Can a question consume another answer in the same call?”No. Questions see the same state independently. Combine in code or use separate calls.