New to Claude Skills? Learn how to install them →

charleswiltgen on GitHub

Axiom Swift

Free

Streamline your Swift code reviews and development.

Get this skill

Free · Opens the source repo

What Axiom Swift does

Axiom Swift is a comprehensive skill designed for developers working with Swift, particularly those looking to modernize their code and adhere to best practices. This skill is essential for reviewing Swift code, focusing on modern idioms, ownership conventions, drag-and-drop implementation, debug deep links, and tvOS development. It provides structured guidance through various specialized skills that address specific aspects of Swift programming, ensuring that developers can efficiently tackle common issues and enhance their coding practices.

The skill encompasses several key areas: it offers insights into outdated Swift patterns and modern API replacements, helping developers transition to more efficient coding practices. For instance, it addresses common Swift 6.4 idioms, such as anyAppleOS and weak let, and provides solutions for common pitfalls like Claude hallucinations in Swift code. Additionally, it covers ownership conventions, guiding users on how to handle noncopyable types and manage memory effectively, which is crucial for optimizing performance in Swift applications.

For developers focusing on user interface interactions, Axiom Swift includes resources for implementing drag-and-drop functionality, content sharing, and custom UTType declarations. It also features guidance for debugging deep links, which is invaluable for testing and navigation within applications. Furthermore, the skill caters to tvOS development by addressing unique challenges such as Siri Remote input and storage constraints, ensuring that developers have the necessary tools to build robust tvOS applications.

Overall, Axiom Swift is a vital tool for any Swift developer looking to enhance their coding efficiency, modernize their practices, and ensure their applications are built on solid foundations. Whether you are a seasoned developer or just starting with Swift, this skill provides the necessary resources to elevate your coding standards and improve your development workflow.

When to use it

Use Axiom Swift when reviewing Swift code, implementing modern idioms, or developing for tvOS.

When not to use it

This skill may not be suitable for non-Swift programming tasks or in-depth performance optimization beyond ownership conventions.

What you can build with it

Reviewing Legacy Swift Code

A developer uses Axiom Swift to identify and replace outdated Swift patterns in a legacy codebase, ensuring the code adheres to modern standards.

Implementing Drag and Drop

A mobile developer references Axiom Swift to correctly implement drag-and-drop functionality in their iOS app, following best practices.

Debugging Deep Links in tvOS

A developer building a tvOS application utilizes Axiom Swift to set up debug deep links, facilitating easier navigation and testing.

How to install Axiom Swift

View source

1. Install with the skills CLI

npx skills add charleswiltgen/axiom/axiom-swift --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by charleswiltgen

Swift Language & Platform

You MUST use this skill for ANY Swift idiom review, ownership/noncopyable types, Transferable/drag-and-drop, debug deep links, or tvOS development.

<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit -->

Not on Claude Code? Where this router says "Launch some-auditor agent", read that auditor's file in this suite and follow it inline — the same procedure, needing only file search and read.

Available here: skills/swift-simplifier.md.

Agents that need Bash — builds, tests, simulators, crash symbolication — stay Claude Code-only; there is no inline equivalent for those.

<!-- AXIOM_AUDITOR_INLINE_END -->

Quick Reference

Symptom / TaskReference
Outdated Swift patterns (Date(), CGFloat, DateFormatter)See skills/swift-modern.md
Foundation modernization (FormatStyle, URL.documentsDirectory)See skills/swift-modern.md
Common Claude hallucinations in Swift codeSee skills/swift-modern.md
Swift 6.4 idioms — anyAppleOS, weak let, ~Sendable (OS27)See skills/swift-modern.md
Noncopyable types (~Copyable)See skills/ownership-conventions.md
borrowing/consuming parameter ownershipSee skills/ownership-conventions.md
InlineArray, Span, value generics; Swift 6.4 borrow/mutate accessors (OS27)See skills/ownership-conventions.md
Reducing ARC overheadSee skills/ownership-conventions.md
Drag and drop (.draggable, .dropDestination)See skills/transferable-ref.md
Copy/paste (.copyable, PasteButton)See skills/transferable-ref.md
ShareLink, content sharingSee skills/transferable-ref.md
Custom UTType declarationsSee skills/transferable-ref.md
TransferRepresentation choicesSee skills/transferable-ref.md
Debug-only deep links for simulator testingSee skills/deep-link-debugging.md
Navigate to specific screens for screenshotsSee skills/deep-link-debugging.md
tvOS Focus Engine, Siri Remote inputSee skills/tvos.md
tvOS storage constraints (no Documents dir)See skills/tvos.md
tvOS text input, AVPlayer tuningSee skills/tvos.md
TVUIKit componentsSee skills/tvos.md
Simplify Swift for clarity (behavior-preserving cleanups)swift-simplifier agent — /axiom:audit swift-simplify

Decision Tree

digraph swift {
    start [label="Swift task" shape=ellipse];
    what [label="What do you need?" shape=diamond];

    start -> what;
    what -> "skills/swift-modern.md" [label="modern idioms,\noutdated patterns,\nFoundation APIs"];
    what -> "skills/ownership-conventions.md" [label="~Copyable, borrowing,\nconsuming, InlineArray,\nSpan, ARC reduction"];
    what -> "skills/transferable-ref.md" [label="drag & drop, copy/paste,\nShareLink, UTTypes,\nTransferable conformance"];
    what -> "skills/deep-link-debugging.md" [label="debug deep links,\nsimulator navigation,\nscreenshot automation"];
    what -> "skills/tvos.md" [label="tvOS app,\nFocus Engine,\nSiri Remote, storage"];
}
  1. Outdated Swift patterns / modern API replacements / Claude hallucinations? -> skills/swift-modern.md
  2. ~Copyable / borrowing / consuming / InlineArray / Span? -> skills/ownership-conventions.md
  3. Drag and drop / copy/paste / ShareLink / Transferable / UTTypes? -> skills/transferable-ref.md
  4. Debug deep links / simulator navigation / screenshot automation? -> skills/deep-link-debugging.md
  5. tvOS development / Focus Engine / Siri Remote / storage / AVPlayer? -> skills/tvos.md
  6. Swift concurrency (async/await, actors, Sendable) -> /skill axiom-concurrency
  7. Swift performance (COW, ARC, generics optimization) -> See axiom-performance (skills/swift-performance.md)
  8. Codable patterns (JSON, CodingKeys, enum serialization) -> See axiom-data (skills/codable.md)
  9. Simplify Swift for clarity (guard/optional cleanups, if/switch expressions, boilerplate)? -> swift-simplifier agent (/axiom:audit swift-simplify)

Conflict Resolution

swift vs concurrency: When Swift 6 concurrency errors appear:

  • Use concurrency, NOT swift -- Concurrency errors are actor isolation / Sendable issues. skills/swift-modern.md covers concurrency posture (defaults), but detailed patterns live in axiom-concurrency.

swift vs performance: When optimizing Swift code:

  • Use swift for ownership if the question is borrowing/consuming/~Copyable/InlineArray/Span -> skills/ownership-conventions.md
  • Use performance if the question is COW, ARC profiling, generic specialization, or Instruments workflows -> axiom-performance

swift vs swiftui: When implementing drag and drop or copy/paste:

  • Use swift for Transferable conformance, representation choices, UTType declarations -> skills/transferable-ref.md
  • Use swiftui for view-level modifiers (.draggable, .dropDestination styling, animations)

swift vs integration: When sharing content:

  • ShareLink + Transferable -> use swift (skills/transferable-ref.md)
  • UIActivityViewController customization, share extensions -> use integration

swift vs axiom-build: When tvOS build fails:

  • Environment/Xcode issues -> use axiom-build first
  • tvOS platform-specific code issues (Focus Engine, storage, no WebView) -> use swift (skills/tvos.md)

Critical Patterns

Modern Swift Idioms (skills/swift-modern.md):

  • 12+ outdated patterns Claude defaults to (Date(), CGFloat, DateFormatter, DispatchQueue.main.async)
  • Foundation modernization (FormatStyle, URL.documentsDirectory, .replacing())
  • SwiftUI convenience APIs Claude misses (ContentUnavailableView.search, LabeledContent)
  • Swift 6.4 concurrency posture defaults
  • 12 common Claude hallucinations with corrections

Ownership & Noncopyable Types (skills/ownership-conventions.md):

  • borrowing/consuming parameter modifiers with 7 patterns
  • ~Copyable types: FileHandle pattern, limitations table, common compiler errors
  • InlineArray: fixed-size stack-allocated arrays with value generics
  • Span family: safe contiguous memory access replacing UnsafeBufferPointer
  • Decision tree for when ownership modifiers help vs when to skip

Transferable & Sharing (skills/transferable-ref.md):

  • Decision tree: CodableRepresentation vs DataRepresentation vs FileRepresentation vs ProxyRepresentation
  • Drag and drop, copy/paste, ShareLink with complete SwiftUI API
  • Custom UTType declarations (Swift + Info.plist, both required)
  • 7 common errors with fixes (representation ordering, missing Info.plist, hit testing)
  • UIKit bridging via NSItemProvider

Debug Deep Links (skills/deep-link-debugging.md):

  • Debug-only URL scheme for simulator navigation
  • NavigationPath integration for robust routing
  • State configuration links (error states, empty states)
  • Integration with /axiom:screenshot and simulator-tester agent
  • 60-75% faster iteration with visual verification

tvOS Development (skills/tvos.md):

  • Dual focus system (UIKit Focus Engine + SwiftUI @FocusState)
  • Siri Remote input (two generations, three input layers)
  • Storage constraints (no Documents directory, iCloud required)
  • No WebView (JavaScriptCore only, no DOM)
  • AVPlayer tuning, Menu button state machine
  • TVUIKit components

Anti-Rationalization

ThoughtReality
"Date() is fine, everyone uses it"Date.now has been the modern pattern since Swift 5.6. skills/swift-modern.md lists 12+ patterns Claude gets wrong.
"I don't need ownership modifiers"For most code, correct. But ~Copyable types require them, and large value types in hot paths benefit measurably.
"Transferable is just Codable for drag and drop"Transferable has 4 representation types, ordering rules, and Info.plist requirements. Getting it wrong causes silent cross-app failures.
"I'll just use the same code as iOS for tvOS"tvOS has no Documents directory, no WebView, a dual focus system, and two generations of remote hardware. It compiles fine and fails at runtime.
"Debug deep links are overkill"Manual navigation costs 2-3 minutes per iteration. Deep links cut it to 45 seconds. Over a debugging session, that's hours saved.
"CGFloat is what SwiftUI uses"Swift 5.5+ has implicit Double-CGFloat bridging. Use Double everywhere except optionals, inout, and ObjC-bridged APIs.
"I'll add the Info.plist entry later"Custom UTTypes work in-app without Info.plist but silently fail cross-app. This is the #1 "works in dev, fails in prod" Transferable issue.
"FormatStyle is too verbose"val.formatted(.number.precision(.fractionLength(2))) is type-safe and localized. String(format:) is neither.

Example Invocations

User: "Is this Swift code using modern patterns?" -> Read: skills/swift-modern.md

User: "How do I use borrowing and consuming?" -> Read: skills/ownership-conventions.md

User: "How do I make my model draggable?" -> Read: skills/transferable-ref.md

User: "How do I implement ShareLink with a custom preview?" -> Read: skills/transferable-ref.md

User: "I need debug deep links for simulator testing" -> Read: skills/deep-link-debugging.md

User: "I'm building a tvOS app and focus navigation doesn't work" -> Read: skills/tvos.md

User: "What is InlineArray and when should I use it?" -> Read: skills/ownership-conventions.md

User: "My drag and drop works in-app but not across apps" -> Read: skills/transferable-ref.md

User: "tvOS keeps losing my saved data" -> Read: skills/tvos.md

User: "How do I optimize large struct passing?" -> Read: skills/ownership-conventions.md

User: "I need to fix my async/await code" -> See /skill axiom-concurrency

User: "Check my code for Swift 6 concurrency issues" -> See /skill axiom-concurrency

Frequently asked questions about Axiom Swift

Similar skills