Bug report completeness

Check that a bug report has reproduction steps, environment details, and expected versus actual behaviour.

F@f

Problem

Most first-time bug reports are missing something, and the back-and-forth to get it takes longer than the fix.

Goal

Ask for the one missing piece right away, and label complete reports as ready for triage.

Input / state

The bug report text.

report
Title and body of the issue.

Decision question

ChoiceQuestion key report_status

What, if anything, is this bug report missing that a maintainer needs to reproduce it?

Options

  • completeHas steps to reproduce, the environment, and expected versus actual behaviour.
  • missing_reproductionNo steps or example that would let someone reproduce it.
  • missing_environmentNo version, platform or configuration details.
  • missing_expected_vs_actualDoesn't say what was expected or what happened instead.

Allowed outcomes

Decided in your code from the answer and its confidence. Thresholds are yours to set and test.

  • Ready for triageChoice is complete and confidence meets your threshold.
  • Ask for reproductionChoice is missing_reproduction and confidence meets your threshold.
  • Ask for environmentChoice is missing_environment and confidence meets your threshold.
  • Ask what was expectedChoice is missing_expected_vs_actual and confidence meets your threshold.
  • Maintainer triageConfidence is below your threshold: probability is spread across options.

Example scenarios

Predefined demonstrations. No model is called; the outcome shown is an illustrative judgment.

Example state

{
  "report": "v3.2.1 on macOS 14. Steps: open settings, toggle sync, restart. Expected sync on, actual sync off."
}

Outcome

Illustrative
Ready for triage

Choice is complete and confidence meets your threshold.

Why

Steps, environment and expectation are all there.

Using it well

  • Ask for the most important missing piece first; a list of five questions often goes unanswered.
  • Some bugs are obvious without full details. Let maintainers override the label.

Request definition

POST https://api.typesafe.ai/v1/systemone
{
  "model": "jev-latest",
  "state": {
    "report": "<report>"
  },
  "questions": {
    "report_status": {
      "type": "choice",
      "instructions": "What, if anything, is this bug report missing that a maintainer needs to reproduce it?",
      "criteria": {
        "complete": "Has steps to reproduce, the environment, and expected versus actual behaviour.",
        "missing_reproduction": "No steps or example that would let someone reproduce it.",
        "missing_environment": "No version, platform or configuration details.",
        "missing_expected_vs_actual": "Doesn't say what was expected or what happened instead."
      }
    }
  }
}

Request shape from the System One API reference; a Kev server accepts the same body. Replace the placeholder state with your data. Requests need your own API key or server.

Version History

v1Current Versionabout 8 hours ago@f

Initial version

Comments (0)