Email evidence collection with Jev
A draft exists (human or LLM). Jev judges policy, tone, and whether a promise is unsupported. Code sends, holds, or requests a rewrite. Jev does not deliver mail.
This unofficial page is the evidence collection slice of the outbound email decisions pack. Intent: apply the Jev (TypeSafe System One) decision model to outbound email decisions evidence collection. Primary search language: Email Jev evidence collection. Confirm patterns on docs.typesafe.ai. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Independent angle (cover ≠ clone): Send/hold/rewrite as typed decisions + policy excerpts — not a clone of email-automation IA or a drip-builder page.
Email use-case context
Evidence collection for outbound email decisions happens before POST /v1/systemone. Jev does not browse your warehouse, retriever, or ESP. You gather the email draft + recipient context facts, filter them, then ask snap questions. This slice is where fan-out cost math belongs: batch questions, do not re-send state.
Hub: Use cases. Compare, when the other tool is the real job: email automation.
Evidence Collection inputs
Collect:
- Subject + body as they would send
- Offer / fact table for numbers (or extract numbers in code and pass buckets)
- Consent flag from your ESP/CRM
Never send:
- Asking Jev to generate the email in this decision call
- The whole brand style guide when one tone rubric suffices
- Suppression-list internals the question does not name
Shape the payload like this once the gather step finishes:
{
"draft": { "subject": "Your Q4 discount", "body": "Locked 40% off if you reply today." },
"recipient": { "segment": "trial", "consent_email": true },
"policy": { "promises": "Do not invent discounts not in offer_table.", "tone": "No urgency dark patterns." },
"offer_table": { "trial_discount_pct": 20 }
}
Decision signals and actions
Each evidence field should change a named answer:
| Id | Type | Job |
|---|---|---|
policy_ok |
Noul | Does the draft violate policy.* given offer_table? |
tone |
Score | calm helpful → aggressive urgency |
disposition |
Choice | send / hold / rewrite / other |
Policy + tone + disposition in one call. If you also need “is this a refund promise?” add a Noul — do not open a second HTTP call for one extra atom.
Do not treat a Noul of 0.5 as a “medium” outbound email decisions score — it means yes and no are equally likely. Conjunctions stay in your code.
Guardrails and escalation
If the gather step fails (empty email draft + recipient context, redaction stripped everything, retriever empty), fail closed on sending to a real recipient. Do not invent evidence so Jev has something to say. TypeSafe’s confidence-gated examples use a lower bar for recoverable reads than for irreversible actions. Those numbers are illustrations. For outbound email decisions, treat send as the high bar (sending to a real recipient). Tune on labels — see offline evaluation.
Evaluation and rollout notes
Your eval set should include thin-evidence cases, not only happy email draft + recipient contexts. Label send / hold / rewrite gold from brand+legal, plus policy-violation gold. Pin jev-1.13.0 (the versioned id) after you fit thresholds. jev-latest and the marketing line jev-1.13 can move. Log the response model. TypeSafe’s published list price for jev-1.13 is $0.042 per million input tokens (vendor claim — confirm on the models page); output tokens are free on that same page. Unused distractors still bill as input.
Official Python and JavaScript SDKs read TYPESAFE_API_KEY and retry documented 429/529. This site does not sell, issue, or proxy TypeSafe keys. Use a credential you already have from the console or a documented gateway.
Pack map
| Slice | Page |
|---|---|
| Graph and primitives | decision workflow |
What may enter state |
input contracts |
| What to gather first | you are here |
| Atomic rules | policy checks |
| Act / review / abstain | confidence thresholds |
| Reviewer payload | human handoff |
| What to persist | audit trail |
| How it breaks | failure modes |
| Labeled replay | evaluation |
| Shadow → canary | production rollout |
FAQ
Should evidence live in the question text?
Put facts in state and point instructions at draft.subject, draft.body, policy.promises, offer_table.trial_discount_pct. Criteria stay stable so you can replay.
When do I split calls? Policy + tone + disposition in one call. If you also need “is this a refund promise?” add a Noul — do not open a second HTTP call for one extra atom.
Where is the rest of the Email pack? Start with Email input contracts and Email decision workflow. Cluster hub: Use cases.
Does this page sell email infrastructure? No. It is an unofficial decision-layer pattern. We do not sell keys or ESP access.
Can Jev write the email? Not in this workflow. Generate elsewhere; Jev gates. That keeps cite/send decisions inspectable.
What this page does not claim
- Not an ESP or CDP.
- No deliverability benchmarks.
- Not official TypeSafe.
- Official TypeSafe status, or that jev.pro issues API keys.
- That a schema-constrained answer is automatically factually correct.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai.
Primary documentation: https://docs.typesafe.ai. Hub: Use cases.
Sources
Public TypeSafe or adjacent documentation only. No private claims.