
Axiom Performance
Route Apple-platform performance work—slow UI, leaks, battery drain—through the right Axiom profiling and memory-debugging playbooks and audits.
Install
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-performanceWhat is this skill?
- Mandatory router for any performance issue: slowness, memory growth, battery, or heat
- Swift memory leak patterns and deinit-not-called diagnosis via dedicated skill refs
- Objective-C block retain-cycle guidance for network callback leaks
- Instruments decision trees: Time Profiler, Allocations, Core Data N+1
- memory-auditor agent path: 5-phase semantic audit citing 6 leak patterns and lifecycle scoring
Adoption & trust: 1 installs on skills.sh; 958 GitHub stars; 3/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Journey fit
Canonical shelf is Ship because the skill is invoked when quality and performance must be proven before release or during hardening, not only after incidents. Perf subphase matches Instruments workflows, CPU/memory profiling, and optimization gates before users feel lag or drain.
Common Questions / FAQ
Is Axiom Performance safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Axiom Performance
# Performance **You MUST use this skill for ANY performance issue including memory leaks, slow execution, battery drain, or profiling.** ## When to Use Use this router when: - App feels slow or laggy - Memory usage grows over time - Battery drains quickly - Device gets hot during use - High energy usage in Battery Settings - Diagnosing performance with Instruments - Memory leaks or retain cycles - App crashes with memory warnings ## Routing Logic ### Memory Issues **Memory leaks (Swift)** → See skills/memory-debugging.md - Systematic leak diagnosis - 5 common leak patterns - Instruments workflows - deinit not called **Memory leak scan** → Launch `memory-auditor` agent or `/axiom:audit memory` (5-phase semantic audit: maps resource ownership, detects 6 leak patterns, reasons about missing cleanup, correlates compound risks, scores lifecycle health) **Memory leaks (Objective-C blocks)** → See skills/objc-block-retain-cycles.md - Block retain cycles - Weak-strong pattern - Network callback leaks ### Performance Profiling **Performance profiling (GUI)** → See skills/performance-profiling.md - Time Profiler (CPU) - Allocations (memory growth) - Core Data profiling (N+1 queries) - Decision trees for tool selection **Automated profiling (CLI)** → See skills/xctrace-ref.md - Headless xctrace profiling - CI/CD integration patterns - Command-line trace recording - Programmatic trace analysis **Run automated profile** → Use `performance-profiler` agent or `/axiom:profile` - Records trace via xctrace - Exports and analyzes data - Reports findings with severity **Compare two traces / detect regressions** → See skills/trace-comparison.md or `/axiom:compare-traces` - Did this change slow down a hot path? Function-level CPU-share deltas - CI gating with `xcprof compare --fail-on-regression` (non-zero exit) - Regressions vs improvements, severity ranking, exit-code semantics ### Hang/Freeze Issues **App hangs or freezes** → See skills/hang-diagnostics.md - UI unresponsive for >1 second - Main thread blocked (busy or waiting) - Decision tree: busy vs blocked diagnosis - Time Profiler vs System Trace selection - 8 common hang patterns with fixes - Watchdog terminations **Corpus/aggregate hang triage (Sentry, ASC)** → `axiom-shipping (skills/production-triage.md)` + `triage-analyzer` agent - Multiple grouped hang reports from an aggregator, not a single .ips file - Classify `anr_idle_runloop` vs `anr_main_thread_block` across the corpus - Flag suspension/idle-runloop false-positives (the #1 hang by user count is often noise) - Cluster into root-cause families and rank by impact ### App Launch **Slow app launch** → See skills/app-launch.md - Slow first frame, frozen first screen, launch regression in Organizer - Launch-phase model (pre-main / main→first frame / extended launch) - Cold vs warm vs hot/resume vs notification launch — how to reproduce each - App Launch instrument workflow, `dyld Activity`, measurement hygiene - Pre-main fixes (frameworks, `+load`, mergeable libraries), main-thread deferral, priority inversion - `XCTApplicationLaunchMetric` regression test, `MXAppLaunchMetric` field histograms, custom "app is interactive" signpost - Push-notification launch path (tap→first pixel / tap→interactive targets) ### Energy Issues **Battery drain, high energy** → See skills/energy.md - Power Profiler workflow - Subsystem diagnosis (CPU/GPU/Network/Location/Display) - Anti-pattern fixes - Background execution optimization **Symptom-based diagnosis** → See skills/energy-diag.md - "App at top of Battery Settings" - "Device gets hot" - "Background battery drain" - Time-cost analysis for each path **API reference with code** → See skills/energy-ref.md - Complete WWDC code examples - T