Loading...
Loading...
Use when writing ANY async code, actors, threads, or seeing ANY concurrency error. Covers Swift 6 concurrency, @MainActor, Sendable, data races, async/await patterns.
npx skill4agent add charleswiltgen/axiom axiom-concurrency| Symptom / Task | Reference |
|---|---|
| async/await patterns, @MainActor, actors | See |
| Data race errors, Sendable conformance | See |
| Swift 6 migration, @concurrent attribute | See |
| Actor definition, reentrancy, global actors | See |
| Task/TaskGroup/cancellation API | See |
| AsyncStream, continuations | See |
| DispatchQueue → actor migration | See |
| Mutex (iOS 18+), OSAllocatedUnfairLock | See |
| Atomic types, lock vs actor decision | See |
| MainActor.assumeIsolated | See |
| @preconcurrency protocol conformances | See |
| Legacy delegate callbacks | See |
| Swift Concurrency Instruments template | See |
| Actor contention diagnosis | See |
| Thread pool exhaustion | See |
digraph concurrency {
start [label="Concurrency task" shape=ellipse];
what [label="What do you need?" shape=diamond];
start -> what;
what -> "skills/swift-concurrency.md" [label="async/await, actors,\nSendable, data races,\nSwift 6 migration"];
what -> "skills/swift-concurrency-ref.md" [label="API syntax lookup\n(TaskGroup, AsyncStream,\ncontinuations, migration)"];
what -> "skills/synchronization.md" [label="Mutex, locks,\natomic types"];
what -> "skills/assume-isolated.md" [label="assumeIsolated,\n@preconcurrency"];
what -> "skills/concurrency-profiling.md" [label="profile async perf,\nactor contention"];
}skills/swift-concurrency.mdskills/swift-concurrency-ref.mdskills/swift-concurrency.mdskills/assume-isolated.mdskills/synchronization.mdskills/concurrency-profiling.mdskills/swift-concurrency.mdskills/swift-concurrency-ref.mdskills/synchronization.mdskills/concurrency-profiling.mdconcurrency-auditor/axiom:audit concurrency| Thought | Reality |
|---|---|
| "Just add @MainActor and it'll work" | @MainActor has isolation inheritance rules. |
| "I'll use nonisolated(unsafe) to silence the warning" | Silencing warnings hides data races. |
| "It's just one async call" | Even single async calls have cancellation and isolation implications. |
| "I know how actors work" | Actor reentrancy and isolation rules changed in Swift 6.2. |
| "I'll fix the Sendable warnings later" | Sendable violations cause runtime crashes. Fix them now. |
| "Combine is dead, just use async/await" | Combine has no deprecation notice. Rewriting working pipelines wastes time. See See axiom-uikit (skills/combine-patterns.md). |
| "I'll use @unchecked Sendable to silence this" | You're hiding a data race from the compiler. It will crash in production. |
| "This async function runs on a background thread" | |
skills/swift-concurrency.mdskills/swift-concurrency.mdskills/swift-concurrency-ref.mdskills/swift-concurrency-ref.mdskills/assume-isolated.mdskills/synchronization.mdskills/concurrency-profiling.mdconcurrency-auditor