Recipe catalog / question-assumption
Check what a question takes for granted
Label whether a question takes a supplied claim for granted or leaves that claim open.
You need to identify a specific assumption in a question before using it in a conversation, survey, or evaluation.
Explore this recipe interactively ยท Source and implementation guide
Use question-assumption 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 { questionAssumption } from 'jev-recipes/question-assumption';
const result = await questionAssumption({
"question": "Why did you delete the file?",
"claim": "You deleted the file."
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| question | string | Required |
| claim | string | Required |
| context | string | Optional |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "One question, including any framing visible to the respondent."
},
"claim": {
"type": "string",
"description": "One specific proposition to check for an assumption in the question."
},
"context": {
"type": "string",
"description": "Supplied context needed to resolve references and interpret the question and claim."
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"question",
"claim"
]
},
"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"
]
},
"verdict": {
"type": "string",
"enum": [
"assumed",
"not_assumed",
"unclear"
]
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"probabilities": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"assumed",
"not_assumed",
"unclear"
]
},
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"required": [
"assumed",
"not_assumed",
"unclear"
]
}
},
"required": [
"model",
"usage",
"status",
"verdict",
"confidence",
"probabilities"
],
"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 question-assumption.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"verdict": "assumed",
"confidence": 0.98,
"probabilities": {
"assumed": 0.98,
"not_assumed": 0.01,
"unclear": 0.01
}
}
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
- Labels wording relative to one supplied claim; it does not determine truth or author intent.
- Not assumed does not establish that a question is neutral or free of other assumptions.
- Effects on respondents or models require controlled comparisons; these labels alone are not causal evidence.
Related recipes
- question-leading: Use question-leading to check pressure toward or away from an answer, which is different from assuming a claim.
- claim-stance: Use claim-stance to label affirmation or denial of a claim in a response.
- verify: Use verify to assess evidential support for the claim itself.