Swift concurrency
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/swift-concurrency
Standards for async/await, Actors, Task Groups, and MainActor. Use when implementing Swift async/await, Actors, or structured concurrency in iOS/macOS. (triggers: **/*.swift, async, await, actor, Task, MainActor)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill swift-concurrencyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.8 KB, 394 tokens by cl100k_base, as published. Nobody here has run it
Swift Concurrency
Priority: P0
Implementation Guidelines
async/await (Structured Concurrency)
- Async Functions: Mark with
asyncand call withawait. async let: Useasync letfor parallel execution when multiple tasks are independent.- Task Groups: Use
withTaskGrouporwithThrowingTaskGroupfor spawning a dynamic number of tasks. - Error Handling: Combine with
throws. Always handleCancellationError.
Actors (Thread Safety)
- Data Isolation: Use
actorfor shared mutable state to avoid data races. @MainActor: Annotate UI classes (Views, ViewModels) with@MainActorfor main thread execution. UseMainActor.run { ... }for inline UI updates in async blocks.- Global Actors: Use
@GlobalActorfor specific thread-bound resources. - nonisolated: Use
nonisolatedfor methods that don't access actor state to avoid unnecessary hops.
Task Management
- Task Hierarchy: Inherit isolation by using
Task { ... }. - Cancellation: Explicitly check
Task.isCancelledin long loops. Usetry Task.checkCancellation()for throwing functions. - Detached Tasks: Avoid
Task.detachedunless you explicitly want to break context inheritance.
Anti-Patterns
- No synchronous work in @MainActor: Do not block the main thread.
- No UI updates off @MainActor: Always dispatch back to main via
MainActor. - No ignored cancellation: Always check and propagate cancellation.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.