PluginBench
Skill
Pass
Audit score 90

axiom-swiftui

charleswiltgen/axiom

SwiftUI views, navigation, layout, animations, gestures, debugging, and iOS 26 features.

What is axiom-swiftui?

Comprehensive skill for building, fixing, and improving SwiftUI UIs across all domains—views, state management, navigation, layout adaptation, animations, gestures, and debugging. Use this for any SwiftUI work including architecture, performance optimization, previews, and iOS 26+ features.

  • Route to specialized auditors for architecture, performance, navigation, layout, and UX flow analysis
  • Debug view update issues, preview crashes, and state management problems
  • Optimize layout for iPad, rotation, and state persistence across device transitions
  • Implement navigation patterns, sheets, detents, popovers, and presentation adaptations
  • Build animations, handle gesture conflicts, and manage custom containers and grids
  • Support iOS 26 features including section indices, web content, and iPhone Duo/foldable poses

How to install axiom-swiftui

npx skills add https://github.com/charleswiltgen/axiom --skill axiom-swiftui
Claude Code
Cursor
Windsurf
Cline

How to use axiom-swiftui

  1. 1.Identify the specific SwiftUI problem (view updates, navigation, layout, performance, etc.)
  2. 2.Consult the Quick Reference table to find the relevant skill file for your issue
  3. 3.For complex problems, launch the appropriate auditor agent (architecture, performance, navigation, layout, or UX flow)
  4. 4.Follow the referenced skill's debugging steps or patterns
  5. 5.For non-SwiftUI topics (UIKit, design, accessibility), route to the appropriate axiom suite

Use cases

Good for
  • Fixing a view that isn't updating after state changes
  • Implementing adaptive layout that works on iPhone, iPad, and in split-view
  • Debugging slow previews or optimizing preview build times
  • Setting up navigation with sheets and custom detents
  • Handling gesture conflicts in complex interactive UIs
Who it's for
  • iOS app developers building SwiftUI UIs
  • Engineers debugging view update or navigation issues
  • Teams optimizing SwiftUI performance and preview speed
  • Developers implementing adaptive layouts for multiple device sizes
  • Engineers working on iOS 26+ feature adoption

axiom-swiftui FAQ

When should I use axiom-swiftui vs axiom-performance?

Try axiom-swiftui first for UI performance issues—domain-specific fixes like LazyVStack and view identity often solve problems quickly. Only use axiom-performance if domain fixes don't help and you need profiling.

What if my issue involves UIKit or Auto Layout?

Route to axiom-uikit for Auto Layout conflicts, UIKit animation timing, and SwiftUI↔UIKit bridging. axiom-swiftui handles SwiftUI-only problems.

How do I handle state that gets lost on device rotation?

See skills/layout.md section 'State Survives the Transition' for patterns to preserve scroll position, selection, focus, and draft state across rotation and resize.

What's covered for iOS 26 features?

See skills/26-ref.md for section indices, section margins, WebView/WebPage, and other iOS 26 additions. iPhone Duo/foldable poses are in skills/iphone-duo.md.

Can I use this skill for app-level composition like root views and auth flows?

No—route to axiom-design (skills/app-composition.md) for app-level structure. axiom-swiftui covers feature-level UI and view composition.

Full instructions (SKILL.md)

Source of truth, from charleswiltgen/axiom.


name: axiom-swiftui description: Use when building, fixing, or improving ANY SwiftUI UI — views, navigation, layout, animations, gestures, debugging, iOS 26 features, iPhone Duo, view-level performance, feature architecture. license: MIT

SwiftUI

You MUST use this skill for ANY SwiftUI work including views, state, navigation, layout, animations, architecture, gestures, and debugging.

<!-- 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/swiftui-architecture-auditor.md, skills/swiftui-layout-auditor.md, skills/swiftui-nav-auditor.md, skills/swiftui-performance-analyzer.md, skills/textkit-auditor.md, skills/ux-flow-auditor.md. Homed in another suite: axiom-design/skills/liquid-glass-auditor.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
View not updatingSee skills/debugging.md
View update still broken after debuggingSee skills/debugging-diag.md
Slow previews / building good previews / @Previewable / PreviewModifier / variant matrixSee skills/previews.md
Preview API reference (#Preview, traits, modes, Development Assets)See skills/previews-ref.md
Preview crashes / won't loadSee skills/debugging.md (Preview Crashes section)
Hot reload / live editing / edit the running app on deviceSee skills/hot-reload.md
Navigation issuesSee skills/nav.md
Navigation still broken after debuggingSee skills/nav-diag.md
Navigation API referenceSee skills/nav-ref.md
Layout breaks on iPad/rotationSee skills/layout.md
State lost on resize/rotation (scroll, selection, focus, drafts)See skills/layout.md (State Survives the Transition)
Layout API referenceSee skills/layout-ref.md
Performance/lag/slow scrollSee skills/swiftui-performance.md
Architecture/testabilitySee skills/architecture.md
@State object rebuilt every view init, or an init assignment ignored at runtimeSee skills/architecture.md (@State is a macro now)
Animation issuesSee skills/animation-ref.md
Stacks/grids/outlinesSee skills/containers-ref.md
Custom containers / List replacement (iOS 18+)See skills/containers-ref.md Part 7
Search implementationSee skills/search-ref.md
Toolbars, ToolbarItem, sheet button placement, customizationSee skills/toolbars.md
Navigation subtitle: navigationSubtitle, .title / .subtitle / .largeTitle / .largeSubtitle placements (iOS 26)See skills/toolbars.md (Pattern 14)
Sheets, detents, popovers, fullScreenCover, presentation adaptationSee skills/presentations.md
Multi-column Table, sortable/resizable columns (iPad/Mac; collapses to first column in compact)See axiom-macos (skills/swiftui-differences.md)
Inspector panel (.inspector — trailing column in regular width, sheet in compact)See axiom-macos (skills/swiftui-differences.md)
Gesture conflictsSee skills/gestures.md
Section index — the vertical A–Z index strip / alphabet scrubber on a list's trailing edge, jump-to-sectionSee skills/26-ref.md (Section Index)
List section margins / insets around a SectionSee skills/26-ref.md (Section Margins)
Web content — WebView / WebPage, scroll modifiers, WebView-in-NavigationStackSee skills/26-ref.md (WebView & WebPage)
iPhone Duo / foldable iPhone: poses, vertical bars, the fold, arrangements, hinge, scene accessories (SwiftUI and UIKit)See skills/iphone-duo.md
iOS 26 featuresSee skills/26-ref.md

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 → Launch ux-flow-auditor agent

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"):

  1. Try axiom-swiftui FIRST — Domain-specific fixes (LazyVStack, view identity, @State optimization) often solve UI performance in 5 minutes
  2. Only use axiom-performance if domain fixes don't help — Profiling takes longer and may confirm what domain knowledge already knows

Decision Tree

digraph swiftui {
    start [label="SwiftUI issue" shape=ellipse];
    what [label="What's wrong?" shape=diamond];

    start -> what;
    what -> "skills/debugging.md" [label="view not updating"];
    what -> "skills/nav.md" [label="navigation"];
    what -> "skills/swiftui-performance.md" [label="slow/lag"];
    what -> "skills/layout.md" [label="adaptive layout"];
    what -> "skills/containers-ref.md" [label="stacks/grids/outlines"];
    what -> "skills/architecture.md" [label="feature architecture"];
    what -> "skills/animation-ref.md" [label="animations"];
    what -> "skills/gestures.md" [label="gestures"];
    what -> "skills/search-ref.md" [label="search"];
    what -> "skills/toolbars.md" [label="toolbars / sheet buttons"];
    what -> "skills/presentations.md" [label="sheets/detents/popovers"];
    what -> "skills/26-ref.md" [label="iOS 26 features"];
    what -> "skills/iphone-duo.md" [label="iPhone Duo / foldable"];
    what -> "skills/previews.md" [label="slow previews / building good previews"];
    what -> "skills/previews-ref.md" [label="preview API reference"];
    what -> "skills/debugging.md" [label="preview crashes / won't load"];
    what -> "skills/hot-reload.md" [label="hot reload / live editing"];
    what -> "axiom-macos (skills/swiftui-differences.md)" [label="Table / .inspector\n(large-window density)"];
    what -> "axiom-uikit (skills/uikit-bridging.md)" [label="UIKit interop"];
    what -> "axiom-design (skills/app-composition.md)" [label="app-level (root, auth)"];
    what -> "axiom-swift (skills/transferable-ref.md)" [label="drag/drop, sharing"];
}

Automated Scanning

  • Architecture audit → Launch swiftui-architecture-auditor agent
  • Performance scan → Launch swiftui-performance-analyzer agent or /axiom:audit swiftui-performance
  • Navigation audit → Launch swiftui-nav-auditor agent or /axiom:audit swiftui-nav
  • Layout audit → Launch swiftui-layout-auditor agent or /axiom:audit swiftui-layout
  • UX flow audit → Launch ux-flow-auditor agent or /axiom:audit ux-flow
  • Liquid Glass scan → Launch liquid-glass-auditor agent or /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), the UIDesignRequiresCompatibility opt-out; scores ADOPTED / PARTIAL / NOT ADOPTED)
  • TextKit scan → Launch textkit-auditor agent or /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, missing isWritingToolsActive guards; scores MODERN / MIXED / LEGACY)

Anti-Rationalization

ThoughtReality
"Simple SwiftUI layout, no need"SwiftUI layout has 12 gotchas. skills/layout.md covers all of them.
"I know how NavigationStack works"Navigation has state restoration, deep linking, and identity traps. skills/nav.md prevents 2-hour debugging.
"It's just a view not updating"View update failures have 4 root causes. skills/debugging.md diagnoses in 5 min.
"I'll just add .animation()"Animation issues compound. skills/animation-ref.md has the correct patterns.
"No architecture needed"Even small features benefit from separation. skills/architecture.md prevents refactoring debt.
"I know .searchable"Search has 6 gotchas. skills/search-ref.md covers all of them.
"I'll just add a Done button"Sheets without Cancel break the HIG (updated 2026-03-24). .cancellationAction / .confirmationAction produce HIG-correct placement automatically — skills/toolbars.md Pattern 2 has the rules.
"A sheet is a sheet, nothing to configure"Detents, compact adaptation, background interaction, and iOS 18 sizing decide how it behaves across window shapes. skills/presentations.md covers the adaptation traps (landscape sheets silently become full-screen covers).
"Previews are slow forever, I'll just use the simulator"Five concrete fixes in skills/previews.md. Rule 4 (auto-refresh off) is 30 seconds and often halves perceived slowness.
"@State is lazy in Xcode 27, I read the release notes"Only when the property is private/fileprivate and the deployment target is iOS 17 or later — below 17 the private case silently keeps the old eager behavior. skills/architecture.md has the gate, the three TN3211 breaks, and the one that compiles and is wrong at runtime.
"I'll just write a wrapper view for @State in this preview"@Previewable @State (Xcode 16+) eliminates that boilerplate. skills/previews-ref.md has the macro signature.
"I'll just rebuild and relaunch every time"Hot reload edits the running app in place, state preserved. skills/hot-reload.md has the InjectionNext + Inject setup and the verify-via-xclog loop.
"Duo is just a bigger iPhone; my layout already resizes"Bars move to the side, the fold divides the screen, and the outer display can't open windows. skills/iphone-duo.md covers what resizing alone misses.