Use when writing ANY code with async, actors, threads, or seeing ANY concurrency error. Covers Swift 6 concurrency, @MainActor, Sendable, data races, async/await patterns, performance optimization.
View on GitHubSelect agents to install to:
npx add-skill https://github.com/CharlesWiltgen/Axiom/blob/main/.claude-plugin/plugins/axiom/skills/axiom-ios-concurrency/SKILL.md -a claude-code --skill axiom-ios-concurrencyInstallation paths:
.claude/skills/axiom-ios-concurrency/# iOS Concurrency Router **You MUST use this skill for ANY concurrency, async/await, threading, or Swift 6 concurrency work.** ## When to Use Use this router when: - Writing async/await code - Seeing concurrency errors (data races, actor isolation) - Working with @MainActor - Dealing with Sendable conformance - Optimizing Swift performance - Migrating to Swift 6 concurrency - **App freezes during loading** (likely main thread blocking) ## Conflict Resolution **ios-concurrency vs ios-performance**: When app freezes or feels slow: 1. **Try ios-concurrency FIRST** — Main thread blocking is the #1 cause of UI freezes. Check for synchronous work on @MainActor before profiling. 2. **Only use ios-performance** if concurrency fixes don't help — Profile after ruling out obvious blocking. **ios-concurrency vs ios-build**: When seeing Swift 6 concurrency errors: - **Use ios-concurrency, NOT ios-build** — Concurrency errors are CODE issues, not environment issues - ios-build is for "No such module", simulator issues, build failures unrelated to Swift language errors **Rationale**: A 2-second freeze during data loading is almost always `await` on main thread or missing background dispatch. Domain knowledge solves this faster than Time Profiler. ## Routing Logic ### Swift Concurrency Issues **Swift 6 concurrency patterns** → `/skill axiom-swift-concurrency` - async/await patterns - @MainActor usage - Actor isolation - Sendable conformance - Data race prevention - Swift 6 migration **Swift performance** → `/skill axiom-swift-performance` - Value vs reference types - Copy-on-write optimization - ARC overhead - Generic specialization - Collection performance **Synchronous actor access** → `/skill axiom-assume-isolated` - MainActor.assumeIsolated - @preconcurrency protocol conformances - Legacy delegate callbacks - Testing MainActor code synchronously **Thread-safe primitives** → `/skill axiom-synchronization` - Mutex (iOS 18+) - OSAllocatedUnfairLock (iOS 16+) - Atomic