mcpField
S
swift-concurrency-expert

swift-concurrency-expert

github.com/steipeteDevelopment7.4k166 installsUpdated 1d ago
Repository

About swift-concurrency-expert

A skill for reviewing and fixing Swift Concurrency issues in Swift 6.2+ code, with a focus on actor isolation, Sendable safety, and minimal behavior changes. It is intended for developers addressing compiler diagnostics or data-race risks.

Key features

  1. 01Triage compiler diagnostics
  2. 02Check actor isolation context
  3. 03Apply minimal concurrency fixes
  4. 04Guide Sendable-safe design
  5. 05Handle background work safely

Use cases

  1. 01Resolve Swift 6.2 concurrency errors
  2. 02Isolate UI-bound types on MainActor
  3. 03Protect shared global state
  4. 04Move expensive work off the main actor

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/steipete/agent-scripts --skill swift-concurrency-expert

After installing, type/swift-concurrency-expertin Claude Code to confirm it loaded.

Bundled filesreferences/swift-6-2-concurrency.mdreferences/swiftui-concurrency-tour-wwdc.md

Details

From the project README

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 @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/swiftui-concurrency-tour-wwdc.md for SwiftUI-specific concurrency guidance.

Comments

Markdown supported