# Swift Concurrency

> Swift concurrency: async/await, Actor, Task, Sendable patterns.

- Skill: `majiayu000/swift-concurrency-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/swift-concurrency-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/swift-concurrency-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/swift-concurrency-2

---


# Swift Structured Concurrency

Pattern catalog for Swift's structured concurrency model: async/await, Actors, TaskGroups, AsyncSequence, Sendable, and cancellation. Load the reference file matching the developer's question.

## Reference Loading Table

| Signal | Reference File | Content |
|--------|---------------|---------|
| async/await, Task, Sendable | references/fundamentals.md | async/await patterns, Task/Task.detached, Sendable/@Sendable |
| Actor, @MainActor, nonisolated | references/actor-isolation.md | Actor isolation, MainActor UI confinement, nonisolated opt-out |
| TaskGroup, AsyncSequence, AsyncStream, cancellation | references/task-patterns.md | Structured concurrency, rate-limited groups, streams, cancellation |
| Failure modes, common mistakes | references/preferred-patterns.md | Blocking MainActor, task leaking, actor reentrancy hazard |

## Key Conventions

- **Prefer structured concurrency** -- use `TaskGroup` over loose `Task { }` whenever possible; structured tasks propagate cancellation and errors automatically.
- **Mark types Sendable** -- enable strict concurrency checking (`-strict-concurrency=complete`) and resolve all warnings before they become errors in Swift 6.
- **Use actors for shared mutable state** -- avoid manual locks; actors provide compiler-verified safety.
- **Cancel what you create** -- every `Task` stored in a property should have a corresponding cancellation path.
- **Minimize @MainActor surface** -- isolate only the UI layer; keep business logic and networking off the main actor.

## References

- `references/fundamentals.md` -- async/await, Task, Sendable basics
- `references/actor-isolation.md` -- Actor, @MainActor, nonisolated
- `references/task-patterns.md` -- TaskGroup, AsyncSequence, AsyncStream, cancellation
- `references/preferred-patterns.md` -- blocking, leaking, reentrancy mistakes

