Autonomous bug fixing system for UE5 - accepts GitHub issues, screenshots, logs, or text
This skill reads project-specific values from skills.config.json at the repository root.
If not found, auto-detect using ue-detect-engine skill or prompt the user.
Role: Bug Fix Engineer Scope: Full codebase analysis and C++ bug fixing Engine Version: UE 5.7.1-huli Platform: Windows
Autonomously analyze and fix bugs from multiple input sources:
Routes fixes through BMGD workflows with adversarial code review.
/game-bugs 123
/game-bugs https://github.com/{github.repo}/issues/123
/game-bugs screenshot.png
/game-bugs 123 evidence1.png evidence2.png
/game-bugs crash.log
/game-bugs S2-backup-2024.01.15-12.30.45.log
/game-bugs --describe "Player takes damage twice per hit"
/game-bugs bug_description.txt
/game-bugs 123 screenshot.png crash.log
fix/{issue}-{slug}combat-engineer for GAS/combo/damage bugsprincipal-gameplay-engineer for StateTree bugscrash-investigator for crashes/bmad:bmgd:agents:game-dev/dev-workflow:ue-cpp-build/bmad:bmgd:workflows:code-review| Task | Default Model | Complex Override |
|---|---|---|
| Classification | claude-sonnet-4-5 | - |
| Analysis | claude-sonnet-4-5 | - |
| Diagnosis | claude-sonnet-4-5 | claude-opus-4-5 |
| Fix Implementation | claude-sonnet-4-5 | claude-opus-4-5 |
| Code Review | claude-sonnet-4-5 | - |
Complexity Threshold: 0.8 (auto-upgrade to Opus for complex bugs)
# Use Opus for everything
/game-bugs 123 --model opus
# Use Haiku for simple bugs
/game-bugs 123 --model haiku
| Flag | Description |
|---|---|
--model {sonnet|opus|haiku} | Override model selection |
--dry-run | Don't commit or create PR |
--skip-tests | Skip test execution |
--verbose | Enable verbose logging |
--resume {checkpoint} | Resume from checkpoint |
claude-agents/reports/game-bugs/{CWD} = Current Working Directory
{ProjectRoot} = {ci.jenkins_workspace}
{GameBugsDir} = agentic-systems/game-bugs
{ReportsDir} = claude-agents/reports/game-bugs
{CheckpointsDir} = {GameBugsDir}/checkpoints
/dev-workflow:ue-cpp-build - Compile verification/bmad:bmgd:agents:game-dev - Fix implementation/bmad:bmgd:workflows:code-review - Adversarial review/combat-engineer - Combat system bugs/principal-gameplay-engineer - Gameplay system bugs/crash-investigator - Crash analysisEnforces project coding standards from CODING_PITFALLS.md:
LoadSynchronous() → RequestAsyncLoad()new FGameplayEffectSpec() → MakeOutgoingSpec()GetComponentByClass() in PostInitializeComponents()NativeTick in widgets → use timersnullptr not NULLUser: /game-bugs 456
Agent:
1. Fetching GitHub issue #456...
2. Bug: "Combat damage applied twice per hit"
3. Type: C++ | Systems: Combat, GAS
4. Searching codebase...
5. Found: Source/S2/Private/Combat/SipherDamageExecution.cpp:234
6. Root Cause: Missing guard for duplicate damage application
7. Creating branch: fix/456-double-damage
8. Implementing fix...
9. Building... SUCCESS
10. Code review round 1... 0 issues
11. Committing...
12. Creating PR...
PR Created: https://github.com/{github.repo}/pull/789
User: /game-bugs 789 crash_screenshot.png S2.log
Agent:
1. Parsing inputs...
- GitHub #789: "Game crashes during boss transition"
- Screenshot: Shows crash dialog with access violation
- Log: Stack trace pointing to SipherBossStateTree.cpp:156
2. Type: C++ | Systems: AI, StateTree
3. Routing to: crash-investigator
4. Root Cause: Null pointer access in state transition
5. Fix: Add null check before state access
...
User: /game-bugs --describe "Boss animation not playing"
Agent:
1. Analyzing description...
2. Type: Blueprint | Systems: Animation
3. NOT AUTO-FIXABLE (Blueprint change required)
4. Generating report...
Report saved: claude-agents/reports/game-bugs/boss-animation-report.md
Recommended manual fixes:
- Check Animation Blueprint event graph
- Verify montage slot configuration
- Check State Tree animation triggers
If the workflow fails mid-execution:
# Resume from last checkpoint
/game-bugs --resume chk_20240115_123045
Checkpoints saved after each phase with full state.
| Error | Cause | Solution |
|---|---|---|
GitHub fetch failed | Invalid issue or auth | Check GITHUB_TOKEN |
Image analysis failed | Unsupported format | Use PNG/JPG |
Build failed | Code error | Auto-retry with fix |
No root cause found | Insufficient info | Request more evidence |