Open · Last updated

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:

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)

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

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.

Sources