Retrieval is a sequence of small decisions: is this passage relevant, which of these candidates is best, does this citation support the claim. Every one of them is a bounded judgment, which is exactly the shape Jev answers. The result is that a decision model slots into a retrieval pipeline at three points, and the three cookbooks that show it are worth reading together.
Passage filtering, before the model sees context
The first decision is whether a retrieved passage belongs in the context at all. The RAG passage classification cookbook asks a Noul per passage — is this relevant to the query — and drops the ones that are not before an expensive reader ever runs. Because output is free, the relevance check is cheap next to the tokens it saves downstream.
The design point: one Noul per passage, batched in a single request. Not one question that asks the model to rank the list.
Finding the passage, not the document
When answers live inside long documents, the useful decision is "which part." The semantic find cookbook treats the document as a set of candidate passages and asks Jev to choose among them, which is the Choice primitive doing the retrieval itself rather than an embedding lookup. It is the pattern for when a keyword or vector search returns the right document but the wrong span.
Reranking a candidate list
Once you have candidates, ordering them is a Score job. The rerank cookbook scores each candidate independently and sorts in code, which beats asking one question to output an ordered list: scoring is a judgment the model does well, and ordering is arithmetic it does not do.
questions = {
f"relevance_{i}": Score(
instructions=f"Rate how well this passage answers `query`.",
criteria=["off-topic", "related", "directly answers"],
)
for i, _ in enumerate(candidates)
}
The scores come back flat and you sort them yourself — the same divide-and-conquer that the composite scoring pattern applies to multi-dimension decisions.
Checking whether a citation supports the claim
The last decision is the one retrieval systems most often skip: does the cited source actually support the sentence? The citation-check cookbook asks Jev to compare the claim against the passage and returns a Noul, which a confidence gate turns into accept, revise, or reject. It is a verification use case, and it is the cheapest guard against a fluent answer built on a passage that does not say what it claims.
Do the three in one pass where you can
Each of these is a separate judgment, but they do not have to be separate requests. The fan-out pattern puts the relevance Nouls, the rerank Scores, and the support check behind one state and one call when the branching allows it. The one-request-many-questions article works through the batching arithmetic.
What stays deterministic
Retrieval itself — the index, the vector search, the keyword pass, the filters — is code. Jev decides about the results, it does not fetch them. The semantic find cookbook keeps the candidate generation in code and only the selection in the model, which is the boundary worth preserving: a retrieval bug should never be something you ask a model to fix at query time.
Filter, choose, rerank, verify, and keep the fetching in code. Four small decisions, each one a primitive Jev already has.