Diagnoses Swift concurrency issues by first checking your Package.swift or .pbxproj settings to understand your language mode and strict concurrency level, then provides targeted fixes for data races, actor isolation problems, and Sendable conformance errors. Handles the tricky stuff like converting callback-based code to async/await, resolving MainActor isolation boundaries, and Swift 6 migration paths. The quick fix mode works well for localized issues, but it also guides you through complex scenarios like Core Data concurrency warnings and SwiftLint async_without_await violations. Particularly good at preventing the common mistake of slapping @MainActor everywhere instead of properly reasoning about isolation boundaries.

skills.sh installs
17.5K
GitHub stars
1.7K
last updated
Aug 21, 2026

Install

$ npx -y skills add avdlee/swift-concurrency-agent-skill --skill swift-concurrency --agent claude-code

Installs into .claude/skills of the current project.

Files

Swift Concurrency

Fast Path

Before proposing a fix:

  1. Analyze Package.swift or .pbxproj to determine Swift language mode, strict concurrency level, default isolation, and upcoming features. Do this always, not only for migration work.
  2. Capture the exact diagnostic and offending symbol.
  3. Determine the isolation boundary: @MainActor, custom actor, actor instance isolation, or nonisolated.
  4. Confirm whether the code is UI-bound or intended to run off the main actor. When spawning unstructured tasks, inspect the synchronous prefix (everything before the first await): start on @MainActor only when that prefix truly needs main-actor access; otherwise use Task { @concurrent in ... } and hop back with MainActor.run only after the suspension. A trivial non-main line (for example, print) followed by main-actor work in the same prefix is not a reason to use @concurrent. For delayed retries, timers, and backoff tasks, separate the waiting from the UI mutation. The sleep often belongs off the main actor even when the final state update belongs on it.

Project settings that change concurrency behavior:

Sponsors

Details

Repository
github.com/avdlee/swift-concurrency-agent-skill
Categories
Documentation, Code Review & Quality, AI & Agent Building, Debugging, Mobile Development
1yuan1z0825 avatarnature-citationyuan1z0825/nature-skillsAdd strict Nature/CNS citations to manuscript text by splitting long passages into citable segments, searching only accepted flagship and subjournal titles from16.6Kskills.sh installs
2jackwener avataropencli-adapter-authorjackwener/opencliUse when writing an OpenCLI adapter for a new site or adding a new command to an existing site. Guides end-to-end from first recon through field decoding, adapt16.5Kskills.sh installs
3antfu avatarunocssantfu/skillsUnoCSS instant atomic CSS engine, superset of Tailwind CSS. Use when configuring UnoCSS, writing utility rules, shortcuts, or working with presets like Wind, Ic16.3Kskills.sh installs
4yuan1z0825 avatarnature-datayuan1z0825/nature-skillsPrepare, audit, or revise Nature-ready Data Availability statements, data repository plans, dataset citations, and FAIR metadata checklists for manuscripts. Use16.2Kskills.sh installs
5wshobson avatarsolidity-securitywshobson/agentsMaster smart contract security best practices to prevent common vulnerabilities and implement secure Solidity patterns. Use when writing smart contracts, auditi15.8Kskills.sh installs
6github avatarjavascript-typescript-jestgithub/awesome-copilotBest practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.14.5Kskills.sh installs