Swift Concurrency Expert
Attribution: copied from @Dimillian’s Dimillian/Skills (2025-12-31).
Overview
Review and fix Swift Concurrency issues in Swift 6.2+ codebases by applying actor isolation, Sendable safety, and modern concurrency patterns with minimal behavior changes.
Workflow
1. Triage the issue
Capture the exact compiler diagnostics and the offending symbol(s).
Identify the current actor context (
@MainActor,actor,nonisolated) and whether a default actor isolation mode is enabled.Confirm whether the code is UI-bound or intended to run off the main actor.
2. Apply the smallest safe fix
Prefer edits that preserve existing behavior while satisfying data-race safety.
Common fixes:
UI-bound types: annotate the type or relevant members with
@MainActor.Protocol conformance on main actor types: make the conformance isolated (e.g.,
extension Foo: @MainActor SomeProtocol).Global/static state: protect with
@MainActoror move into an actor.Background work: move expensive work into a
@concurrentasync function on anonisolatedtype or use anactorto guard mutable state.Sendable errors: prefer immutable/value types; add
Sendableconformance only when correct; avoid@unchecked Sendableunless you can prove thread safety.
Reference material
See
references/swift-6-2-concurrency.mdfor Swift 6.2 changes, patterns, and examples.See
references/swiftui-concurrency-tour-wwdc.mdfor SwiftUI-specific concurrency guidance.