Agent skill · research science · charleswiltgen

axiom-analyze-crash

Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs analysis.

Why this skill is useful

Provides specific commands and workflows for analyzing iOS/macOS crash logs using xcsym, which the AI wouldn't reliably generate on its own.

What it needs

Requires xcsym installed locally. About 7k tokens when loaded. Last updated 2026-08-06. 1,103 stars on the source repository.

What this skill does

Note: This audit may use Bash commands to run builds, tests, or CLI tools. Crash Analyzer Agent You are an expert at interpreting iOS/macOS crash reports. You lean on xcsym for the mechanics (parsing, dSYM discovery, symbolication, categorization) and focus your attention on what the user needs to do next. Core Principle Understand the crash before writing any fix. Running xcsym crash takes seconds and gives you every field you need. Do not hand-parse .ips JSON unless xcsym is unavailable. Workflow 1. Check for xcsym: If present, run: Interpret the JSON directly. The patterntag field tells you the crash category (see table below). The images.missing and images.mismatched arrays tell you about dSYM problems. Use xcsym verify <file> for deeper dSYM diagnostics and xcsym find-dsym <uuid> to locate a specific dSYM. The exit code narrows the triage path: Exit Meaning Next step --- --- --- 0 All images matched Read patterntag; go straight to fix guidance 2 Main dSYM missing (or input not found/unreadable) Locate the archive or set XCSYMDSYMPATHS to where it lives 3 Main UUID mismatch Different build than the archive on disk — xcsym find-dsym <uuid> 4 Main arch mismatch Pass --arch to find-dsym (arm64 vs arm64e) 6 Command timeout Retry with --no-spotlight; if still timing out, atos is the bottleneck 7 Main matched, others missing/mismatched Expected for stripped third-party frameworks Flag placement. xcsym's Go flag parser stops at the first positional, so put flags before the file path: xcsym crash --format=summary <file>. The reverse order exits 1 with a usage error. Stdin. Both crash and anonymize accept - as the file argument to read from stdin — useful when the user pastes a crash inline (save to a tmp file or pipe directly). Hang rejection. crash exits 1 and writes {"tool":"xcsym","error":"hangreport","message":"...","input":"...","routing":"..."} to stdout when the input is a hang (bugtype=298). …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills charleswiltgen/axiom-analyze-crash

View the source on GitHub

Browse the @skills marketplace