Jev / TypeSafe System One
September 22, 2026 · View on GitHub
Sources: TypeSafe documentation plus community write-ups (ArchCrux, flaviocopes, systemonemodels, Bloss0m, apidog, volanea), 2026-09.
It is a decision layer, not a workflow
LLM generates | Jev judges | code controls | humans handle the edges
Jev answers narrow questions inside a bounded option set and returns typed answers plus calibrated probabilities. It does not write prose and does not do multi-hop reasoning. Control flow and side effects stay in your code.
Question design
- One judgment per question. "Is this lead valuable, urgent, and likely to close?" is three questions. Split them and combine the answers in code.
- Match the primitive to the shape of the judgment:
- graded (severity, quality, relevance) →
score(2–10 levels) - a single fact →
noul - a fixed option set →
choice(up to 255 options; use two stages beyond that)
- graded (severity, quality, relevance) →
- Describe situations, not degrees. Each Score level should say what state it describes ("feature is broken but there is a workaround"), not "medium". Spell out the boundaries between adjacent options.
- Always provide an escape hatch:
other,none_of_the_above,unknown,not_stated,needs_human_review. If the option set cannot cover reality, the model can only pick a wrong answer. instructionsandcriteriamust say the same thing, in language a colleague would understand. Contradictions between them cost accuracy.- Do not ask the model to explain itself. The answer is the decision, the probability, and the confidence — nothing else.
State
- Include only what the judgment needs. Irrelevant text measurably degrades
accuracy (context rot). Filter deterministically when you can; when you cannot,
use a
noulper chunk to decide relevance and drop the rest. - Request limit: 64K tokens, with
state+ longest question ≤ 32K. - Treat user-controlled content as untrusted input (prompt injection). It must not be able to influence system permissions or policy.
Parallelism (speculative fan-out)
- Put every mutually independent question in one request (the official cookbook reports 13 batched questions at 12.2× cheaper and 10× faster).
- Send a second request only when the next question depends on a previous answer (fetching new evidence, or determining the option set).
- The cost: you pay for judgments you may not use. In logs, distinguish
unused/rejected/policy_conflict.
Confidence and policy
- Confidence is a model signal, not authorization. Identity, permissions, resource scope, and approvals must be validated by the runtime.
- Set thresholds by the cost of being wrong: read-only or reversible → low; recoverable external action → high; irreversible or sensitive → a human.
- Starting reference (calibrate on your own data): >0.85 act; 0.55–0.85 escalate to a stronger model or a second judgment; <0.55 ask a person.
- Keep the raw dimensions + weights version + final routing, not just one composite score.
Operations
- Pin the model version.
jev-latestdrifts; automation paths should use a concrete version such asjev-1.13.0(in this toolkit:TYPESAFE_MODEL). - Version questions, thresholds, and the decision schema independently.
- Log state snapshots, question versions, model version, probabilities, policy version, and the final outcome — otherwise you cannot reproduce or calibrate.
- Test on labeled real samples: beyond the confusion matrix, watch the coverage–risk curve, escalation rate, p95 latency, and cost per successful task.
- Classify failures: schema failures / semantic failures / calibration failures / policy failures — each has a different fix.
Where not to use Jev
Arithmetic, exact counting, date math, multi-hop reasoning, anything requiring
generated text, anything requiring reading an image, and anything ordinary code
already decides correctly. A free if beats a fraction-of-a-cent if that can
be wrong.
How this maps onto the toolkit
macos-cu jev guard— pre-action guard. One request fans out right-target / input-correctness / blocker / next-action judgments, and code applies the thresholds. Onlyswitch_targetandretype_inputmay come from the model, because neither can send or submit anything; everything else asks the user.macos-cu jev select— element selection from AX candidates, with anoneescape hatch and a confidence gate (gate: auto | low_confidence_review | no_match).- Blank-frame detection, overlay drawing, and signature comparison deliberately do not use Jev: they are deterministic and free.