axiom-swift — скилл для Claude Code: что делает и как установить
Направляет ИИ-агента при работе с языком Swift и платформенными фичами вроде tvOS или Transferable. Пригодится, когда нейросеть предлагает устаревший код или путается в типах.
npx skills add CharlesWiltgen/Axiom --skill axiom-swift -a claude-codeЧто делает axiom-swift
Скилл содержит набор инструкций для работы с современным Swift. Он помогает модели заменять устаревшие конструкции вроде DateFormatter или CGFloat на актуальные API Foundation, такие как FormatStyle и URL.documentsDirectory. Внутрь заложены паттерны для Swift 6.4, включая работу с некопируемыми типами ~Copyable, модификаторами borrowing и consuming, а также структурами InlineArray и Span.
Отдельные разделы закрывают специфику платформ. Скилл даёт правила для переноса данных через Transferable и генерации отладочных диплинков для симулятора. Он описывает разработку под tvOS с учётом Focus Engine и ограничений дискового пространства. Для симулятора или сборки тестов агенту потребуется прямой доступ к терминалу.
При изоляции акторов автор рекомендует переключаться на axiom-concurrency, потому что этот скилл отвечает за идиомы языка, а не за многопоточность.
Какие задачи решает
- исправить устаревшие вызовы
Date()иDateFormatterнаFormatStyle - настроить некопируемые типы
~Copyableи параметрыborrowing - объявить соответствие протоколу
Transferableи кастомныеUTType - создать отладочные диплинки для перехода к экранам в симуляторе
- адаптировать приложение под tvOS с учётом Focus Engine и Siri Remote
Примеры запросов агенту
- Проверь этот файл на устаревший синтаксис Swift и замени DateFormatter на FormatStyle.
- Помоги объявить структуру с ~Copyable и настроить передачу аргументов через borrowing.
- Добавь отладочный диплинк для быстрой навигации к экрану профиля в симуляторе tvOS.
Как установить axiom-swift
1Через Skills CLI (Vercel)
npx skills add CharlesWiltgen/Axiom --skill axiom-swift -a claude-code2Вручную: положить файлы
~/.claude/skills/axiom-swift/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/axiom-swift/
1Через Skills CLI (Vercel)
npx skills add CharlesWiltgen/Axiom --skill axiom-swift -a codex2Вручную: положить файлы
.agents/skills/axiom-swift/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add CharlesWiltgen/Axiom --skill axiom-swift -a cursor2Вручную: положить файлы
.cursor/skills/axiom-swift/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install CharlesWiltgen/Axiom axiom-swift2Вручную: положить файлы
.github/skills/axiom-swift/SKILL.md1Через Skills CLI (Vercel)
npx skills add CharlesWiltgen/Axiom --skill axiom-swift -a gemini-cli2Командой платформы
gemini skills install https://github.com/CharlesWiltgen/Axiom --path axiom-codex/skills/axiom-swiftВручную: положить файлы
.devin/skills/axiom-swift/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add CharlesWiltgen/Axiom --skill axiom-swift -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о axiom-swift
Как установить axiom-swift в Claude Code?
Выполните в терминале команду npx skills add CharlesWiltgen/Axiom --skill axiom-swift -a claude-code. Файл скилла будет сохранён в директорию ~/.claude/skills/axiom-swift/SKILL.md.
Что делает скилл axiom-swift?
Он направляет ИИ-агента по правилам современного языка Swift. В него входят инструкции по некопируемым типам, протоколу Transferable, диплинкам для отладки и разработке под tvOS.
Что делать при ошибках акторов и параллелизма в Swift 6?
Для ошибок изоляции акторов и протокола Sendable автор рекомендует скилл axiom-concurrency. Текущий скилл задаёт базовые стандарты языка, но не разбирает сценарии многопоточности.
Исходный текст
SKILL.md · MIT
---
name: axiom-swift
description: 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.
license: MIT
---
# 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 / Task | Reference |
|----------------|-----------|
| 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 code | See `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 ownership | See `skills/ownership-conventions.md` |
| InlineArray, Span, value generics; Swift 6.4 `borrow`/`mutate` accessors (`OS27`) | See `skills/ownership-conventions.md` |
| Reducing ARC overhead | See `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 sharing | See `skills/transferable-ref.md` |
| Custom UTType declarations | See `skills/transferable-ref.md` |
| TransferRepresentation choices | See `skills/transferable-ref.md` |
| Debug-only deep links for simulator testing | See `skills/deep-link-debugging.md` |
| Navigate to specific screens for screenshots | See `skills/deep-link-debugging.md` |
| tvOS Focus Engine, Siri Remote input | See `skills/tvos.md` |
| tvOS storage constraints (no guaranteed-persistent local storage) | See `skills/tvos.md` |
| tvOS text input, AVPlayer tuning | See `skills/tvos.md` |
| TVUIKit components | See `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
| Thought | Reality |
|---------|---------|
| "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 · MIT · CharlesWiltgen/Axiom