Swift 6 turned data races into compile errors. Swift 6.2 then changed what the compiler assumes before it starts checking — and that is the part that catches agents out. Ask a model to clear an actor-isolation error from its own general knowledge and you get one of two failures: Swift 5 reflexes (DispatchQueue.main.async, a lock, an @unchecked Sendable slapped on to make the message disappear), or advice that was correct under 6.0 and is now wrong, because async functions no longer hop off the calling actor by default.
The thing worth knowing before you install any Swift concurrency skill: the good ones don't open with patterns. They open with an instruction to go read the project's build settings. And affaan-m's swift-concurrency-6-2 is blunt enough to put that dependency on its own sample code — the example is safe with approachable concurrency turned on and a genuine data race without it. Same code, two build flags, opposite verdicts.
Top picks
| skill | publisher | license | verdict | updated |
|---|---|---|---|---|
| swift-concurrency | AvdLee | MIT | Install first | 2026-05-28 |
| swift-concurrency-6-2 | affaan-m | MIT | Clearest account of the 6.2 model | 2026-07-27 |
| swift-concurrency-6-2 | xu-xiang | MIT | Redundant if you have the above | 2026-03-05 |
| concurrency-patterns | rshankras | MIT | Take it with its sibling | 2026-07-24 |
| swift-concurrency-updates | rshankras | MIT | The 6.2 half of that pair | 2026-07-24 |
| modern-swift | johnrogers | MIT | Failure list, not a migration guide | 2026-01-18 |
| swift-code-review | existential-birds | Apache-2.0 | Review side | 2026-07-21 |
AvdLee's swift-concurrency: the one that refuses to guess
AvdLee's swift-concurrency opens by making the agent read Package.swift or the .pbxproj to establish language mode, strict-concurrency level, default isolation and upcoming features — always, not only during a migration — and it warns that the swift-tools-version comment is not a reliable proxy for the language mode. It carries a settings table mapping the SwiftPM API to the matching Xcode build-setting keys, and a diagnostic table pairing each compiler message with a first check and a smallest safe fix. If the settings are unknown, it tells the agent to stop and ask.
The escape hatches are gated rather than banned: @preconcurrency, @unchecked Sendable and nonisolated(unsafe) each require a documented safety invariant and a removal plan. Two limits. Depth lives in fourteen references/*.md files, so vendoring the single top file gets you the triage tables and not much else. And the footer points at the author's concurrency course, though the instructions do tell the agent to use those links sparingly.
affaan-m's swift-concurrency-6-2: the clearest account of what 6.2 changed
affaan-m's swift-concurrency-6-2 teaches the new model through before/after pairs: the same StickerModel that fails under 6.1 and compiles under 6.2, isolated conformances written as extension Type: @MainActor Protocol, static shared singletons that need main-actor protection, and a four-step recipe for @concurrent — mark the type nonisolated, add the attribute, make it async, await at the call sites. Its best moment is a warning it puts on its own example: without SE-0466 and SE-0461 enabled, that code has a data race.
The caveat is what it doesn't do. Its migration steps tell you where those settings live and its examples name the ones they depend on, but nothing in it reads the project's current settings before advising — so an agent holding only this will cheerfully apply 6.2 idioms to a project that has none of them switched on. Pair it with something that checks first.
rshankras's concurrency-patterns: install the pair, not the half
rshankras's concurrency-patterns is a router. A decision tree sends the agent from a symptom — compiler error, hang, bridging a delegate — to one reference file, and the review checklist is sharper than most: shared state behind an actor rather than a queue, reentrancy considered at every suspension point, and withCheckedContinuation called exactly once, not zero times and not twice. Its sibling swift-concurrency-updates covers only the 6.2 deltas and says so, pointing back to the general patterns for everything else.
Both bodies declare their own shelf life in frontmatter — a last_verified date of 2026-07-16, a review_by date, an os_version line — which is rare and worth rewarding. The catch: they cross-reference sibling directories elsewhere in the repository, so the pair expects the whole set, not two files.
johnrogers's modern-swift: a short list of the bugs you can't see
johnrogers's modern-swift is mistakes-first and mercifully brief. The entry that earns the install is actor reentrancy: an await inside an actor method gives up isolation, another task can mutate state across that suspension point, and the instruction is to design the method assuming state changed while it waited. It also separates checking Task.isCancelled from calling Task.checkCancellation() — a distinction that quietly decides whether cancellation does anything at all.
The trade-off is coverage. The top-level file is thin on the 6.2 specifics its title implies, and it leans hard on reference files it tells the agent to load whenever there is even a small chance they matter. Use it as a list of failure modes, not as a migration plan.
existential-birds' swift-code-review: catch it at review time
Authoring skills fix the code in front of them; existential-birds' swift-code-review is built to fail a review before it emits anything. Its gates run in sequence and each carries a stated pass condition: name the concrete Swift language version or mode before giving any version-gated advice, read the full enclosing type or member rather than the diff hunk, and declare which checklist areas were applied or why they are not applicable. Findings come out as [FILE:LINE] with a severity, which makes them arguable.
Its checklist lines are opinions, not platitudes — actors must have mutable state to protect, @unchecked Sendable must be backed by real synchronisation. One dependency: the verification gates live in a separate review-protocol skill in the same repository, and without it you lose the pre-report check.
Which Swift concurrency skill should you install first?
AvdLee's, and it isn't close. The first mistake an agent makes on Swift concurrency is not a wrong pattern — it's a wrong assumption about the project, and every downstream fix inherits it. A skill that forces the build-settings read before the diagnosis turns the whole class of "correct advice, wrong compiler mode" errors into a question the agent asks you instead of a change it makes.
Add affaan-m's next if the project is heading to 6.2, because that document explains the new defaults better than any diagnostic table does. Take rshankras's pair if you want a routed reference library rather than a single file. Add johnrogers' for the reentrancy and cancellation traps. Put existential-birds' on the review side, where a second opinion costs nothing.
The name on a skill is only its topic
Skills are community-published and their names are not namespaced, so one name routinely covers different documents — and sometimes the very same document. A skill called swift-concurrency-6-2 can be affaan-m's English text or xu-xiang's, which is that document rendered into Chinese: same section order, same StickerModel example, same design-decisions table, translated. Neither is a fake. But install both expecting a second opinion and you have installed one opinion twice.
The tell is in the body, and occasionally it is stated outright — a companion skill in the same repository, swift-actor-persistence, names its origin in its own frontmatter. Names aren't stable inside a single repository either: rshankras's 6.2 skill is filed under one name and declares a different one in its frontmatter.
So run two checks before you vendor anything. First, read the opening screen of the body and confirm it gives instructions rather than exposition. mosif16's Swift 6 report is a genuinely interesting analysis of ownership, noncopyable types and region-based isolation — and it has an executive summary, numbered sections, footnote markers and a closing table of sources. Handed to an agent, that is prose to summarise, not a procedure to follow. Second, check the licence: that same document ships without one, which is its own reason to think twice.
What to hand your agent
The failure this closes off is an agent that confidently applies the wrong era of Swift concurrency to your project — Swift 5 reflexes, or 6.0-correct advice under a 6.2 compiler — and then reaches for @unchecked Sendable when the compiler objects. What shuts it down is not a larger pattern library. It is the ordering: the project's language mode, strict-concurrency level and default isolation get established before anything is proposed, and every escape hatch costs a written invariant and a removal plan.
Install the first two and your agent stops guessing which Swift it is writing. That is most of the problem.
More skills worth a look
Swift Development provides language-level guidance for writing correct, performant Swift across iOS, macOS, and other Apple platforms. It covers concurrency architecture with async/await and actors, Swift 6 strict concurrency migration, memory optimization through InlineArray and Span, and code complexity standards via SwiftLint thresholds. Use it to review code for data races, actor isolation, and modern idioms.
Swift LanguageSwift Language covers contemporary syntax and idioms for core Swift development, excluding concurrency and SwiftUI. Learn if/switch expressions, typed throws, result builders, property wrappers, opaque versus existential types, guard patterns, the Never type, regex builders, Codable techniques, modern collection methods, FormatStyle basics, and string interpolation. Routes specialized topics like deep decoding, formatting, API naming, concurrency, and SwiftUI state to dedicated skills.
Swift TestingMaster Swift Testing, the modern framework for Swift unit tests in Xcode 16+. Learn to write tests with @Test and @Suite, use #expect and #require for assertions, organize tests with traits, handle async patterns, and migrate from XCTest. This skill covers test attachments, exit testing, known issues, and version-gated APIs to help you build reliable test suites.
urlsession-code-reviewThis skill audits URLSession implementations across iOS and macOS projects, checking async/await adoption, proper HTTP status validation, memory lifecycle management, and secure request construction. It validates response handling, resource cleanup, session configuration, and background transfer patterns against a structured checklist. Use it when reviewing code that touches URLSession, URLRequest, URLCache, or URLError APIs.
axiom-swiftuiaxiom-swiftui is your reference for any SwiftUI development task—from building adaptive layouts and fixing navigation state to optimizing performance and implementing custom gestures. It routes you to specialized guides for views, animations, architecture, previews, and debugging, plus cross-references to UIKit bridging, design systems, and app-level composition when needed.
Swiftui PatternsSwiftUI Patterns teaches you how to structure macOS applications using SwiftUI's native scene and view system. Learn when to use WindowGroup, Settings, MenuBarExtra, and other scene models; how to organize files and state ownership; and which system affordances—commands, toolbars, sidebars, inspectors—work best for desktop interactions. The skill covers everything from new app scaffolding to refactoring existing projects with proper file structure and adaptive design.
axiom-testingAxiom Testing guides you through writing and debugging tests across all iOS scenarios—from unit tests with Swift Testing to UI automation with XCUITest. Navigate async testing patterns, flaky test fixes, and test architecture decisions with clear decision trees and critical patterns for each testing domain.
swift-rulesSwift Rules provides comprehensive coding standards for Swift development, covering style conventions, naming patterns, type system best practices, and framework guidance. The skill applies standards for SwiftUI, Combine, async/await, and Core Data to ensure consistency across your codebase. Use it when writing or reviewing Swift code to maintain quality and follow established patterns.
memoryLearn Swift 6.2's low-level memory types designed for performance-critical code: InlineArray for fixed-size inline storage without heap allocation, and Span for safe, zero-cost access to contiguous memory. These compiler-checked alternatives replace common uses of UnsafeBufferPointer and hand-tuned tuple storage, helping you eliminate allocations in hot paths while maintaining memory safety.
watchos-code-reviewThis skill audits watchOS applications against framework-specific patterns for app lifecycle management, scene handling, and delegate setup. It checks complications using WidgetKit or ClockKit, WatchConnectivity message passing and file transfers, and enforces memory and battery constraints for background execution.
ios-testing-patternsiOS Testing Patterns provides structured workflows for running unit and UI tests on simulators, analyzing results, and identifying intermittent failures. It covers test filtering, parallel execution across multiple devices, and strategies for isolating and debugging unreliable tests.
Swift CodableSwift Codable teaches you to serialize and deserialize Swift types to and from JSON using the standard Codable protocol. Learn automatic synthesis, custom key mapping, nested container navigation, date and data strategies, and integration patterns with URLSession, SwiftData, and UserDefaults.
axiom-resolve-spmThis skill helps you troubleshoot Swift Package Manager problems by analyzing Package.swift and Package.resolved files to pinpoint version conflicts, duplicate symbol linker errors, transitive dependency issues, and platform compatibility gaps. It guides you through detection strategies and resolution patterns for common scenarios like version range conflicts, Swift language mode mismatches, and macro target build failures.