CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/bug-report-template

Builds a well-formed bug (defect) report from raw observation notes - fills in summary, environment, steps to reproduce, expected vs actual, and severity rationale - and validates that each field has the load-bearing content reviewers and engineers need to triage. Also converts a single test-failure record (JUnit XML, Allure JSON, pytest log, Playwright report) into a classified, ready-to-file bug spec, and provides the adversarial review checklist that gates a report before it enters the tracker (required fields, single-description title test, severity-priority independence, reproduction quality). Use when a stakeholder reports a problem informally, when a CI failure artefact needs to become a triageable report, or when a drafted report needs a pre-filing quality audit.

81

0.88x
Quality

95%

Does it follow best practices?

Impact

80%

0.88x

Average score across 10 eval scenarios

SecuritybySnyk

High

Do not use without reviewing

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-4/

{
  "context": "A CI failure where the human paraphrase in chat ('expected 200 got 500') contradicts the result file ('expected status 201 but got 422 - PROMO_STACK_LIMIT'), and where no commit identifier exists anywhere in the artefacts. Predicted baseline failure: the agent writes a clean report built from the most recent and most conversational source - the chat thread - carrying the wrong status codes forward, presents 'main' or 'this morning's build' as if it pinned a revision, invents a plausible-looking commit SHA or a re-run command that was never stated, and adopts the thread's flake and promo-change speculation as the report's own finding.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Deliverable exists at the exact path",
      "description": "A markdown file exists at reports/checkout-suite-nightly.md describing this failure. Any other path scores zero.",
      "max_score": 5
    },
    {
      "name": "MUST NOT carry the hand-typed assertion instead of the result file",
      "description": "Full points if the observed failure is taken verbatim from the result file - expected 201, got 422, error PROMO_STACK_LIMIT, with the stack frames as written. Scores zero if the document states the failure as 200/500, or as any status pair other than the one the artefact records. Scores at most half if the correct values appear but paraphrased in a way that drops the error code or the assertion text.",
      "max_score": 30
    },
    {
      "name": "The chat-versus-artefact contradiction is named",
      "description": "Full points if the document explicitly records that the chat description does not match the recorded failure, so the reader knows why the thread's theory may be misdirected. Scores zero if only one version appears with no note that the other was claimed.",
      "max_score": 18
    },
    {
      "name": "No fabricated revision identifier",
      "description": "The artefacts contain a branch, a timestamp, a runner host and a run URL - and no commit SHA. Full points if the document states that the exact revision is not recorded and must be recovered from the run, while carrying the branch, timestamp and run URL that do exist. Scores zero if a commit SHA appears, or if a branch name or 'this morning's build' is presented as the pinned revision for a re-run.",
      "max_score": 25
    },
    {
      "name": "Re-run instruction is derived only from recorded facts",
      "description": "Full points if the failing test is identified by its file, class and test name exactly as recorded, and any part of the invocation not present in the artefacts is marked as needing confirmation. Scores zero if a runner command is presented as verified when neither file supplies one, or if the test path or name is altered.",
      "max_score": 16
    },
    {
      "name": "Speculation is attributed, not adopted",
      "description": "The flake claim and the promo-stacking-change theory come from chat, and one of them is already disputed by the author of that change. Full points if the document records these as unverified theories with their sources and notes the dispute. Scores zero if either is stated as the cause or as an established property of the failure.",
      "max_score": 14
    },
    {
      "name": "Run history stated only as far as it is known",
      "description": "The thread says the previous run passed and nobody has tried locally. Full points if the document states exactly that and marks the failure rate as unestablished. Scores zero if the document asserts a reproduction rate, a percentage, or that the failure is intermittent, none of which the sources support.",
      "max_score": 10
    },
    {
      "name": "Environment carried from the artefact",
      "description": "The runner OS, runtime version, hostname and run URL are present in the result file and appear in the document. Omitting them scores zero; substituting different values scores zero.",
      "max_score": 10
    }
  ]
}

SKILL.md

tile.json