Axiom Swift

CharlesWiltgen/Axiom/axiom-codex/skills/axiom-swift

作者 CharlesWiltgen82c7feafae634a79b4336b3381289441886c122cMIT1.1K 個星標收錄於 2026年10月9日更新於 2026年10月9日儲存庫今天更新

Use when the question is about Swift or its toolchain rather than a framework — modern idioms, noncopyable types, drag and drop, debug deep links, tvOS targets.

AI 產生的概覽

將 Swift 語言與平台問題導向現代慣用法、所有權型別、Transferable、深層連結與 tvOS 的參考文件。

功能
這是一個針對 Swift 語言與工具鏈(而非特定框架)問題的路由型技能。它把症狀與任務對應到五份隨附的參考文件,分別涵蓋現代 Swift 慣用法與 Foundation API、不可複製型別與所有權、Transferable 拖放與分享、用於模擬器導覽的除錯深層連結,以及 tvOS 開發。它也提供衝突處理規則,說明何時應改用並行、效能、SwiftUI、整合或建置類技能,並指向一個 Swift 簡化技能。它不附帶指令碼,只有說明與參考檔案。
適用情境
適用於審查 Swift 程式碼中的過時寫法、處理 borrowing、consuming 或不可複製型別、實作拖放、複製貼上或 ShareLink、為模擬器測試設定除錯深層連結,或開發 tvOS 的焦點導覽與儲存等功能。它不是並行、效能分析、Codable 或檢視層 SwiftUI 工作的進入點,這些會被它轉介到別處。
執行需求
不需要指令碼或套件,只是一組 Markdown 參考檔案。其中提到的部分稽核流程涉及建置、測試、執行模擬器或崩潰符號化,需要 shell 存取權限;tvOS 或模擬器相關工作意味著需要 Apple 開發環境。

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 — rewritten for Codex by scripts/build-codex.ts; do not hand-edit -->

Auditors are skills here. Where this router says "Launch some-auditor agent", invoke the matching Codex skill instead — same procedure, no Claude Code agent required.

Available: axiom-swift-simplifier.

The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.

<!-- 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 guaranteed-persistent local storage)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-swift-simplifier

Decision Tree

dot
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-swift-simplifier)

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 guaranteed-persistent local storage; 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 guaranteed-persistent local storage, 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

來源與署名

來源:CharlesWiltgen/Axiom位於axiom-codex/skills/axiom-swift提交82c7fea

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架