axiom-accessibility
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
Use when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animations.
$ npx -y skills add charleswiltgen/axiom --skill axiom-uikit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/axiom-uikitContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animations.
name: axiom-uikit description: Use when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animations. license: MIT
**You MUST use this skill for ANY UIKit bridging, Auto Layout, Combine, TextKit, or UIKit animation work.**
<!-- 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-audit-resize`. > > The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run. <!-- AXIOM_AUDITOR_INLINE_END -->
| Symptom / Task | Reference | |----------------|-----------| | UIViewRepresentable, UIViewControllerRepresentable | See `skills/uikit-bridging.md` | | Embedding SwiftUI in UIKit (UIHostingController) | See `skills/uikit-bridging.md` | | Coordinator pattern, updateUIView lifecycle | See `skills/uikit-bridging.md` | | Building adaptive UIKit layout: guides, width-conditional constraints, compositional layout, self-sizing cells | See `skills/adaptive-layout.md` | | "Unable to simultaneously satisfy constraints" | See `skills/auto-layout-debugging.md` | | Constraint conflicts, ambiguous layout | See `skills/auto-layout-debugging.md` | | Views not appearing, positioned incorrectly | See `skills/auto-layout-debugging.md` | | CAAnimation completion handler not firing | See `skills/uikit-animation-debugging.md` | | Spring physics wrong on device, duration mismatch | See `skills/uikit-animation-debugging.md` | | Animation jank, CATransaction timing | See `skills/uikit-animation-debugging.md` | | Combine publishers, AnyCancellable lifecycle | See `skills/combine-patterns.md` | | @Published properties, Combine ↔ async/await | See `skills/combine-patterns.md` | | When to use Combine vs async/await | See `skills/combine-patterns.md` | | UIScene lifecycle required, resizable apps, size classes, tab sidebar `OS27` | See `skills/uikit-modernization.md` | | iPhone Mirroring compat: indirect input, companion Face ID, portrait trap | See `skills/uikit-modernization.md` | | Scene edges: teardown, activation requests, per-scene restoration, external display, activeAppearance | See `skills/uikit-modernization.md` | | Automated resize-readiness scan (scene lifecycle, UIScreen.main, fixed-canvas, Mirroring input) | `axiom-audit-resize` | | TextKit 2 architecture, NSTextLayoutManager | See `skills/textkit-ref.md` | | Writing Tools integration (iOS 26) | See `skills/textkit-ref.md` | | Viewport rendering surfaces, attachment reuse, collapsible text `OS27` | See `skills/textkit-ref.md` | | SwiftUI TextEditor, TextKit 1 migration | See `skills/textkit-ref.md` | | PencilKit canvas, PKToolPicker, drawing persistence | See `skills/pencilkit-paperkit.md` | | Apple Pencil Pro (squeeze, barrel roll, hover, haptics) | See `skills/pencilkit-paperkit.md` | | Handwriting recognition (PKStrokeRecognizer), stroke identity/slicing `OS27` | See `skills/pencilkit-paperkit-ref.md` | | PaperKit markup canvas (shapes, images, text + drawing) | See `skills/pencilkit-paperkit-ref.md` | | PaperKit programmatic markup model (subelements, adornments) `OS27` | See `skills/pencilkit-paperkit-ref.md` |
digraph uikit {
start [label="UIKit task" shape=ellipse];
what [label="What do you need?" shape=diamond];
start -> what;
what -> "skills/uikit-bridging.md" [label="wrap UIKit in SwiftUI\nor SwiftUI in UIKit"];
what -> "skills/adaptive-layout.md" [label="build adaptive layout\n(guides, constraint sets,\ncompositional)"];
what -> "skills/auto-layout-debugging.md" [label="constraint errors,\nlayout issues"];
what -> "skills/uikit-animation-debugging.md" [label="CAAnimation bugs,\nspring physics,\ncompletion handlers"];
what -> "skills/combine-patterns.md" [label="publishers, sinks,\n@Published,\nasync/await bridge"];
what -> "skills/textkit-ref.md" [label="text layout,\nWriting Tools,\nTextKit migration"];
what -> "skills/pencilkit-paperkit.md" [label="drawing canvas,\nApple Pencil,\nPaperKit markup"];
what -> "skills/uikit-modernization.md" [label="scene lifecycle (required 27),\nresizable apps,\nsize classes"];
}0. Scene-lifecycle migration, "app won't launch on 27", resizability, size classes, tab sidebar? → `skills/uikit-modernization.md` 0b. App misbehaves in iPhone Mirroring (gestures dead, Face ID blocked, layout stuck portrait)? → `skills/uikit-modernization.md` 1. UIViewRepresentable / UIViewControllerRepresentable / UIHostingController? → `skills/uikit-bridging.md` 2. "Unable to simultaneously satisfy constraints" / layout bugs? → `skills/auto-layout-debugging.md` 2b. Building a layout that adapts (layout guides, size-class constraint sets, compositional column math, self-sizing cells)? → `skills/adaptive-layout.md` 3. CAAnimation completion missing / spring physics wrong / animation jank? → `skills/uikit-animation-debugging.md` 4. Combine publishers / AnyCancellable / @Published / Combine ↔ async bridge? → `skills/combine-patterns.md` 5. TextKit 2 / Writing Tools / TextEditor / TextKit 1 migration? → `skills/textkit-ref.md` 6. PencilKit canvas / Apple Pencil / PaperKit markup? → `skills/pencilkit-paperkit.md` 7. Pure SwiftUI view question (no UIKit bridging)? → `/skill axiom-swiftui` 8. Design decisions, HIG, Liquid Glass, SF Symbols, typography? → `/skill axiom-design` 9. Block retain cycles in UIKit callbacks? → See axiom-performance (`skills/objc-block-retain-cycles.md`) 10. Memory leaks from Combine subscriptions? → Start with `skills/combine-patterns.md`, then axiom-performance if leak persists
**uikit vs swiftui**: When working with UI code:
Battle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.
Repo: charleswiltgen/axiom
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation Models, @Generable,…
Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs analysis.
Use when the user mentions Swift performance audit, code optimization, or performance review.
Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues.
Use when the user mentions flaky tests, tests that pass locally but fail in CI, race conditions in tests, or needs to diagnose WHY a specific test fails.