SwiftUI
You MUST use this skill for ANY SwiftUI work including views, state, navigation, layout, animations, architecture, gestures, and debugging.
<!-- AXIOM_AUDITOR_INLINE_BEGIN — rewritten for Codex by scripts/build-codex.ts; do not hand-edit --><!-- AXIOM_AUDITOR_INLINE_END -->Auditors are skills here. Where this router says "Launch
some-auditoragent", invoke the matching Codex skill instead — same procedure, no Claude Code agent required.Available:
axiom-analyze-swiftui-performance,axiom-audit-liquid-glass,axiom-audit-swiftui-architecture,axiom-audit-swiftui-layout,axiom-audit-swiftui-nav,axiom-audit-textkit,axiom-audit-ux-flow.The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.
Quick Reference
Non-SwiftUI UI Routes
These topics are part of the broader iOS UI domain but live in separate suites:
UIKit issues
- Auto Layout conflicts → See axiom-uikit (skills/auto-layout-debugging.md)
- Animation timing → See axiom-uikit (skills/uikit-animation-debugging.md)
- SwiftUI ↔ UIKit bridging → See axiom-uikit (skills/uikit-bridging.md)
Design & guidelines
- Liquid Glass adoption → See axiom-design (skills/liquid-glass.md)
- SF Symbols → See axiom-design (skills/sf-symbols.md)
- HIG compliance → See axiom-design (skills/hig.md)
- Typography → See axiom-design (skills/typography-ref.md)
- TextKit/rich text → See axiom-uikit (skills/textkit-ref.md)
Other
- tvOS (focus, remote, text input) → See axiom-swift (skills/tvos.md)
- App-level composition (root, auth, scenes) → See axiom-design (skills/app-composition.md)
- Drag/drop, sharing, copy/paste → See axiom-swift (skills/transferable-ref.md)
- VoiceOver, Dynamic Type →
/skill axiom-accessibility - UI test flakiness →
/skill axiom-testing - UX dead ends, dismiss traps →
axiom-audit-ux-flow
watchOS-specific patterns
- Glanceable UI, watch navigation, Smart Stack widgets → See axiom-watchos
Conflict Resolution
axiom-swiftui vs axiom-performance: When UI is slow (e.g., "SwiftUI List slow"):
- Try axiom-swiftui FIRST — Domain-specific fixes (LazyVStack, view identity, @State optimization) often solve UI performance in 5 minutes
- Only use axiom-performance if domain fixes don't help — Profiling takes longer and may confirm what domain knowledge already knows
Decision Tree
Automated Scanning
- Architecture audit →
axiom-audit-swiftui-architecture - Performance scan →
axiom-analyze-swiftui-performance - Navigation audit →
axiom-audit-swiftui-nav - Layout audit →
axiom-audit-swiftui-layout - UX flow audit →
axiom-audit-ux-flow - Liquid Glass scan →
axiom-audit-liquid-glass(detects migration opportunities AND adoption-completeness gaps: variant discipline for media surfaces, glass-on-glass nesting, unstyled pre-26 fallbacks, semantic toolbar placement,Tab(role: .search), theUIDesignRequiresCompatibilityopt-out; scores ADOPTED / PARTIAL / NOT ADOPTED) - TextKit scan →
axiom-audit-textkit(detects fallback triggers, glyph APIs that corrupt complex scripts, missing Writing Tools wiring, AND architectural gaps like missing fallback observation, SwiftUI wrappers dropping TextKit 2 properties, missingisWritingToolsActiveguards; scores MODERN / MIXED / LEGACY)


