Jev policy templates
A policy template is an enum + thresholds, not a legal policy. Counsel writes the latter. You encode the former so Jev cannot “decide” a side effect by itself.
This is an independent unofficial field guide, not TypeSafe documentation and not a place that issues keys. Confirm primitives and limits on docs.typesafe.ai. Open-cluster replicas mentioned anywhere on jev.pro are not Jev and not endorsed.
Enum
auto_allow | review | block | escalate_security — include fail-closed for timeout.
Example mapping (yours to tune)
| Signal | Auto | Review | Block |
|---|---|---|---|
| Noul policy_ok | ≥ 0.85 | 0.4–0.85 | < 0.4 |
| Choice confidence | ≥ 0.6 | else | n/a if other |
Never copy these numbers into production without a harness. They are shapes, not TypeSafe defaults.
Dual control
Lowering a floor is a product+risk change. Put it behind a flag. Log who changed τ. A template that ships 0.5 everywhere is how you auto-act on a coin flip (Noul 0.5 means yes and no equally likely — official).
Put the enum in code, not in a prompt
A Jev question can return a Noul or a Choice. It cannot fire a refund, write a ticket note, or bind your company. The policy template is the mapping your service applies after the HTTP response lands: auto_allow, review, block, escalate_security, plus a timeout bucket that is not “retry until something happens.”
If you bury that mapping in criteria (“if you are more than 85% sure, allow”), you have asked a language model to remember your risk appetite. TypeSafe documents jev-1.13 as a snap-judgment model, not a policy store. Official: there is no bundle API for policy. Git holds the mapping; the process that POSTs to https://api.typesafe.ai/v1/systemone applies it.
Feed OPA (or any engine) attributes, do not replace it
If you already run Open Policy Agent, Rego, or a home-grown allow/deny service, Jev should emit attributes, not verdicts that skip the engine:
noul_policy_okchoice_intentchoice_confidencemodel_id(logresponse.model; pinjev-1.13.0if floors exist —jev-latestcan move)question_shahttp_status(timeout / 529 → a dedicated fail-closed attribute)
The engine still decides. That split is why this page is not a legal policy and not a competitor to vs policy engines. Counsel’s “we do not auto-refund EU consumers without a human” stays in the engine or in a ticket SLA — never in a mega-prompt.
Fail-closed is part of the enum
Treat timeout, 529, and SDK retry exhaustion as first-class members of the action space. Privileged defaults: review or block, never auto_allow. Marketplace 402 and 401 are billing or auth — do not remap them to “Jev said no.” Official SDKs retry 429/529 only; you still choose the product default when retries end.
Pair this template with decision templates for the question shape and confidence-gated routing for the hop.
Audience checklist (platform + risk)
- Enum includes timeout / 529 as its own label.
- Floors live next to the questions file, versioned, not in a Slack pin.
- OPA (or equivalent) consumes attributes; Jev never writes the side effect.
- Someone can point at the git SHA that last changed τ.
- Gold cases exist for the mapping, not only for argmax.
When not to use this page’s advice
Do not use these bands as a substitute for a DPA, a licensed human, or a rules engine that already encodes statute. Do not copy the table into production because a field guide showed 0.85. Do not treat schema-safe answers as factual correctness. Replicas and third-party “Jev-like” interfaces are not Jev and not endorsed — do not reuse these floors on SemIf/OpenJev and call them TypeSafe policy.
What this page does not claim
- Not a legal policy.
FAQ
OPA vs this? This mapping feeds OPA attributes. See vs policy engines.
Can Jev store policy? No bundle API. Git is the store.
Is 0.85 an official TypeSafe floor? No. The table is a shape. Fit on labeled traffic; pin the model if floors exist.
What if counsel wants the policy in the prompt so “the model knows the law”? Refuse. Law lives in humans and engines. Jev returns typed judgments; your code applies the enum.
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.
Open-cluster pages are independent field-guide notes. Replicas and third-party interfaces mentioned anywhere on jev.pro are not Jev and not endorsed. Hub: Open. Siblings: decision templates, glossary policy check, confidence gated routing. Canonical: https://docs.typesafe.ai.