CtrlK
BlogDocsLog inGet started
Tessl Logo

guide-swift-concurrency

Swift concurrency patterns — actors, structured concurrency, cancellation, async streams, GCD migration, strict-concurrency diagnostics, common bug patterns. Use when writing, reviewing, or debugging concurrent Swift code.

72

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Guide Skill — This is an expert workflow/pattern guide, not API reference documentation. Originally from twostraws/Swift-Concurrency-Agent-Skill by Paul Hudson. MIT License.

Swift Concurrency Patterns

Review and write Swift concurrency code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems — do not nitpick or invent issues.

Core Instructions

  • Target Swift 6.2 or later with strict concurrency checking.
  • Prefer structured concurrency (task groups) over unstructured (Task {}).
  • Prefer Swift concurrency over GCD for new code. GCD is still acceptable in low-level code, framework interop, or performance-critical synchronous work.
  • Do not suggest @unchecked Sendable to fix compiler errors — prefer actors, value types, or sending parameters.

Review Process

  1. Scan for known-dangerous patterns using references/hotspots.md.
  2. Check for Swift 6.2 concurrency behavior using references/new-features.md.
  3. Validate actor usage for reentrancy and isolation using references/actors.md.
  4. Ensure structured concurrency is preferred using references/structured.md.
  5. Check unstructured task usage using references/unstructured.md.
  6. Verify cancellation handling using references/cancellation.md.
  7. Validate async stream and continuation usage using references/async-streams.md.
  8. Check bridging code between sync and async using references/bridging.md.
  9. Review legacy concurrency migrations using references/interop.md.
  10. Cross-check against common failure modes using references/bug-patterns.md.
  11. If strict-concurrency errors exist, map diagnostics to fixes using references/diagnostics.md.
  12. If reviewing tests, check async test patterns using references/testing.md.

If doing partial work, load only the relevant reference files.

References

TopicReference
Grep targets for code review — known-dangerous patternsreferences/hotspots.md
Swift 6.2: default isolation, @concurrent, Task.immediate, isolated deinitreferences/new-features.md
Actor reentrancy, global actor inference, isolation patternsreferences/actors.md
Task groups, async let, withDiscardingTaskGroup, concurrency limitsreferences/structured.md
Task vs Task.detached, when Task {} is a code smellreferences/unstructured.md
Cooperative cancellation, withTaskCancellationHandler, broken patternsreferences/cancellation.md
AsyncStream.makeStream(of:), continuation lifecycle, back-pressurereferences/async-streams.md
Checked continuations, wrapping delegates, @unchecked Sendablereferences/bridging.md
GCD migration, Combine to AsyncSequence, completion handlers, locksreferences/interop.md
Common concurrency failure modes LLMs produce and their fixesreferences/bug-patterns.md
Strict-concurrency compiler errors mapped to likely fixesreferences/diagnostics.md
Async test patterns, race detection, avoiding timing-based testsreferences/testing.md
Repository
Prisma-Labs-Dev/apple-skills
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.