Recipe catalog / bug-report-completeness
Grade bug report completeness
How complete is report for someone to reproduce and triage it, on a five-level rubric?
You need to decide whether an incoming bug report can go straight to triage or needs a follow-up request for details first.
Explore this recipe interactively ยท Source and implementation guide
Use bug-report-completeness 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 { bugReportCompleteness } from 'jev-recipes/bug-report-completeness';
const result = await bugReportCompleteness({
"report": "Steps: 1. Open the Reports tab. 2. Choose a date range ending today. 3. Click Export CSV. Expected: a CSV downloads with rows for the whole range. Actual: the download contains only rows up to yesterday and today's rows are missing.",
"minConfidence": 0.8
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| report | string | Required |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"report": {
"type": "string"
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"report"
]
},
"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"
]
},
"score": {
"type": "number",
"minimum": 0
},
"level": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"probabilities": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"completeness": {
"type": "string",
"enum": [
"bare",
"symptom",
"partial",
"nearly",
"complete"
]
}
},
"required": [
"model",
"usage",
"status",
"score",
"level",
"confidence",
"probabilities",
"completeness"
],
"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 bug-report-completeness.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"score": 2.92,
"level": 3,
"confidence": 0.85,
"probabilities": {
"0": 0,
"1": 0.01,
"2": 0.1,
"3": 0.85,
"4": 0.04
},
"completeness": "nearly"
}
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
- Grades the presence of reproduction elements, not their accuracy. A report can be complete and still describe the wrong cause.
- Does not judge severity or priority. Route and escalation rules belong in application code.
Related recipes
- clarify: Use clarify to name the specific missing or ambiguous details once a report grades incomplete.
- requirement-testability: Use requirement-testability to check whether a described expected behavior can be verified.