Agent skill

Structured Bug Reports

by Donchitos in Donchitos/Claude-Code-Game-Studios

Turns a description into a structured bug report, or scans code for likely bugs, then verifies and closes reports through four modes.

MITAuto-check: notesTesting & QA

Install Structured Bug Reports

skills CLI
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill bug-report -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Donchitos/Claude-Code-Game-Studios bug-report --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Donchitos/Claude-Code-Game-Studios.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/bug-report .claude/skills/bug-report && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bug-report
GitHub stars
26k
Token cost
~2.5k tokens
SKILL.md length
1,089 words
Files
1
Skills in repo
73
Repo updated
First seen
Licence
MIT

At a glance

Turns a description into a structured bug report, or scans code for likely bugs, then verifies and closes reports through four modes.

  • Works in 3 steps: Parse Arguments → Save Report → Next Steps
  • Writing up a bug with reproduction steps and severity
  • SKILL.md covers Phase 1: Parse Arguments, Phase 2A: Description Mode, Phase 2B: Analyze Mode and Phase 2C: Verify Mode, plus 3 more sections
  • Calls bash

What it does

The skill works in four modes chosen by the first argument. With a plain description it extracts what broke, when, how to reproduce it and the expected behavior, searches the codebase for related files, and drafts a structured report with severity and priority.

Analyze mode reads the files you point to and looks for null references, off-by-one errors, race conditions, unhandled edge cases, resource leaks and incorrect state transitions, writing a report for each suspected bug. Verify mode finds a saved report by its number in the production/qa/bugs folder and uses its reproduction steps and expected result to confirm the fix worked. Close mode marks a verified bug as closed with a resolution record.

Severity and priority labels follow the numbering used by the sibling bug-triage skill, so the two stay compatible. How often the agent asks questions and writes files follows the project's automation mode: collaborative, guided or autonomous.

When your agent uses it

  • Writing up a bug with reproduction steps and severity
  • Scanning a source file for likely defects before testing
  • Confirming that a reported bug is really fixed
  • Closing a verified bug with a resolution record

Example prompts

  • “File a bug report: the inventory screen freezes when I drop a stack of items onto a full slot.”
  • “Analyze the combat scripts for potential bugs and write a report for each.”
  • “Verify that the fix for the inventory freeze report actually worked.”
  • “Close the verified inventory bug with a resolution note.”

Requirements

  • A production/qa/bugs folder where reports are saved
  • Pre-approved tools (allowed-tools): Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/bug-report/../../hooks/yaml-helper.sh" resolve_config *)

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Parse Arguments
  2. Save Report
  3. Next Steps

What it can do on your machine

Read from SKILL.md and the folder at commit b21fa0f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob
    • Grep
    • Bash
    • Write
    • Edit
    • AskUserQuestion
    • Bash(bash "*/.claude/skills/bug-report/../../hooks/yaml-helper.sh" resolve_config *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Structured Bug Reports loads about 2.5k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,089 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/bug-report/../../h

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Donchitos/Claude-Code-Game-Studios at commit b21fa0f, republished under its MIT licence (© Donchitos). 1,089 words, ~2,477 tokens.

Download SKILL.mdSave it as .claude/skills/bug-report/SKILL.md (or your agent's skills folder).
name
bug-report
description
Structured bug report from a description, or analyze code for potential bugs. Reproduction steps, severity.
allowed-tools
Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/bug-report/../../hooks/yaml-helper.sh" resolve_config *)
argument-hint
[description] | analyze [path-to-file] | verify [BUG-ID] | close [BUG-ID]
user-invocable
true
model
sonnet

!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation

Automation mode: Resolve modes.automation (project.local.yaml → project.yaml → default collaborative). Every AskUserQuestion call and every file write follows .claude/docs/automation-modes.md (collaborative asks always · guided major-only · autonomous logs and proceeds; automation_always_ask categories always prompt).

Phase 1: Parse Arguments

Determine the mode from the argument:

  • No keyword → Description Mode: generate a structured bug report from the provided description
  • analyze [path] → Analyze Mode: read the target file(s) and identify potential bugs
  • verify [BUG-ID] → Verify Mode: confirm a reported fix actually resolved the bug
  • close [BUG-ID] → Close Mode: mark a verified bug as closed with resolution record

If no argument is provided, ask the user for a bug description before proceeding.


Phase 2A: Description Mode

  1. Parse the description for key information: what broke, when, how to reproduce it, and what the expected behavior is.

  2. Search the codebase for related files using Grep/Glob to add context (affected system, likely files).

  3. Draft the bug report:

markdown
# Bug Report

## Summary
**Title**: [Concise, descriptive title]
**ID**: BUG-[NNNN]
**Severity**: [S1-Critical / S2-High / S3-Medium / S4-Low]
**Priority**: [P1-Fix this sprint / P2-Fix soon / P3-Backlog / P4-Won't fix]
**Status**: Open
**Reported**: [Date]
**Reporter**: [the reporter's name as the user gives it, else `—`; never an email address or account ID taken from the session]

## Classification
- **Category**: [Gameplay / UI / Audio / Visual / Performance / Crash / Network]
- **System**: [Which game system is affected — when the bug spans systems, the one whose code must change; the others go under Related systems]
- **Frequency**: [Always / Often (>50%) / Sometimes (10-50%) / Rare (<10%)]
- **Regression**: [Yes/No/Unknown -- was this working before?]

## Environment
- **Build**: [Version or commit hash]
- **Platform**: [OS, hardware if relevant]
- **Scene/Level**: [Where in the game]
- **Game State**: [Relevant state -- inventory, quest progress, etc.]

## Reproduction Steps
**Preconditions**: [Required state before starting]

1. [Exact step 1]
2. [Exact step 2]
3. [Exact step 3]

**Expected Result**: [What should happen]
**Actual Result**: [What actually happens]

## Technical Context
- **Likely affected files**: [List of files based on codebase search]
- **Related systems**: [What other systems might be involved]
- **Possible root cause**: [If identifiable from the description]

## Evidence
- **Logs**: [Relevant log output if available]
- **Visual**: [Description of visual evidence]

## Related Issues
- [Links to related bugs or design documents]

## Notes
[Any additional context or observations]

The Severity and Priority labels use /bug-triage's S and P numbers and names, which it parses out of this file. P4-Won't fix is its P4 — Won't fix / Deferred (an accepted risk), not a wishlist. If you change either ladder, change .claude/skills/bug-triage/SKILL.md too.


Phase 2B: Analyze Mode

  1. Read the target file(s) specified in the argument.

  2. Identify potential bugs: null references, off-by-one errors, race conditions, unhandled edge cases, resource leaks, incorrect state transitions.

  3. For each potential bug, generate a bug report using the template above, with the likely trigger scenario and recommended fix filled in.


Phase 2C: Verify Mode

Find the bug file by its number, here and in close mode: Glob production/qa/bugs/BUG-*.md and take the file whose number matches [BUG-ID], whatever its zero-padding — an older three-digit file with a slug is found by its number too. If none matches, stop: "No bug [BUG-ID] in production/qa/bugs/." Verdict: BLOCKED — no such bug.

Read that file. Extract the reproduction steps and expected result.

  1. Re-run reproduction steps — use Grep/Glob to check whether the root cause code path still exists as described. If the fix removed or changed it, note the change.
  2. Run the related test — if the bug's system has a test file in the engine's test root (tests/ Godot, Assets/Tests/ Unity, Source/<Module>/Private/Tests/ Unreal — .claude/docs/directory-structure.md), run it via Bash with commands.test from project.yaml, narrowed to the affected suite where the runner allows — never a runner line written from memory, which drops the flags the engine needs (gdUnit4 hangs without --remote-debug tcp://127.0.0.1:0) — and report pass/fail. commands.test unset → no test ran: name the unset key and go on to step 3.
  3. Check for regression — grep the codebase for any new occurrence of the pattern that caused the bug.
  4. Manual verification — when no related test ran (none covers the bug — the usual case where qa.level waives tests — commands.test is unset, or the run did not complete), or the bug's Category is Visual or UI, whose look no automated test checks, ask via AskUserQuestion: "Did you play the reproduction steps in [bug file] on a build with the fix? Which build?" — [No longer occurs] / [Still occurs] / [Not played yet]. Record the answer and the build as the user gives them; a changed code path is never taken as their answer.

Produce a verification verdict:

  • VERIFIED FIXED — the bug is gone by every check that applies: any related test ran and passed, and, where step 4 asked, the user answered [No longer occurs] for a named build. With no test run, that play alone is the verification — a manual one, recorded as such: [user], manual, build [X]. A changed code path on its own is never a pass
  • STILL PRESENT — a related test fails on the bug's case, or the user answered [Still occurs]; the fix did not resolve the issue
  • CANNOT VERIFY — step 4 was answered [Not played yet]: name what is missing or could not run (no related test, commands.test unset, a run that did not complete, a Visual or UI bug), and say that playing the reproduction steps settles it — run /bug-report verify [BUG-ID] again once played

Ask: "May I update production/qa/bugs/[bug file] to set Status: Verified Fixed / Still Present / Cannot Verify?" — naming the file found above, whatever its padding or slug. With the Status, write a **Verified by**: line under it: [test file(s)] — ran and passed, or [user], manual, build [X] for a manual verification.

If STILL PRESENT: reopen the bug, set Status back to Open, and suggest re-running /hotfix [BUG-ID].


Show full SKILL.md (353 more words)Show less

Phase 2D: Close Mode

Read the bug file, found by its number as in verify mode. Confirm Status is Verified Fixed before closing. If status is anything else, stop: "Bug [ID] must be Verified Fixed before it can be closed. Run /bug-report verify [BUG-ID] first."

Show the closure record below and the Status change, then ask: "May I update production/qa/bugs/[bug file] to mark it Closed?" Nothing is written before a yes; on no, stop — the bug stays Verified Fixed.

On yes, append the closure record to the bug file:

markdown
## Closure Record
**Closed**: [date]
**Resolution**: Fixed — [one-line description of what was changed]
**Fix commit / PR**: [if known]
**Verified by**: [the verify record's `**Verified by**:` line — the test that ran and passed, or "[user], manual, build [X]"]
**Closed by**: [user]
**Regression test**: [test file path, or "Manual verification" when verify recorded a manual play]
**Status**: Closed

Then update the top-level **Status**: field to **Status**: Closed.

After closing, check production/qa/bug-triage-*.md — if the bug appears in an open triage report, note: "Bug [ID] is referenced in the triage report. Run /bug-triage to refresh the open bug count."


Phase 3: Save Report

Present the completed bug report(s) to the user.

Allocate the ID before asking: Glob production/qa/bugs/BUG-*.md, take the highest number and add 1, zero-padded to four digits (BUG-0001 when there are none). Several reports in one run (analyze mode) take consecutive IDs from there, one each — never the same ID twice.

Ask: "May I write this to production/qa/bugs/BUG-[NNNN].md?" For several reports, ask once and name every file: "May I write these to production/qa/bugs/BUG-[NNNN].md, production/qa/bugs/BUG-[NNNN+1].md, …?"

If yes, write the file, creating the directory if needed. Verdict: COMPLETE — bug report filed.

If no, stop here. Verdict: BLOCKED — user declined write.


Phase 4: Next Steps

After saving, suggest based on mode:

After filing (Description/Analyze mode):

  • Run /bug-triage to prioritize alongside existing open bugs
  • If S1 or S2: run /hotfix [BUG-ID] for emergency fix workflow

After fixing the bug (developer confirms fix is in):

  • Run /bug-report verify [BUG-ID] — confirm the fix actually works before closing
  • Never mark a bug closed without verification — a fix that doesn't verify is still Open

After verify returns CANNOT VERIFY:

  • Play the reproduction steps on a build with the fix, then run /bug-report verify [BUG-ID] again and answer its question

After verify returns VERIFIED FIXED:

  • Run /bug-report close [BUG-ID] — write the closure record and update status
  • Run /bug-triage to refresh the open bug count and remove it from the active list

© Donchitos, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/bug-report of Donchitos/Claude-Code-Game-Studios.

Open the folder on GitHubat commit b21fa0f

Compare with similar skills

Structured Bug Reports next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Structured Bug Reports compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Structured Bug Reports this skillDonchitos/Claude-Code-Game-Studios26k—~2.5kAutomated safety check: NotesMIT
OpenWork Desktop CDP Driverdifferent-ai/openwork24k—~465Automated safety check: PassCustom licence
Pipensx Bug Report Triagei3sey/pipensx218—~1.5kAutomated safety check: NotesGPL-3.0
Bug ReproducerAnastasiyaW/codex-claude-code-config154—~4.1kAutomated safety check: PassMIT
Dough Bug Fixingterryyin/lizard2.5k—~3.7kAutomated safety check: PassCustom licence
Plugin Testingglittercowboy/plugin-freedom-system216—~3.1kAutomated safety check: NotesNone

Similar skills

  • OpenWork Desktop CDP Driver

    different-ai/openwork

    Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.

    24k GitHub stars~465 tokensUpdated today
    Testing & QAAuto-check passed
  • Decodes QR-code bug report photos and screenshots from the pipensx app into a log, then triages crashes and update, download or install failures.

    218 GitHub stars~1.5k tokensUpdated 5 days ago
    Testing & QAAuto-check: notes
  • Bug Reproducer

    AnastasiyaW/codex-claude-code-config

    Find likely software bugs in a codebase, rank concrete bug candidates, and prove or reject them with focused regression tests before proposing a fix.

    154 GitHub stars~4.1k tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • Dough Bug Fixing

    terryyin/lizard

    Resolves a reported discrepancy, defect, or regression by gathering expected versus actual behavior and passing the report into bounded shared execution, or by placing known larger or inconclusive…

    2.5k GitHub stars~3.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Plugin Testing

    glittercowboy/plugin-freedom-system

    Validates audio plugins through automated tests, pluginval, or manual DAW testing.

    216 GitHub stars~3.1k tokensUpdated 10 mo ago
    Testing & QAAuto-check: notes
  • Dogfood

    RedWoodOG/Hermes-Desktop

    Systematic exploratory QA testing of web applications — find bugs, capture evidence, and generate structured reports

    177 GitHub starsUsed in 5 repos~1.6k tokens
    Testing & QAAuto-check passed

More from Donchitos/Claude-Code-Game-Studios

All 73 skills in this repo
  • Game Asset Audit

    Donchitos/Claude-Code-Game-Studios

    Audits game assets against naming conventions, file size budgets and format standards, and finds orphaned assets and missing references.

    26k GitHub stars~2k tokensUpdated 8 days ago
    Auto-check passed
  • Game Asset Spec Writer

    Donchitos/Claude-Code-Game-Studios

    Writes per-asset visual specs and AI image-generation prompts for a game's characters, enemies and screens, driven by the GDD, art bible and an entity inventory.

    26k GitHub stars~5k tokensUpdated 8 days ago
    Auto-check passed
  • Game Balance Check

    Donchitos/Claude-Code-Game-Studios

    Checks game data and formulas for balance outliers, broken progression, degenerate strategies and economy problems, and answers 'could not run' when the data is missing.

    26k GitHub stars~2.2k tokensUpdated 8 days ago
    Auto-check passed
  • Bug Triage

    Donchitos/Claude-Code-Game-Studios

    Reviews the open bug backlog, separates severity from priority, assigns fixes to sprints and reports systemic trends, writing a dated triage file.

    26k GitHub stars~2.3k tokensUpdated 8 days ago
    Auto-check passed
  • Changelog Generator for Games

    Donchitos/Claude-Code-Game-Studios

    Generates an internal or player-facing changelog from git commits and sprint data, filtering out framework maintenance commits so that only work on the game itself reaches release copy.

    26k GitHub stars~2.5k tokensUpdated 8 days ago
    Auto-check: notes
  • Architectural Code Review

    Donchitos/Claude-Code-Game-Studios

    Performs an architectural review of code against coding standards, SOLID, testability and performance, and reports no verdict when the inputs are missing.

    26k GitHub stars~3.5k tokensUpdated 8 days ago
    Auto-check passed

Questions about Structured Bug Reports

What does Structured Bug Reports do?

Turns a description into a structured bug report, or scans code for likely bugs, then verifies and closes reports through four modes. The skill works in four modes chosen by the first argument. With a plain description it extracts what broke, when, how to reproduce it and the expected behavior, searches the codebase for related files, and drafts a structured report with severity and priority.

When should I use Structured Bug Reports?

Structured Bug Reports fits situations like: writing up a bug with reproduction steps and severity; scanning a source file for likely defects before testing; confirming that a reported bug is really fixed; closing a verified bug with a resolution record.

How do I install Structured Bug Reports in Claude Code?

Run `npx skills add Donchitos/Claude-Code-Game-Studios --skill bug-report -a claude-code`. Or copy the skill folder (.claude/skills/bug-report in Donchitos/Claude-Code-Game-Studios) into .claude/skills/bug-report in your project. Claude Code loads it when a task matches its description.

How do I install Structured Bug Reports in Codex?

Run `npx skills add Donchitos/Claude-Code-Game-Studios --skill bug-report -a codex`. Or copy the skill folder (.claude/skills/bug-report in Donchitos/Claude-Code-Game-Studios) into .agents/skills/bug-report in your project. Codex loads it when a task matches its description.

Can I use Structured Bug Reports in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Donchitos/Claude-Code-Game-Studios --skill bug-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bug-report, .gemini/skills/bug-report, .github/skills/bug-report and .opencode/skills/bug-report in your project.

What does Structured Bug Reports need to run?

Going by SKILL.md and its folder, Structured Bug Reports needs the command-line tools its instructions call (bash). Our summary lists: A production/qa/bugs folder where reports are saved. Its frontmatter pre-approves these tools: Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion, Bash(bash "*/.claude/skills/bug-report/../../hooks/yaml-helper.sh" resolve_config *).

Does Structured Bug Reports access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Structured Bug Reports safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Structured Bug Reports use?

Structured Bug Reports is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Structured Bug Reports use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Structured Bug Reports?

Skills that share tags, products or a category with Structured Bug Reports: OpenWork Desktop CDP Driver (different-ai/openwork, 24k stars), Pipensx Bug Report Triage (i3sey/pipensx, 218 stars), Bug Reproducer (AnastasiyaW/codex-claude-code-config, 154 stars) and Dough Bug Fixing (terryyin/lizard, 2.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Structured Bug Reports?

Donchitos (a GitHub user) maintains it in Donchitos/Claude-Code-Game-Studios, which has 25,834 GitHub stars. The repository holds 73 skills in this directory. The repository was last updated on September 29, 2026.

Source: Donchitos/Claude-Code-Game-Studios on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.