Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
rshankras avatar

Concurrency Patterns

  • 3 installs
  • 591 repo stars
  • Updated July 24, 2026
  • rshankras/claude-code-apple-skills

Provides Swift concurrency patterns for async/await, structured concurrency, actors, and Swift 6.2 features to prevent data races and migrate to Swift 6.

About

Guides Swift concurrency work including actors, Sendable, TaskGroup, and Swift 6.2 approachable-concurrency features while avoiding data-race pitfalls. A developer uses it to review or build async code, fix actor-isolation errors, or migrate to Swift 6.

  • Covers async/await, actors, Sendable, and Swift 6 strict concurrency migration
  • Bridges completion-handler APIs and addresses reentrancy/cancellation bugs

Concurrency Patterns by the numbers

  • 3 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #458 of 596 Debugging skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/rshankras/claude-code-apple-skills --skill concurrency-patterns

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3
repo stars591
Last updatedJuly 24, 2026
Repositoryrshankras/claude-code-apple-skills

What it does

Provides Swift concurrency patterns for async/await, structured concurrency, actors, and Swift 6.2 features to prevent data races and migrate to Swift 6.

Files

SKILL.mdMarkdownGitHub ↗

Swift Concurrency Patterns

Comprehensive guide for Swift concurrency covering async/await, structured concurrency, actors, and the Swift 6.2 "Approachable Concurrency" features. Focuses on patterns that prevent data races and common mistakes that cause crashes.

When This Skill Activates

  • User has data race errors or actor isolation compiler errors
  • User is migrating to Swift 6 strict concurrency
  • User asks about async/await, actors, Sendable, TaskGroup, or MainActor
  • User needs to bridge legacy completion-handler APIs to async/await
  • User is working with Swift 6.2 features (@concurrent, isolated conformances)
  • User has concurrency bugs (actor reentrancy, task cancellation, UI freezes)

Decision Tree

What concurrency problem are you solving?
│
├─ Swift 6 compiler errors / migration
│  └─ migration-guide.md
│
├─ Swift 6.2 new features (@concurrent, isolated conformances)
│  └─ swift62-concurrency.md
│
├─ Running work in parallel (async let, TaskGroup)
│  └─ structured-concurrency.md
│
├─ Thread safety for shared mutable state
│  └─ actors-and-isolation.md
│
├─ Bridging old APIs (delegates, callbacks) to async/await
│  └─ continuations-bridging.md
│
└─ General async/await patterns
   └─ See macos/coding-best-practices/modern-concurrency.md for basics

Quick Reference

PatternWhen to UseReference
async letFixed number of parallel operationsstructured-concurrency.md
withTaskGroupDynamic number of parallel operationsstructured-concurrency.md
withDiscardingTaskGroupFire-and-forget parallel operationsstructured-concurrency.md
.task { } modifierLoad data when view appearsstructured-concurrency.md
.task(id:) modifierRe-load when a value changesstructured-concurrency.md
actorShared mutable state protectionactors-and-isolation.md
@MainActorUI-bound state and updatesactors-and-isolation.md
@concurrentExplicitly offload to background (6.2)swift62-concurrency.md
Isolated conformances@MainActor type conforming to protocol (6.2)swift62-concurrency.md
withCheckedContinuationBridge callback API to asynccontinuations-bridging.md
AsyncStreamBridge delegate/notification API to async sequencecontinuations-bridging.md
Strict concurrency migrationIncremental Swift 6 adoptionmigration-guide.md

Process

1. Identify the Problem

Read the user's code or error messages to determine:

  • Is this a compiler error (strict concurrency) or a runtime issue (data race, crash)?
  • What Swift version and concurrency checking level are they using?
  • Are they migrating existing code or writing new code?

2. Load Relevant Reference Files

Based on the problem, read from this directory:

  • swift62-concurrency.md — Swift 6.2 approachable concurrency features
  • structured-concurrency.md — async let, TaskGroup, .task modifier lifecycle
  • actors-and-isolation.md — Actor patterns, reentrancy, @MainActor, Sendable
  • continuations-bridging.md — withCheckedContinuation, AsyncStream, legacy bridging
  • migration-guide.md — Incremental Swift 6 strict concurrency adoption

3. Review Checklist

  • [ ] No blocking calls on @MainActor (use await for long operations)
  • [ ] Shared mutable state protected by an actor (not locks or DispatchQueue)
  • [ ] Sendable conformance correct for types crossing isolation boundaries
  • [ ] Task cancellation handled (check Task.isCancelled or Task.checkCancellation())
  • [ ] No unstructured Task {} where structured concurrency (.task, TaskGroup) would work
  • [ ] Actor reentrancy considered at suspension points
  • [ ] withCheckedContinuation called exactly once (not zero, not twice)
  • [ ] .task(id:) used instead of manual onChange + cancel patterns

4. Cross-Reference

  • For async/await basics and actor fundamentals, see macos/coding-best-practices/modern-concurrency.md
  • For networking concurrency patterns, see generators/networking-layer/networking-patterns.md
  • For SwiftData concurrency (@ModelActor), see macos/swiftdata-architecture/repository-pattern.md
  • For auth token refresh with actors, see generators/auth-flow/auth-patterns.md

References

Related skills

Debuggingbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.