qa-generating-bug-reports
Generating Bug Reports
This skill standardizes bug report creation across all testing agents. Every discovered defect flows through this skill to ensure consistent, actionable, developer-friendly bug reports.
When to Use
- Any agent discovers a defect during testing
- You need to format findings for Jira, GitHub Issues, or similar trackers
- You're compiling a QA report with multiple findings
- You want to ensure reproduction steps are complete and unambiguous
Bug Report Structure
Every bug report MUST include these sections:
Required Fields
{
"bug_id": "BUG-001",
"title": "Short, specific summary (what + where)",
"severity": "critical|high|medium|low|info",
"type": "functional|visual|performance|security|ux|accessibility",
"status": "new",
"discovered_by": "agent-name",
"discovered_at": "2025-01-15T10:30:00Z",
"environment": {
"url": "https://staging.example.com/checkout",
"browser": "chromium 120",
"viewport": "1440x900",
"os": "Linux",
"build": "staging-v2.3.1"
},
"description": "Full description of what's wrong and why it matters",
"reproduction_steps": [
"1. Navigate to /checkout",
"2. Add item to cart",
"3. Click 'Proceed to Payment'",
"4. Leave the email field empty",
"5. Click 'Submit Order'",
"6. OBSERVE: Order submits successfully without email validation"
],
"expected_behavior": "Form should show validation error on the email field",
"actual_behavior": "Order submits with no email, confirmation page shows 'undefined'",
"evidence": {
"screenshots": ["screenshot-before.png", "screenshot-after.png"],
"console_log": "TypeError: Cannot read property 'email' of undefined",
"network_log": "POST /api/orders → 201 (should have been 400)",
"har_file": "checkout-session.har"
},
"impact": "Users can place orders without email, breaking order confirmation flow",
"suggested_fix": "Add server-side email validation in POST /api/orders endpoint"
}
Optional Fields
{
"related_bugs": ["BUG-002", "BUG-005"],
"affected_users": "All users on checkout flow",
"frequency": "100% reproducible",
"workaround": "Manually enter email before submitting",
"regression": true,
"regression_since": "v2.3.0",
"jira_labels": ["checkout", "validation", "regression"],
"assignee_suggestion": "backend-team"
}
Severity Classification
Use this guide consistently across all agents:
Critical — Application is unusable or data is at risk
- Authentication bypass or security vulnerability
- Data loss or corruption
- Application crashes or is completely non-functional
- Financial transaction errors (wrong charges, duplicate payments)
High — Major feature is broken with no workaround
- Core user journey cannot be completed
- Significant visual regression affecting usability
- Performance degradation >5x normal
- API returning incorrect data
Medium — Feature works but with notable issues
- Non-critical UI elements broken
- Error messages missing or unhelpful
- Moderate performance issues (2-5x normal)
- Cross-browser inconsistencies affecting UX
Low — Minor cosmetic or polish issues
- Slight visual misalignment (<5px)
- Minor typos in UI text
- Inconsistent spacing or styling
- Deprecated API warnings in console
Info — Observations, not defects
- Potential improvements
- Code quality observations
- Performance optimization opportunities
- Accessibility suggestions
Writing Good Bug Titles
The title should let a developer understand the issue at a glance:
Pattern: [Area] What happens + Where/When
Good examples:
- "Checkout: Order submits without email validation on payment form"
- "Dashboard: Chart data overlaps legend text at tablet viewport"
- "API: POST /users returns 500 when name exceeds 255 characters"
- "Login: Password field accepts paste but shows empty on Safari"
Bad examples:
- "Bug in checkout" (too vague)
- "Something wrong" (not descriptive)
- "Form doesn't work" (which form? what doesn't work?)
Writing Reproduction Steps
Reproduction steps should be precise enough that any developer can follow them:
- Start from a known state — "Navigate to /checkout" not "Go to the page"
- Be specific about inputs — "Enter 'test@example.com'" not "Enter an email"
- One action per step — Don't combine "Click login and enter credentials"
- Mark the observation point — "OBSERVE: ..." or "EXPECTED: ... / ACTUAL: ..."
- Include timing if relevant — "Wait 5 seconds" or "Quickly click 3 times"
Using the Bug Report Generator
python skills/qa-generating-bug-reports/scripts/generate_report.py \
--template standard \
--output bugs/BUG-001.json \
--screenshots screenshot1.png screenshot2.png
Or generate from agent session data:
python skills/qa-generating-bug-reports/scripts/from_session.py \
--session session-log.json \
--output bugs/ \
--agent-name qa-e2e-exploratory-agent
Markdown Report Format
For human-readable reports (e.g., summary documents):
## BUG-001: Checkout order submits without email validation [HIGH]
**Environment:** Chromium 120 / Desktop (1440×900) / staging-v2.3.1
**Discovered:** 2025-01-15 by qa-e2e-exploratory-agent
**Reproducible:** 100%
### Description
When submitting the checkout form with an empty email field, the order
processes successfully. The confirmation page shows "undefined" where
the email should appear.
### Steps to Reproduce
1. Navigate to /checkout
2. Add any item to cart
3. Click 'Proceed to Payment'
4. Leave the email field empty
5. Click 'Submit Order'
6. **OBSERVE:** Order submits, confirmation shows 'undefined' for email
### Expected vs Actual
- **Expected:** Form validation prevents submission, shows error on email field
- **Actual:** Order submits, confirmation page displays "undefined"
### Evidence
- Screenshot: [before-submit.png] [after-submit.png]
- Console: `TypeError: Cannot read property 'email' of undefined`
- Network: `POST /api/orders → 201` (expected 400)
### Impact
All users can place orders without email, breaking confirmation emails
and order tracking.
Deduplication
Before creating a new bug report, check existing reports for duplicates:
- Same URL + same error type = likely duplicate
- Same console error message = likely duplicate
- Same visual region affected = likely duplicate
If a duplicate is found, append the new evidence to the existing report
rather than creating a new one. Add a duplicate_of field if merging.
More from wizeline/sdlc-agents
editing-pptx-files
Use this action any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this action.
25editing-docx-files
Use this action whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of \"Word doc\", \"word document\", \".docx\", or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a \"report\", \"memo\", \"letter\", \"template\", or similar deliverable as a Word or .docx file, use this action. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
22authoring-user-docs
Use when producing user-facing documentation — tutorials, how-to guides, user guides, getting-started guides, installation guides, or onboarding documentation. Triggers: 'write a tutorial', 'create a getting started guide', 'document how to use this', 'write a user guide', 'create onboarding docs', any task where the audience is learning to use software. Always load authoring-technical-docs first.
22sourcing-from-atlassian
Retrieval procedures for fetching user stories, epics, acceptance criteria, and Confluence pages from Atlassian via MCP. Used by the atlassian-sourcer agent and optionally by doc-engineer/c4-architect when Atlassian sources are available. Covers authentication bootstrap, JQL/CQL query patterns, field extraction, pagination, and source bundle formatting.
21authoring-architecture-docs
Use when producing architecture and design documentation — Architecture Decision Records (ADRs), design documents, system architecture overviews, or technical design proposals. Triggers: 'write a design doc', 'create an ADR', 'document the architecture', 'write a technical proposal', 'create system overview'. Always load authoring-technical-docs first.
21authoring-api-docs
Use when producing API reference documentation — REST endpoints, SDK/library references, CLI command references, or documentation generated from OpenAPI/Swagger specs. Triggers: 'document this API', 'generate API reference', 'write SDK docs', 'document these endpoints', any task involving source code with HTTP handlers, route definitions, or OpenAPI specs. Always load authoring-technical-docs first.
20