Citation decision workflow with Jev
A generator produced a claim and a source pointer. Jev answers whether the source supports the claim. Code decides publish, hedge, or strip the citation.
This unofficial page is the decision workflow slice of the citation checking pack. Intent: apply the Jev (TypeSafe System One) decision model to citation checking decision workflow. Primary search language: Citation Jev decision workflow. 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): Cite vs generate boundary + failure modes. Cover the citation-check intent; do not mirror a citation-check-noul recipe slug.
Citation use-case context
Citation checking is a workflow, not a chat. Assemble a narrow state, ask the primitives below, and let the citation checker branch. TypeSafe’s docs say a good question is a snap decision a knowledgeable person could make in a few seconds — not an open-ended analysis of the claim + source excerpt.
Hub: RAG passage classification. Compare, when the other tool is the real job: citation services.
Decision Workflow inputs
Keep only fields the questions name:
{
"claim": "Pro plans include a 14-day refund window.",
"source": { "id": "kb-refunds", "quote": "Pro subscribers may request a refund within 14 days of purchase." },
"answer_draft": "Yes — you have two weeks on pro."
}
Point instructions at claim, source.quote. Drop the full unrelated chapter of the KB; web-search snippets you did not retrieve.
Decision signals and actions
| Id | Type | Job |
|---|---|---|
supports |
Noul | Does source.quote support claim? |
contradicts |
Noul | Does the quote contradict the claim? |
sufficient |
Score | How complete is the support (hedge vs publish)? |
All of these share state and run in parallel. Code owns the graph:
def cite(ans):
if ans["contradicts"].noul >= T_CONTRA:
return "strip_or_rewrite"
if ans["supports"].noul >= T_SUP and ans["sufficient"].score >= 2:
return "publish_with_source_id"
return "hedge_or_review"
Do not treat a Noul of 0.5 as a “medium” citation checking score — it means yes and no are equally likely. Conjunctions stay in your code.
Guardrails and escalation
TypeSafe’s confidence-gated examples use a lower bar for recoverable reads than for irreversible actions. Those numbers are illustrations. For citation checking, treat public_citation as the high bar (showing a public citation next to a customer answer). Tune on labels — see offline evaluation.
Low confidence, or a policy miss → human or safe default; do not show a public citation next to the customer answer.
Evaluation and rollout notes
Shadow: Log publish/hedge/strip; keep showing today’s citations.
Canary: Enforce strip on contradicts only.
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 | you are here |
What may enter state |
input contracts |
| What to gather first | evidence collection |
| 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
Does Jev execute the citation checker action? No. It returns typed answers. Your citation checker code calls queues, models, or humans.
Why several questions in one request? TypeSafe’s fan-out pattern: extra questions are cheap versus another HTTP call. One claim × one quote per atomic Noul. Fan-out multiple claim/quote pairs in one request only if each pair is named in instructions. Do not hide five citations in one Score.
Where is the rest of the Citation pack? Start with Citation input contracts and Citation confidence thresholds. Cluster hub: Use cases.
Can Jev write the bibliography? No. It judges support. Formatting and URL fetching stay in code or another tool.
Is this the same as RAG passage relevance? Related but not the same intent. Relevance is “can this passage help?” Citation is “does this quote support this claim?”
What this page does not claim
- Not a plagiarism checker or fact API.
- No invented support accuracy.
- 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.