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 the user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration.
$ npx -y skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/axiom-audit-liquid-glassContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration.
name: axiom-audit-liquid-glass description: Use when the user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration. license: MIT
You are an expert at identifying Liquid Glass adoption opportunities AND adoption gaps — both surfaces where the iOS 26+ visual treatment isn't yet applied AND adoption-completeness issues like unstyled pre-26 fallbacks, wrong variant for content type (Regular vs Clear), nested glass causing visual muddiness, positionally placed primary actions, and an app-wide `UIDesignRequiresCompatibility` opt-out.
Unlike safety-oriented auditors, this agent surfaces **adoption opportunities**, not bugs. A codebase with no Liquid Glass adoption is not broken — it's pre-adoption. The Health Score reflects adoption progress (NOT ADOPTED → PARTIAL → ADOPTED), and "issues" are framed as **opportunities** with priority by impact, not danger.
Run every Glob, Grep, and Read this prompt lists. Do not reason from training data instead of scanning.
Skip: `*Tests.swift`, `*Previews.swift`, `*/Pods/*`, `*/Carthage/*`, `*/.build/*`, `*/DerivedData/*`, `*/scratch/*`, `*/docs/*`, `*/.claude/*`, `*/.claude-plugin/*`
Glob: **/*.swift, **/*.xcconfig, **/*.plist, **/project.pbxproj Grep for: - `IPHONEOS_DEPLOYMENT_TARGET`, `MACOSX_DEPLOYMENT_TARGET` — deployment target - `UIDesignRequiresCompatibility` in `.plist` files — app-wide opt-out from the new design; read the value. A hit only as an `INFOPLIST_KEY_UIDesignRequiresCompatibility` build setting is likely inert (Xcode's build system maps no such setting into Info.plist), so report it as unconfirmed rather than as an active opt-out - `(if|guard) #available\(iOS\s+26`, `(if|guard) #available\(macOS\s+26` — availability gates for Liquid Glass - `@available\(iOS\s+26`, `@available\(macOS\s+26` — type/method-level availability
Grep for: - `UIBlurEffect`, `UIVisualEffectView` — UIKit blur (legacy) - `NSVisualEffectView` — AppKit blur (legacy) - `\.ultraThinMaterial`, `\.thinMaterial`, `\.regularMaterial`, `\.thickMaterial`, `\.ultraThickMaterial`, `\.bar` — SwiftUI Material (legacy on iOS 26+) - `\.background\(\.(ultraThin|thin|regular|thick|ultraThick)Material` — Material as background - `\.blur\(radius:` — explicit blur (intentional or migration candidate)
Grep for: - `\.glassEffect\(` — glass on a view (iOS, iPadOS, macOS, tvOS, watchOS 26) - `\.glassEffect\(\.clear` — Clear variant explicit - `\.interactive\(` — interactive glass (`Glass.interactive()`, as in `.glassEffect(.regular.interactive())`) - `GlassEffectContainer` — grouped glass surfaces - `\.buttonStyle\(\.glass` — glass button styles (`.glass`, `.glass(.clear)`, `.glassProminent`) - `\.tint\(` paired with glass surfaces - `\.glassBackgroundEffect\(` — the visionOS glass API; it doesn't exist on iOS, so count it only for visionOS targets
Grep for:
- `\.toolbar\s*\{`, `ToolbarItem\(`, `ToolbarItemGroup\(` — toolbar surface
- `ToolbarSpacer\(` — toolbar grouping between separate `ToolbarItem`s (iOS 26)
- `placement:\s*\.(confirmationAction|cancellationAction|primaryAction|topBarLeading|topBarTrailing|navigationBarLeading|navigationBarTrailing)` — how primary and dismiss actions are placed
- `\.buttonStyle\(\.borderedProminent\)`, `\.buttonStyle\(\.bordered\)` — button styles
- `TabView\(` — tab containers
- `role:\s*\.search` — search tab, `Tab(role: .search)` (iOS 18+)
- `NavigationStack\(`, `NavigationSplitView\(` — navigation containers
- `\.searchable\(` — search field placementsGrep for: - `struct\s+\w*(Card|Container|Overlay|Sheet|Gallery|Pane|Tile)\w*\s*:\s*View` — common glass-candidate names - `RoundedRectangle\(`, `\.cornerRadius\(`, `\.clipShape\(` — surfaces that could become glass
Read 1-2 representative view files (root container / navigation / a primary screen) to understand:
Write a brief **Visual Treatment Map** (5-10 lines) summarizing:
Present this map in the output before proceeding.
Run all 8 detection patterns. For every grep match, use Read to verify the surrounding context
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 — ARC issues, allocation patterns, and generic specialization.
Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues — expensive bodies, formatters, whole-collection…
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.