Skip to content
Development
Skill

/swift-language

Comprehensive modern Swift (6.x) language expertise — concurrency, generics, ownership/performance, macros, API design, error handling, SwiftPM, C/C++/ObjC interop, cross-platform (Linux/Android/embedded/server), and Swift Testing. Use this skill whenever writing, reviewing,

From plugin
swift-tothemax
78 skills

Claude Code

$ npx -y skills add Dev869/swift-tothemax --skill swift-language --agent claude-code

SKILL.md

swift-language.SKILL.md
name: swift-language
description: Comprehensive modern Swift (6.x) language expertise — concurrency, generics, ownership/performance, macros, API design, error handling, SwiftPM, C/C++/ObjC interop, cross-platform (Linux/Android/embedded/server), and Swift Testing. Use this skill whenever writing, reviewing, refactoring, or debugging ANY Swift code — even a single function — and whenever the user mentions Swift, .swift files, Xcode projects, Swift packages, actors, Sendable, swiftc, or compiler errors from a Swift build. Also use it when choosing between Swift language features or migrating code to a newer Swift version. Not needed for pure SwiftUI layout questions (a dedicated SwiftUI skill may fit better), but DO use it when SwiftUI code involves concurrency, performance, or general language questions.

Swift to the Max

Expert-level guidance for modern Swift. The goal: code that a senior Swift engineer in 2026 would write — strict-concurrency-clean, value-semantic by default, expressive at the type level, and honest about performance.

Version landscape (mid-2026)

| Version | Status | Headline features | |---|---|---| | Swift 5.10 | legacy | last 5.x; complete strict-concurrency checking under `-strict-concurrency=complete` | | Swift 6.0 | 2024 | Swift 6 language mode (data-race safety by default), typed throws, `count(where:)`, 128-bit ints | | Swift 6.1 | 2025 | trailing commas everywhere, `nonisolated` on types/extensions, package traits | | Swift 6.2 | 2025 | **approachable concurrency**: default MainActor isolation (opt-in), `nonisolated(nonsending)` / `@concurrent`, `InlineArray`, `Span`/`MutableSpan`, opt-in strict memory safety, `Observations`, backtraces on crash | | Swift 6.3 | Mar 2026, **current stable** | `@c` attribute (expose Swift to C), official **Android SDK**, Swift Build preview in SwiftPM, `@specialized` / `@inline(always)`, module selector syntax (`ModuleName::Type`), completed Embedded Swift feature set | | Swift 6.4 | WWDC26 beta | `await` in `defer`, `Iterable` protocol (borrowing iteration), `anyAppleOS` availability shorthand, `@diagnose`, Swift Testing ↔ XCTest interop, unified URL implementation |

Default to Swift 6 language mode semantics unless the project's `Package.swift` / build settings say otherwise. Check `// swift-tools-version:` and `swiftLanguageModes:` before assuming. Never emit code using a beta-only (6.4) feature without flagging it as such.

Non-negotiable defaults

These apply to essentially all new Swift code; deviate only when the surrounding codebase clearly does otherwise, and say so.

  • **Value types first.** `struct`/`enum` unless you need identity, inheritance, or reference semantics. If you reach for `class`, ask whether it should be an `actor` or `final class`.
  • **Strict concurrency clean.** No `@unchecked Sendable` without a written justification (a lock or immutability argument). No `DispatchQueue` in new code — use actors, `Task`, `TaskGroup`, `AsyncSequence`, `Mutex` (Synchronization module, 6.0+).
  • **`some` before `any`.** Existentials (`any P`) cost dynamic dispatch and boxing; opaque types (`some P`) keep static dispatch. Use `any` only when you genuinely need heterogeneity.
  • **Exhaustive `switch` over `if`-chains** for enums; avoid `default:` when you can enumerate cases — it silences the compiler when new cases appear.
  • **No force unwraps / force try in production paths.** `!` is acceptable only for programmer-error invariants, and then prefer `guard let ... else { preconditionFailure("why") }` so the invariant is documented.
  • **Typed throws (`throws(MyError)`) for closed error domains** (libraries, embedded); plain `throws` for application-level composition.
  • **`guard` for early exit, one happy path** at low indentation.
  • **API names follow the Swift API Design Guidelines** — fluent at the call site, omit needless words (details in `references/api-design-and-errors.md`).

Idiom translation table

When reviewing or migrating, rewrite the left column on sight:

| Legacy | Modern | |---|---| | `DispatchQueue.global().async { ... }` | `Task { ... }` / `Task.detached` (rare) / `@concurrent` func | | `DispatchQueue.main.async { ... }` | `@MainActor` function or `MainActor.run` | | completion handlers `(Result<T, Error>) -> Void` | `async throws -> T` (bridge with `withCheckedThrowingContinuation`) | | `NSLock` / `os_unfair_lock` | `Mutex<State>` (Synchronization) or an `actor` | | `class Foo: NSObject` + KVO | `@Observable` (Observation framework) | | `Array` fixed-size hot buffers | `InlineArray<N, T>` (6.2+) | | `UnsafeBufferPointer` parameters | `Span<T>` / `RawSpan` (6.2+) | | `NotificationCenter` + selectors | `AsyncSequence` (`notifications(named:)`) or `Observations` | | stringly-typed keys | nested enums / `RawRepresentable` structs | | `#if os(iOS) \|\| os(macOS) \|\| ...` across all Apple OSes | `anyAppleOS` (6.4+, flag as beta) |

Workflow

1. **Detect the project's Swift version and language mode** first (`Package.swift`, `.xcodeproj` settings, `swift --version`). Guidance shifts meaningfully between 5.x, 6.0/6.1, and 6.2+ (default MainActor isolation may be on). 2. **Load the relevant reference file(s)** below — they carry the depth; this file only carries defaults. 3. **Compile what you write** when a toolchain is available (`swift build`, `swiftc -typecheck`, or `xcodebuild`). Swift's type checker is the cheapest reviewer you have. For snippets, wrap in a scratch package or `swiftc -typecheck` a single file. 4. **Run the review checklist** (bottom of this file) before declaring code done.

Reference routing

Read the file whose domain the task touches. Multiple may apply; read all that do.

| Topic | File | Read when… | |---|---|---| | Concurrency | `references/concurrency.md` | actors, async/await, Sendable errors, isolation, tasks, streams, migration to Swift 6 mode, 6.2 approachable-concurrency changes | | Types & generics | `references/types-and-generics.md` | protocols, `so

Read more
@dev869
Ships withswift-tothemax

A Claude Code plugin covering every facet of Swift and Apple-platform development, current to mid-2026 (Swift 6.3 stable / 6.4 beta, Xcode 26.6, iOS 27 beta).

Stars on GitHub

Momentum

stars in total
7
Star history of Dev869/swift-tothemax on GitHub, a chart by star-history.com

Other skills on swift-tothemax.

app-review-max

app-review-max

Pass Apple App Review the first time and recover fast when rejected. USE THIS SKILL whenever the user is submitting to the App…

apple-dev-conductor

apple-dev-conductor

Orchestrator for the swift-tothemax plugin — routes any Apple-platform development task (building an iOS/macOS app, adding a…

apple-hig-ux

apple-hig-ux

Apple-platform design and UX judgment — what a good iOS/iPadOS/macOS/watchOS/visionOS app FEELS like. Use whenever designing app…

apple-legal-max

apple-legal-max

Legal and privacy compliance for Apple-platform apps (iOS/iPadOS/macOS/watchOS/tvOS/visionOS). Use this skill WHENEVER a task…

apple-release-ops

apple-release-ops

The mechanics of shipping Apple apps. Use for ANY code signing error ("no signing certificate", "provisioning profile doesn't…

swiftui-max

swiftui-max

Expert SwiftUI guidance for building UI on iOS, iPadOS, macOS, watchOS, tvOS, and visionOS. Use whenever writing, reviewing,…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about swift-language.

Which coding agents can use swift-language?
swift-language installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.