skills/swift-lang/SKILL.md
Master advanced Swift language features: macros, concurrency, generics, networking, testing. Use when working with Swift macros, async/await patterns, protocol design, or optimizing for performance. See swift-ui for SwiftUI-specific patterns.
npx skillsauth add mpazaryna/agentic-factory swift-langInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Advanced Swift language features for building robust, performant code.
This skill covers Swift language internals - the deep features that make you a better Swift developer. For SwiftUI implementation patterns, see swift-ui.
Based on what you're building, load the appropriate reference:
When: Creating compile-time code generation, reducing boilerplate, building DSLs References:
references/macros/freestanding.md - ExpressionMacro, DeclarationMacroreferences/macros/attached.md - PeerMacro, AccessorMacro, MemberMacro, ExtensionMacro, BodyMacroMacro Types Overview: | Type | Category | Purpose | |------|----------|---------| | ExpressionMacro | Freestanding | Return an expression (like a global function) | | DeclarationMacro | Freestanding | Declare variables, structs, functions | | PeerMacro | Attached | Add sibling declarations | | AccessorMacro | Attached | Add get/set to properties | | MemberMacro | Attached | Add members to types | | MemberAttributeMacro | Attached | Add attributes to members | | ExtensionMacro | Attached | Add protocol conformance | | BodyMacro | Attached | Replace function body |
When: async/await patterns, actor isolation, Sendable conformance, data race prevention References:
references/concurrency/async-await.md - Structured concurrency patternsreferences/concurrency/actors.md - Actor isolation, @MainActorreferences/concurrency/sendable.md - Sendable conformance, crossing isolation boundariesWhen: Writing tests with Swift Testing framework, test strategies References:
references/testing/swift-testing.md - @Test, #expect, traits, parameterized testsreferences/testing/strategies.md - What to test, dependency injection for testingWhen: Protocol design, associated types, existentials, type erasure References:
references/generics/protocols.md - Associated types, primary associated typesreferences/generics/existentials.md - any vs some, type erasure patternsWhen: Memory management, performance profiling, reducing allocations References:
references/optimization/memory.md - ARC, weak/unowned, copy-on-writereferences/optimization/performance.md - Instruments, allocation patternsWhen: Building custom DSLs, understanding @ViewBuilder internals References:
references/result-builders/custom-dsl.md - Building your own @resultBuilderWhen: Making HTTP requests, API clients, async data fetching References:
references/networking/async-networking.md - URLSession with async/await, API client patternsKey Patterns:
async let// Package.swift for macro development
// swift-tools-version: 5.9
import PackageDescription
import CompilerPluginSupport
let package = Package(
name: "MyMacros",
platforms: [.macOS(.v10_15), .iOS(.v13)],
products: [
.library(name: "MyMacros", targets: ["MyMacros"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-syntax.git", from: "509.0.0"),
],
targets: [
.macro(
name: "MyMacrosMacros",
dependencies: [
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
]
),
.target(name: "MyMacros", dependencies: ["MyMacrosMacros"]),
]
)
// Structured concurrency
func fetchData() async throws -> Data {
try await withThrowingTaskGroup(of: Data.self) { group in
// Add tasks to group
}
}
// Actor isolation
@MainActor
class ViewModel: ObservableObject {
@Published var items: [Item] = []
}
// Sendable conformance
struct Config: Sendable {
let apiKey: String
}
import Testing
@Test("User authentication succeeds with valid credentials")
func validLogin() async throws {
let auth = AuthService()
let result = try await auth.login(user: "test", pass: "valid")
#expect(result.isAuthenticated)
}
@Test(arguments: ["", "ab", "toolong123"])
func invalidUsername(_ username: String) {
#expect(!Validator.isValidUsername(username))
}
nonisolated(unsafe) without understanding implicationsdevelopment
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), feature flags (Flagship), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
tools
Send and receive transactional emails with Cloudflare Email Service (Email Sending + Email Routing). Use when building email sending (Workers binding or REST API), email routing, Agents SDK email handling, or integrating email into any app — Workers, Node.js, Python, Go, etc. Also use for email deliverability, SPF/DKIM/DMARC, wrangler email setup, MCP email tools, or when a coding agent needs to send emails. Even for simple requests like "add email to my Worker" — this skill has critical config details.
tools
Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, chat applications, voice agents, or browser automation. Covers Agent class, state management, callable RPC, Workflows, durable execution, queues, retries, observability, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
tools
Planning conductor — runs the full PRD → Spec → Gherkin loop in a single interactive session with human approval gates.