Recipe catalog / passage-standalone
Check passage self-containment
Can passage be understood on its own, without unresolved references to surrounding text?
You need to check chunks before embedding them, or decide whether a retrieved passage needs its neighbors to be useful.
Explore this recipe interactively ยท Source and implementation guide
Use passage-standalone in TypeScript
Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.
import { passageStandalone } from 'jev-recipes/passage-standalone';
const result = await passageStandalone({
"passage": "As noted above, this approach reduces the latency further, but it requires the second cache to be warmed before traffic shifts. Otherwise the fallback path described earlier is used.",
"minConfidence": 0.8
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| passage | string | Required |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"passage": {
"type": "string"
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"passage"
]
},
"result": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"input_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"input_tokens",
"output_tokens"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"ready",
"review"
]
},
"probability": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"verdict": {
"type": "string",
"enum": [
"standalone",
"dependent"
]
}
},
"required": [
"model",
"usage",
"status",
"probability",
"confidence",
"verdict"
],
"additionalProperties": false
}
}Saved example result
This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo passage-standalone.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"probability": 0.08,
"confidence": 0.92,
"verdict": "dependent"
}
Evaluation evidence
No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.
Use the evaluation guide to measure this decision on your own labeled cases.
Limitations
- Judges whether the passage is self-contained, not whether it is accurate, relevant, or well chunked.
- Does not say which references are unresolved or rewrite the passage. Repair and re-chunking belong in application code.
Related recipes
- context-role: Use context-role to decide what part a passage plays in answering a specific question.
- query-specificity: Use query-specificity to check the other side of retrieval: whether the query is clear enough to match.