axiom-ios-ui by charleswiltgen/axiom
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-ios-ui任何 iOS UI 工作,包括 SwiftUI、UIKit、布局、导航、动画和设计,您都必须使用此技能。
在以下情况下使用此路由器:
ios-ui 与 ios-performance:当 UI 运行缓慢时(例如,“SwiftUI List 很慢”):
理由:当修复方法是已知的 SwiftUI 模式时,直接跳到 Instruments 会浪费时间。先尝试领域修复,然后再进行性能分析,而不是反过来。
视图不更新 → /skill axiom-swiftui-debugging 导航问题 → /skill axiom-swiftui-nav 性能/卡顿 → /skill axiom-swiftui-performance → → → → → → → → → →
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
/skill axiom-swiftui-layout/skill axiom-swiftui-containers-ref/skill axiom-swiftui-animation-ref/skill axiom-swiftui-gestures/skill axiom-transferable-ref/skill axiom-swiftui-architecture/skill axiom-app-composition/skill axiom-swiftui-search-ref/skill axiom-swiftui-26-ref/skill axiom-uikit-bridgingAuto Layout 冲突 → /skill axiom-auto-layout-debugging 动画时序问题 → /skill axiom-uikit-animation-debugging SwiftUI 嵌入(HostingController、HostingConfiguration) → /skill axiom-uikit-bridging
Liquid Glass 采用 → /skill axiom-liquid-glass SF Symbols(效果、渲染、自定义) → /skill axiom-sf-symbols 设计决策 → /skill axiom-hig 排版 → /skill axiom-typography-ref TextKit/富文本 → /skill axiom-textkit-ref
焦点引擎、遥控器输入、TVUIKit、文本输入 → /skill axiom-tvos
VoiceOver、动态类型 → /skill axiom-accessibility-diag
UI 测试不稳定 → /skill axiom-ui-testing
架构审计 → 启动 swiftui-architecture-auditor 代理(关注点分离、视图中的逻辑、可测试性) 性能扫描 → 启动 swiftui-performance-analyzer 代理或使用 /axiom:audit swiftui-performance(昂贵的视图 body 操作、不必要的更新) 导航审计 → 启动 swiftui-nav-auditor 代理或使用 /axiom:audit swiftui-nav(深度链接缺口、状态恢复、错误的容器) 用户体验流程审计 → 启动 ux-flow-auditor 代理或使用 /axiom:audit ux-flow(死胡同、关闭陷阱、隐藏的行动号召、缺少空/加载/错误状态) Liquid Glass 扫描 → 启动 liquid-glass-auditor 代理或使用 /axiom:audit liquid-glass(采用机会、工具栏改进) TextKit 扫描 → 启动 textkit-auditor 代理或使用 /axiom:audit textkit(TextKit 1 回退、已弃用的字形 API、写作工具)
digraph ios_ui {
start [label="UI issue" shape=ellipse];
is_tvos [label="tvOS?" shape=diamond];
is_swiftui [label="SwiftUI?" shape=diamond];
is_uikit [label="UIKit?" shape=diamond];
is_design [label="Design/guidelines?" shape=diamond];
start -> is_tvos;
is_tvos -> "axiom-tvos" [label="focus, remote, TVUIKit, text input, storage"];
is_tvos -> is_swiftui [label="no"];
is_swiftui -> swiftui_type [label="yes"];
is_swiftui -> is_uikit [label="no"];
is_uikit -> uikit_type [label="yes"];
is_uikit -> is_design [label="no"];
is_design -> design_type [label="yes"];
is_design -> "accessibility-diag" [label="accessibility"];
swiftui_type [label="What's wrong?" shape=diamond];
swiftui_type -> "swiftui-debugging" [label="view not updating"];
swiftui_type -> "swiftui-nav" [label="navigation"];
swiftui_type -> "swiftui-performance" [label="slow/lag"];
swiftui_type -> "swiftui-layout" [label="adaptive layout"];
swiftui_type -> "swiftui-containers-ref" [label="stacks/grids/outlines"];
swiftui_type -> "swiftui-architecture" [label="feature architecture"];
swiftui_type -> "app-composition" [label="app-level (root, auth, scenes)"];
swiftui_type -> "swiftui-animation-ref" [label="animations"];
swiftui_type -> "swiftui-gestures" [label="gestures"];
swiftui_type -> "transferable-ref" [label="drag/drop, sharing, copy/paste"];
swiftui_type -> "swiftui-search-ref" [label="search"];
swiftui_type -> "swiftui-26-ref" [label="iOS 26 features"];
swiftui_type -> "uikit-bridging" [label="UIKit interop"];
swiftui_type -> "ux-flow-audit" [label="UX dead ends, dismiss traps"];
uikit_type [label="UIKit issue?" shape=diamond];
uikit_type -> "auto-layout-debugging" [label="Auto Layout"];
uikit_type -> "uikit-animation-debugging" [label="animations"];
uikit_type -> "uikit-bridging" [label="SwiftUI embedding"];
uikit_type -> "ux-flow-audit" [label="UX dead ends, dismiss traps"];
design_type [label="Design topic?" shape=diamond];
design_type -> "liquid-glass" [label="Liquid Glass"];
design_type -> "sf-symbols" [label="SF Symbols"];
design_type -> "hig" [label="HIG compliance"];
design_type -> "typography-ref" [label="typography"];
design_type -> "textkit-ref" [label="TextKit/rich text"];
}
自动化扫描代理:
| 想法 | 现实 |
|---|---|
| "简单的 SwiftUI 布局,不需要布局技能" | SwiftUI 布局有 12 个陷阱。swiftui-layout 涵盖了所有这些。 |
| "我知道 NavigationStack 如何工作" | 导航涉及状态恢复、深度链接和标识陷阱。swiftui-nav 可以避免 2 小时的调试。 |
| "只是视图不更新,我来调试一下" | 视图更新失败有 4 个根本原因。swiftui-debugging 能在 5 分钟内诊断出来。 |
| "我直接加个 .animation(),稍后再修复" | 动画问题会累积。swiftui-animation-ref 提供了正确的模式。 |
| "这个 UI 很简单,不需要架构" | 即使小功能也能从分离中受益。swiftui-architecture 可以防止重构债务。 |
| "用户体验问题只是润色,我们稍后再修复" | 死胡同和关闭陷阱会导致一星评价。ux-flow-audit 能在几分钟内发现它们。 |
| "我知道 .searchable 如何工作" | 搜索有 6 个陷阱(导航容器、isSearching 层级、建议完成)。swiftui-search-ref 涵盖了所有这些。 |
| "我知道 SF Symbols,它只是 Image(systemName:)" | 4 种渲染模式,12 种以上的效果,3 种 Draw 播放模式,自定义符号创作。sf-symbols 为所有这些提供了决策树。 |
| "拖放只是 .draggable 和 .dropDestination" | UTType 声明、表示顺序、文件生命周期、跨应用传输陷阱。transferable-ref 涵盖了所有这些。 |
| "我直接快速包装一下这个 UIView" | UIViewRepresentable 有生命周期、协调器、尺寸和内存陷阱。uikit-bridging 可以避免 1-2 小时的调试会话。 |
| "tvOS 只是运行在电视上的 iOS" | tvOS 没有持久存储,没有 WebView,有双重焦点系统和两代遥控器。axiom-tvos 涵盖了所有陷阱。 |
用户:"我的 SwiftUI 视图在更改模型时不更新" → 调用:/skill axiom-swiftui-debugging
用户:"如何在我的工具栏中实现 Liquid Glass?" → 调用:/skill axiom-liquid-glass
用户:"NavigationStack 意外弹出" → 调用:/skill axiom-swiftui-nav
用户:"我应该为这个 SwiftUI 应用使用 MVVM 吗?" → 调用:/skill axiom-swiftui-architecture
用户:"如何在登录界面和主屏幕之间切换?" → 调用:/skill axiom-app-composition
用户:"我的应用中的认证状态应该放在哪里?" → 调用:/skill axiom-app-composition
用户:"如何使用 LazyVGrid 创建网格布局?" → 调用:/skill axiom-swiftui-containers-ref
用户:"VStack 和 LazyVStack 有什么区别?" → 调用:/skill axiom-swiftui-containers-ref
用户:"如何使用 OutlineGroup 显示分层数据?" → 调用:/skill axiom-swiftui-containers-ref
用户:"如何向我的 SwiftUI 列表添加搜索功能?" → 调用:/skill axiom-swiftui-search-ref
用户:"我的搜索建议不起作用" → 调用:/skill axiom-swiftui-search-ref
用户:"如何点击时动画显示 SF Symbol?" → 调用:/skill axiom-sf-symbols
用户:"我的自定义符号上的 SF Symbol Draw 动画不起作用" → 调用:/skill axiom-sf-symbols
用户:"我应该为工具栏图标使用哪种渲染模式?" → 调用:/skill axiom-sf-symbols
用户:"如何在 SwiftUI 中使我的模型可拖动?" → 调用:/skill axiom-transferable-ref
用户:"如何使用自定义预览添加 ShareLink?" → 调用:/skill axiom-transferable-ref
用户:"如何在 SwiftUI 中包装 UIKit 视图?" → 调用:/skill axiom-uikit-bridging
用户:"如何在我的 UIKit 应用中嵌入 SwiftUI?" → 调用:/skill axiom-uikit-bridging
用户:"我的 UIViewRepresentable 更新不正确" → 调用:/skill axiom-uikit-bridging
用户:"如何将 UIHostingConfiguration 用于集合视图单元格?" → 调用:/skill axiom-uikit-bridging
用户:"我正在构建一个 tvOS 应用,焦点导航不起作用" → 调用:/skill axiom-tvos
用户:"如何在 tvOS 上处理文本输入?" → 调用:/skill axiom-tvos
用户:"检查我的应用是否存在用户体验死胡同和关闭陷阱" → 调用:ux-flow-auditor 代理
用户:"检查我的 SwiftUI 架构的关注点分离情况" → 调用:swiftui-architecture-auditor 代理
用户:"扫描我的 SwiftUI 视图是否存在性能问题" → 调用:swiftui-performance-analyzer 代理
用户:"审计我的导航是否存在深度链接缺口" → 调用:swiftui-nav-auditor 代理
用户:"检查我的应用是否存在 Liquid Glass 采用机会" → 调用:liquid-glass-auditor 代理
用户:"为什么写作工具没有出现在我的文本视图中?" → 调用:textkit-auditor 代理
每周安装次数
122
代码仓库
GitHub 星标数
601
首次出现
2026 年 1 月 21 日
安全审计
安装于
opencode104
codex101
claude-code98
gemini-cli94
github-copilot90
cursor88
You MUST use this skill for ANY iOS UI work including SwiftUI, UIKit, layout, navigation, animations, and design.
Use this router when working with:
ios-ui vs ios-performance : When UI is slow (e.g., "SwiftUI List slow"):
Rationale : Jumping to Instruments wastes time when the fix is a known SwiftUI pattern. Profile AFTER trying domain fixes, not before.
View not updating → /skill axiom-swiftui-debugging Navigation issues → /skill axiom-swiftui-nav Performance/lag → /skill axiom-swiftui-performance Layout problems → /skill axiom-swiftui-layout Stacks/grids/outlines → /skill axiom-swiftui-containers-ref Animation issues → /skill axiom-swiftui-animation-ref Gesture conflicts → /skill axiom-swiftui-gestures Drag/drop, copy/paste, sharing → /skill axiom-transferable-ref Architecture/testability → /skill axiom-swiftui-architecture App-level composition → /skill axiom-app-composition Search implementation → /skill axiom-swiftui-search-ref iOS 26 features → /skill axiom-swiftui-26-ref UIKit bridging (Representable, HostingController) → /skill axiom-uikit-bridging
Auto Layout conflicts → /skill axiom-auto-layout-debugging Animation timing issues → /skill axiom-uikit-animation-debugging SwiftUI embedding (HostingController, HostingConfiguration) → /skill axiom-uikit-bridging
Liquid Glass adoption → /skill axiom-liquid-glass SF Symbols (effects, rendering, custom) → /skill axiom-sf-symbols Design decisions → /skill axiom-hig Typography → /skill axiom-typography-ref TextKit/rich text → /skill axiom-textkit-ref
Focus Engine, remote input, TVUIKit, text input → /skill axiom-tvos
VoiceOver, Dynamic Type → /skill axiom-accessibility-diag
UI test flakiness → /skill axiom-ui-testing
Architecture audit → Launch swiftui-architecture-auditor agent (separation of concerns, logic in views, testability) Performance scan → Launch swiftui-performance-analyzer agent or /axiom:audit swiftui-performance (expensive view body ops, unnecessary updates) Navigation audit → Launch swiftui-nav-auditor agent or /axiom:audit swiftui-nav (deep link gaps, state restoration, wrong containers) UX flow audit → Launch ux-flow-auditor agent or /axiom:audit ux-flow (dead ends, dismiss traps, buried CTAs, missing empty/loading/error states) Liquid Glass scan → Launch liquid-glass-auditor agent or /axiom:audit liquid-glass (adoption opportunities, toolbar improvements) → Launch agent or (TextKit 1 fallbacks, deprecated glyph APIs, Writing Tools)
digraph ios_ui {
start [label="UI issue" shape=ellipse];
is_tvos [label="tvOS?" shape=diamond];
is_swiftui [label="SwiftUI?" shape=diamond];
is_uikit [label="UIKit?" shape=diamond];
is_design [label="Design/guidelines?" shape=diamond];
start -> is_tvos;
is_tvos -> "axiom-tvos" [label="focus, remote, TVUIKit, text input, storage"];
is_tvos -> is_swiftui [label="no"];
is_swiftui -> swiftui_type [label="yes"];
is_swiftui -> is_uikit [label="no"];
is_uikit -> uikit_type [label="yes"];
is_uikit -> is_design [label="no"];
is_design -> design_type [label="yes"];
is_design -> "accessibility-diag" [label="accessibility"];
swiftui_type [label="What's wrong?" shape=diamond];
swiftui_type -> "swiftui-debugging" [label="view not updating"];
swiftui_type -> "swiftui-nav" [label="navigation"];
swiftui_type -> "swiftui-performance" [label="slow/lag"];
swiftui_type -> "swiftui-layout" [label="adaptive layout"];
swiftui_type -> "swiftui-containers-ref" [label="stacks/grids/outlines"];
swiftui_type -> "swiftui-architecture" [label="feature architecture"];
swiftui_type -> "app-composition" [label="app-level (root, auth, scenes)"];
swiftui_type -> "swiftui-animation-ref" [label="animations"];
swiftui_type -> "swiftui-gestures" [label="gestures"];
swiftui_type -> "transferable-ref" [label="drag/drop, sharing, copy/paste"];
swiftui_type -> "swiftui-search-ref" [label="search"];
swiftui_type -> "swiftui-26-ref" [label="iOS 26 features"];
swiftui_type -> "uikit-bridging" [label="UIKit interop"];
swiftui_type -> "ux-flow-audit" [label="UX dead ends, dismiss traps"];
uikit_type [label="UIKit issue?" shape=diamond];
uikit_type -> "auto-layout-debugging" [label="Auto Layout"];
uikit_type -> "uikit-animation-debugging" [label="animations"];
uikit_type -> "uikit-bridging" [label="SwiftUI embedding"];
uikit_type -> "ux-flow-audit" [label="UX dead ends, dismiss traps"];
design_type [label="Design topic?" shape=diamond];
design_type -> "liquid-glass" [label="Liquid Glass"];
design_type -> "sf-symbols" [label="SF Symbols"];
design_type -> "hig" [label="HIG compliance"];
design_type -> "typography-ref" [label="typography"];
design_type -> "textkit-ref" [label="TextKit/rich text"];
}
Automated scanning agents:
| Thought | Reality |
|---|---|
| "Simple SwiftUI layout, no need for the layout skill" | SwiftUI layout has 12 gotchas. swiftui-layout covers all of them. |
| "I know how NavigationStack works" | Navigation has state restoration, deep linking, and identity traps. swiftui-nav prevents 2-hour debugging. |
| "It's just a view not updating, I'll debug it" | View update failures have 4 root causes. swiftui-debugging diagnoses in 5 min. |
| "I'll just add .animation() and fix later" | Animation issues compound. swiftui-animation-ref has the correct patterns. |
| "This UI is simple, no architecture needed" | Even small features benefit from separation. swiftui-architecture prevents refactoring debt. |
| "UX issues are just polish, we'll fix later" | Dead ends and dismiss traps cause 1-star reviews. ux-flow-audit catches them in minutes. |
| "I know how .searchable works" | Search has 6 gotchas (navigation container, isSearching level, suggestion completion). swiftui-search-ref covers all of them. |
| "I know SF Symbols, it's just Image(systemName:)" | 4 rendering modes, 12+ effects, 3 Draw playback modes, custom symbol authoring. sf-symbols has decision trees for all of them. |
| "Drag and drop is just .draggable and .dropDestination" | UTType declarations, representation ordering, file lifecycle, cross-app transfer gotchas. transferable-ref covers all of them. |
User: "My SwiftUI view isn't updating when I change the model" → Invoke: /skill axiom-swiftui-debugging
User: "How do I implement Liquid Glass in my toolbar?" → Invoke: /skill axiom-liquid-glass
User: "NavigationStack is popping unexpectedly" → Invoke: /skill axiom-swiftui-nav
User: "Should I use MVVM for this SwiftUI app?" → Invoke: /skill axiom-swiftui-architecture
User: "How do I switch between login and main screens?" → Invoke: /skill axiom-app-composition
User: "Where should auth state live in my app?" → Invoke: /skill axiom-app-composition
User: "How do I create a grid layout with LazyVGrid?" → Invoke: /skill axiom-swiftui-containers-ref
User: "What's the difference between VStack and LazyVStack?" → Invoke: /skill axiom-swiftui-containers-ref
User: "How do I display hierarchical data with OutlineGroup?" → Invoke: /skill axiom-swiftui-containers-ref
User: "How do I add search to my SwiftUI list?" → Invoke: /skill axiom-swiftui-search-ref
User: "My search suggestions aren't working" → Invoke: /skill axiom-swiftui-search-ref
User: "How do I animate an SF Symbol when tapped?" → Invoke: /skill axiom-sf-symbols
User: "My SF Symbol Draw animation isn't working on my custom symbol" → Invoke: /skill axiom-sf-symbols
User: "Which rendering mode should I use for my toolbar icons?" → Invoke: /skill axiom-sf-symbols
User: "How do I make my model draggable in SwiftUI?" → Invoke: /skill axiom-transferable-ref
User: "How do I add ShareLink with a custom preview?" → Invoke: /skill axiom-transferable-ref
User: "How do I wrap a UIKit view in SwiftUI?" → Invoke: /skill axiom-uikit-bridging
User: "How do I embed SwiftUI in my UIKit app?" → Invoke: /skill axiom-uikit-bridging
User: "My UIViewRepresentable isn't updating correctly" → Invoke: /skill axiom-uikit-bridging
User: "How do I use UIHostingConfiguration for collection view cells?" → Invoke: /skill axiom-uikit-bridging
User: "I'm building a tvOS app and focus navigation isn't working" → Invoke: /skill axiom-tvos
User: "How do I handle text input on tvOS?" → Invoke: /skill axiom-tvos
User: "Check my app for UX dead ends and dismiss traps" → Invoke: ux-flow-auditor agent
User: "Check my SwiftUI architecture for separation of concerns" → Invoke: swiftui-architecture-auditor agent
User: "Scan my SwiftUI views for performance issues" → Invoke: swiftui-performance-analyzer agent
User: "Audit my navigation for deep link gaps" → Invoke: swiftui-nav-auditor agent
User: "Check my app for Liquid Glass adoption opportunities" → Invoke: liquid-glass-auditor agent
User: "Why isn't Writing Tools appearing in my text view?" → Invoke: textkit-auditor agent
Weekly Installs
122
Repository
GitHub Stars
601
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode104
codex101
claude-code98
gemini-cli94
github-copilot90
cursor88
agentation - AI智能体可视化UI反馈工具,连接人眼与代码的桥梁
5,400 周安装
textkit-auditor/axiom:audit textkit| "I'll just wrap this UIView real quick" | UIViewRepresentable has lifecycle, coordinator, sizing, and memory gotchas. uikit-bridging prevents 1-2 hour debugging sessions. |
| "tvOS is just iOS on a TV" | tvOS has no persistent storage, no WebView, a dual focus system, and two remote generations. axiom-tvos covers all the traps. |