Dotfiles swift-concurrency-expert

Swift Concurrency review and remediation for Swift 6.2+. Use when asked to review Swift Concurrency usage, improve concurrency compliance, or fix Swift concurrency compiler errors in a feature or file.

install
source · Clone the upstream repo
git clone https://github.com/harperreed/dotfiles
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/harperreed/dotfiles "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/swift-concurrency-expert" ~/.claude/skills/harperreed-dotfiles-swift-concurrency-expert && rm -rf "$T"
manifest: .claude/skills/swift-concurrency-expert/SKILL.md
source content

Swift Concurrency Expert

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).
  • Check project concurrency settings: Swift language version (6.2+), strict concurrency level, and whether approachable concurrency (default actor isolation / main-actor-by-default) is enabled.
  • 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
    @MainActor
    or move into an actor.
  • Background work: move expensive work into a
    @concurrent
    async function on a
    nonisolated
    type or use an
    actor
    to guard mutable state.
  • Sendable errors: prefer immutable/value types; add
    Sendable
    conformance only when correct; avoid
    @unchecked Sendable
    unless you can prove thread safety.

Reference material

  • See
    references/swift-6-2-concurrency.md
    for Swift 6.2 changes, patterns, and examples.
  • See
    references/approachable-concurrency.md
    when the project is opted into approachable concurrency mode.
  • See
    references/swiftui-concurrency-tour-wwdc.md
    for SwiftUI-specific concurrency guidance.