Bug report format and documentation for failed validations. Use when validation fails and status must be set to needs_fixes.
"A good bug report is half the fix ā be specific, be reproducible."
Use when validation fails and status must be set to needs_fixes.
## Bug Report: {{TASK_ID}}
**Severity**: Critical / High / Medium / Low
**Found in**: Automated tests / Code review / Console inspection
### Summary
Brief one-line description of the issue.
### Steps to Reproduce
1. Step one
2. Step two
3. Step three
### Expected Behavior
What should happen.
### Actual Behavior
What actually happens.
### Evidence
- Console errors: {{error text}}
- Screenshot: {{path}}
# Bug Report: {{TASK_ID}} - {{BRIEF_TITLE}}
**Reported**: {{ISO_TIMESTAMP}}
**Reporter**: QA Agent
**Severity**: {{Critical | High | Medium | Low}}
**Category**: {{Build | TypeScript | Runtime | Visual | Performance}}
---
## Summary
{{One or two sentences describing the issue}}
## Environment
- **OS**: {{Windows / macOS / Linux}}
- **Node Version**: {{v20.x.x}}
- **Context**: {{Development server / Production / Browser console}}
## Steps to Reproduce
1. {{First step}}
2. {{Second step}}
3. {{Third step}}
4. {{...}}
## Expected Behavior
{{What should happen when following the steps}}
## Actual Behavior
{{What actually happens instead}}
## Console Errors
\`\`\`
{{Paste console errors here}}
\`\`\`
## Screenshots
{{Include paths to screenshots or describe what was captured}}
## Additional Context
{{Any other relevant information:
- Related code files
- Recent changes that might have caused this
- Workarounds attempted
- Similar issues seen before}}
## Acceptance Criteria Status
| Criterion | Status | Notes |
| --------------- | ----------------- | --------- |
| {{Criterion 1}} | ā
Pass / ā Fail | {{notes}} |
| {{Criterion 2}} | ā
Pass / ā Fail | {{notes}} |
| {{Criterion 3}} | ā
Pass / ā Fail | {{notes}} |
---
## For Developer
**Files likely involved**:
- {{file1.ts}}
- {{file2.tsx}}
**Suggested investigation**:
- {{Suggestion 1}}
- {{Suggestion 2}}
| Severity | Definition | Example |
|---|---|---|
| Critical | App crashes, data loss, blocks all testing | Build fails, app won't load |
| High | Major feature broken, no workaround | Player controls don't work |
| Medium | Feature partially works, has workaround | Physics jittery but functional |
| Low | Minor issue, cosmetic, edge case | Slight visual glitch on resize |
| Category | Description | Automated Check |
|---|---|---|
| Build | Build or bundle fails | npm run build |
| TypeScript | Type errors | npm run type-check |
| Lint | Code style issues | npm run lint |
| Test | Unit test failure | npm run test |
| Runtime | Error during execution | Console inspection |
| Visual | Incorrect appearance | Visual inspection |
| Performance | FPS drops, lag, memory | Performance profiling |
ā DON'T:
ā DO:
CRITICAL: Before reporting a code-related bug, you MUST:
A report claimed "code appears to skip connection" but tracing actual flow showed proper initialization:
initializeConnection PROPERLY calls networkManager.connect() and joinRoom()When reporting a bug, send a bug_report message to PM with full bug details:
{
"id": "msg-pm-{timestamp}-001",
"from": "qa",
"to": "pm",
"type": "bug_report",
"priority": "high",
"payload": {
"taskId": "{taskId}",
"bugs": [{
"file": "src/file.ts",
"line": 42,
"issue": "Type error: Type 'string' is not assignable...",
"severity": "critical",
"summary": "Build fails with TypeScript error",
"steps": ["Run npm run build", "Observe error"],
"expected": "Build succeeds",
"actual": "TS2322 error"
}]
},
"timestamp": "{ISO_TIMESTAMP}"
}
ā ļø IMPORTANT: QA does NOT update prd.json directly. PM syncs bug information from bug_report message.
Note: Commit format templates for failed validations are in qa-workflow skill.
Before submitting bug report: