axiom-ios-performance
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-ios-performance
Agent 安装分布
Skill 文档
iOS Performance Router
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) â /skill axiom-memory-debugging
- Systematic leak diagnosis
- 5 common leak patterns
- Instruments workflows
- deinit not called
Memory leaks (Objective-C blocks) â /skill axiom-objc-block-retain-cycles
- Block retain cycles
- Weak-strong pattern
- Network callback leaks
Performance Profiling
Performance profiling (GUI) â /skill axiom-performance-profiling
- Time Profiler (CPU)
- Allocations (memory growth)
- Core Data profiling (N+1 queries)
- Decision trees for tool selection
Automated profiling (CLI) â /skill axiom-xctrace-ref
- 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
Hang/Freeze Issues
App hangs or freezes â /skill axiom-hang-diagnostics
- 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
Energy Issues
Battery drain, high energy â /skill axiom-energy
- Power Profiler workflow
- Subsystem diagnosis (CPU/GPU/Network/Location/Display)
- Anti-pattern fixes
- Background execution optimization
Symptom-based diagnosis â /skill axiom-energy-diag
- “App at top of Battery Settings”
- “Device gets hot”
- “Background battery drain”
- Time-cost analysis for each path
API reference with code â /skill axiom-energy-ref
- Complete WWDC code examples
- Timer, network, location efficiency
- BGContinuedProcessingTask (iOS 26)
- MetricKit setup
MetricKit Integration
MetricKit API reference â /skill axiom-metrickit-ref
- MXMetricPayload parsing
- MXDiagnosticPayload (crashes, hangs)
- Field performance data collection
- Integration with crash reporting
Decision Tree
- Memory leak (Swift)? â memory-debugging
- Memory leak (Objective-C blocks)? â objc-block-retain-cycles
- App hang/freeze (UI unresponsive >1s)? â hang-diagnostics
- Battery drain (know the symptom)? â energy-diag
- Battery drain (need API reference)? â energy-ref
- Battery drain (general)? â energy
- MetricKit setup/parsing? â metrickit-ref
- Profile with GUI (Instruments)? â performance-profiling
- Profile with CLI (xctrace)? â xctrace-ref
- Run automated profile now? â performance-profiler agent
- General slow/lag? â performance-profiling
Anti-Rationalization
| Thought | Reality |
|---|---|
| “I know it’s a memory leak, let me find it” | Memory leaks have 6 patterns. memory-debugging diagnoses the right one in 15 min vs 2 hours. |
| “I’ll just run Time Profiler” | Wrong Instruments template wastes time. performance-profiling selects the right tool first. |
| “Battery drain is probably the network layer” | Energy issues span 8 subsystems. energy skill diagnoses the actual cause. |
| “App feels slow, I’ll optimize later” | Performance issues compound. Profiling now saves exponentially more time later. |
| “It’s just a UI freeze, probably a slow API call” | Freezes have busy vs blocked causes. hang-diagnostics has a decision tree for both. |
Critical Patterns
Memory Debugging (memory-debugging):
- 6 leak patterns: timers, observers, closures, delegates, view callbacks, PhotoKit
- Instruments workflows
- Leak vs caching distinction
Performance Profiling (performance-profiling):
- Time Profiler for CPU bottlenecks
- Allocations for memory growth
- Core Data SQL logging for N+1 queries
- Self Time vs Total Time
Energy Optimization (energy):
- Power Profiler subsystem diagnosis
- 8 anti-patterns: timers, polling, location, animations, background, network, GPU, disk
- Audit checklists by subsystem
- Pressure scenarios for deadline resistance
Example Invocations
User: “My app’s memory usage keeps growing”
â Invoke: /skill axiom-memory-debugging
User: “I have a memory leak but deinit isn’t being called”
â Invoke: /skill axiom-memory-debugging
User: “My app feels slow, where do I start?”
â Invoke: /skill axiom-performance-profiling
User: “My Objective-C block callback is leaking”
â Invoke: /skill axiom-objc-block-retain-cycles
User: “My app drains battery quickly”
â Invoke: /skill axiom-energy
User: “Users say the device gets hot when using my app”
â Invoke: /skill axiom-energy-diag
User: “What’s the best way to implement location tracking efficiently?”
â Invoke: /skill axiom-energy-ref
User: “Profile my app’s CPU usage”
â Use: performance-profiler agent (or /axiom:profile)
User: “How do I run xctrace from the command line?”
â Invoke: /skill axiom-xctrace-ref
User: “I need headless profiling for CI/CD”
â Invoke: /skill axiom-xctrace-ref
User: “My app hangs sometimes”
â Invoke: /skill axiom-hang-diagnostics
User: “The UI freezes and becomes unresponsive”
â Invoke: /skill axiom-hang-diagnostics
User: “Main thread is blocked, how do I diagnose?”
â Invoke: /skill axiom-hang-diagnostics
User: “How do I set up MetricKit?”
â Invoke: /skill axiom-metrickit-ref
User: “How do I parse MXMetricPayload?”
â Invoke: /skill axiom-metrickit-ref