What problem does it solve?
This Skill solves common Swift concurrency pain points including data race crashes, actor isolation compiler errors, and the complexity of migrating legacy code to Swift 6 strict concurrency, eliminating hours of debugging and trial-and-error.
Core Features & Use Cases
- Swift 6 Migration Guidance: Step-by-step incremental adoption path from minimal to complete strict concurrency checking, with fixes for common migration issues like global variables, non-Sendable closures, and protocol conformance errors.
- Structured Concurrency Patterns: Best practices for async let, TaskGroup, .task modifiers, and task cancellation to replace error-prone unstructured Task {} usage.
- Actor Isolation & Sendable Rules: Patterns for protecting shared mutable state with actors, avoiding reentrancy bugs, and correctly implementing Sendable conformance for types crossing isolation boundaries.
- Legacy API Bridging: Patterns for wrapping callback, delegate, and notification-based APIs into async/await using continuations and AsyncStream.
- Swift 6.2 Approachable Concurrency: Guidance for using @concurrent, isolated conformances, and infer main actor by default to reduce concurrency boilerplate.
- Use Case: A developer working on a native macOS music player like Bòcan can use this Skill to fix data race errors in the audio playback DSP chain, migrate the library indexing code to Swift 6, and bridge legacy FFmpeg callback APIs to async/await.
Quick Start
Use the concurrency-patterns skill to resolve the strict concurrency compiler errors in your Swift 6 music player project and refactor the legacy audio session callback APIs to modern async/await.