skills/crash-report/SKILL.md
Create GitHub issues from crash logs with automatic parsing and optional AI analysis
npx skillsauth add sipherxyz/universal-ue-skills crash-reportInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Role: Crash-to-GitHub Issue Automation Scope: Parse crash logs, create GitHub issues Platform: Windows + PowerShell
Convert crash logs into GitHub issues with structured information:
ghgh) authenticatedSaved/Logs/.claude/credentials/sentry.env for enriched crash data./scripts/crash-parser.ps1
The crash-report skill uses a hybrid approach for crash data:
The Sentry SDK writes symbolicated callstacks directly to the local log file. This is the most reliable source because:
When Sentry credentials are configured, the skill fetches additional context:
Note: Hard crashes (Access Violations, VectorVM crashes) often don't reach Sentry server because the process terminates too quickly. The local log data is more complete for these cases.
Create .claude/credentials/sentry.env:
SENTRY_URL=https://sentry.atherlabs.io
SENTRY_AUTH_TOKEN=your_token_here
SENTRY_ORG=atherlabs
SENTRY_PROJECT=huli
Note: This file is gitignored and should not be committed.
ASK the user which log source to search:
Which build would you like to check for crashes?
Options:
[S] Steam (default) - Shipping build from Steam installation
[E] Editor - Development build from project folder
[B] Both - Search all available sources
Default to Steam if user doesn't specify.
powershell -NoProfile -ExecutionPolicy Bypass -File "./scripts/crash-parser.ps1" -Action list-crashes -Source {Steam|Editor|Both} -HoursBack 24
Parameters:
-Source - Log source: Steam (default), Editor, or Both-HoursBack - How far back to search (default: 24 hours)Expected Output:
LOG_SOURCES=N with list of directories being searchedNO_CRASHES_FOUND if no crashes detectedCRASHES_FOUND=N with numbered list of crashes (showing [Steam] or [Editor] prefix)If no crashes: Inform user no crashes found in the time window. Ask if they want to extend the search window or try a different source.
If crashes found: Display the list and ask user which crash to report (or "all").
For the selected crash (add -UseSentry to fetch Sentry API data):
powershell -NoProfile -ExecutionPolicy Bypass -File "./scripts/crash-parser.ps1" -Action get-crash -LogPath "{full_path_to_log}" -UseSentry
Output includes:
CRASH_TYPE - Fatal Error, Assertion, Access Violation, GPU Crash, etc.CRASH_TIME - When the crash occurredERROR_MESSAGE - The error descriptionWith -UseSentry flag (if credentials configured):
SENTRY_ISSUE - Matched Sentry issue IDSENTRY_EVENT - Sentry event IDDisplay: Show the crash summary to the user.
Present options:
Crash detected: {CRASH_TYPE}
Time: {CRASH_TIME}
Message: {ERROR_MESSAGE (truncated)}
Options:
[Q] Quick issue - Create issue with parsed data only
[A] Analyzed issue - Run crash-investigator for root cause analysis, then create issue
[V] View full logs - Show complete crash details before deciding
[S] Skip - Don't create issue for this crash
If user chose Quick (Q):
powershell -NoProfile -ExecutionPolicy Bypass -File "./scripts/crash-parser.ps1" -Action format-issue -LogPath "{full_path_to_log}" -UseSentry
This outputs ISSUE_TITLE, ISSUE_LABELS, and ISSUE_BODY_START...ISSUE_BODY_END.
With -UseSentry: Issue body includes Breadcrumbs and Full Stacktrace sections from Sentry.
Then create the issue:
gh issue create --title "{ISSUE_TITLE}" --label "bug,crash" --body "{ISSUE_BODY}"
IMPORTANT: Use a HEREDOC for the body to preserve formatting:
gh issue create --title "Crash: Access Violation - ..." --label "bug,crash" --body "$(cat <<'EOF'
## Crash Report
...body content...
EOF
)"
If user chose Analyzed (A):
Launch crash-investigator agent using the Task tool:
Wait for analysis results
Append analysis to issue body:
Create the issue with enhanced body
If user chose View (V):
Read the full log file tail (last 300 lines) and display to user. Then return to Step 3 for decision.
After issue is created, display:
GitHub Issue Created!
URL: {issue_url}
Title: {title}
Labels: bug, crash
You can view and edit the issue at the URL above.
ERROR: gh CLI not authenticated
Solution: Run gh auth login to authenticate with GitHub.
ERROR: No crash patterns found in log file
Solution: The log file exists but doesn't contain recognized crash patterns. User may need to check manually or the crash happened in a different session.
ERROR: Log file not found at {path}
Solution: Verify the path exists. Logs may have been cleaned up.
/crash-report --source steam # Steam shipping build (default)
/crash-report --source editor # Editor/development build
/crash-report --source both # Search all sources
/crash-report --hours 72
Searches last 72 hours instead of default 24.
/crash-report --log Saved/Logs/S2-backup-2026.01.14-03.36.57.log
Reports a specific log file directly.
The generated GitHub issue follows this structure:
## Crash Report
**Type:** {crash_type}
**Time:** {timestamp}
**Log File:** `{filename}`
## Error Message
{error_message}
## Callstack (Symbolicated)
{sentry_callstack from logs if available}
## Callstack (Raw)
{raw_callstack}
## Relevant Logs
{error_and_warning_lines}
## Breadcrumbs (Sentry)
Events leading to the crash:
{breadcrumbs from Sentry API - only with -UseSentry}
## Full Stacktrace (Sentry)
{symbolicated frames from Sentry API - only with -UseSentry}
## Environment
- **Platform:** Windows
- **Branch:** {git_branch}
- **Commit:** {git_short_hash}
- **GPU:** {from Sentry tags}
- **OS:** {from Sentry tags}
- **Build Config:** {from Sentry tags}
- **Sentry Issue:** {HULI-xxx}
---
*Auto-generated crash report*
If analyzed, additional sections are appended:
## Analysis
{crash_investigator_analysis}
## Recommended Fix
{fix_recommendations}
## Prevention
{prevention_strategies}
skill: crash-report
type: workflow
category: debugging
scope: project-root
development
This skill should be used when implementing features in isolation using git worktrees. Triggers on "create worktree", "isolated workspace", "parallel development", or when starting implementation that should not affect main workspace.
testing
Manage VFX team issues on GitHub Projects - timeline scheduling, status updates, member commit checks, bulk assign. Use when managing VFX team project board, adding issues to timeline, checking member progress, or bulk-updating issue fields.
tools
Generate C++ validation rules from JSON definitions. Use when team updates ValidationRules.json or asks to add/modify validation rules.
development
Check codebase for Microsoft Xbox XR (Xbox Requirements) compliance issues. Scans for account picker, cloud saves, achievements, Quick Resume, and Xbox certification requirements. Use before console submission or when preparing for Microsoft certification. Triggers on "XR", "Xbox certification", "Microsoft compliance", "Xbox cert", "Xbox requirements", "GDK compliance".