axiom-accessibility
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance,…
Use when the user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration.
Claude Code
$ npx -y skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass --agent claude-code
Codex
$ npx skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass -a codex -y
Cursor
$ npx skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass -a cursor -y
Gemini CLI
$ npx skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass -a gemini-cli -y
GitHub Copilot
$ npx skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass -a github-copilot -y
OpenCode
$ npx skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass -a opencode -y
Windsurf
$ npx skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass -a windsurf -y
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/*`
Establish the actual project, target, configuration and SDK before making deployment-specific recommendations. Discover both `project.pbxproj` and JSON5 `project.xcproj` at any depth, excluding dependency/cache directories. Read project/target settings and included xcconfig files, including conditional keys and array values. Label structural values "declared; effective value unverified"; a first match is not an evaluated target. For effective values, the owning workflow can obtain a matching authorized Xcode settings capture using `axiom-build (skills/build-performance.md)`, "Project selection and effective settings". Do not launch Xcode under file-read-only scope. Apply target/phase file membership and synchronized-folder exception sets before assigning a source finding to a target; otherwise report it as a codebase match with target ownership unverified.
Glob: **/*.swift, **/*.xcconfig, **/*.plist, **/project.pbxproj, **/project.xcproj 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:
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.
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance,…
Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation…
Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs…
Use when the user mentions Swift performance audit, code optimization, or performance review — ARC issues, allocation patterns,…
Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues — expensive bodies,…
Use when the user mentions flaky tests, tests that pass locally but fail in CI, race conditions in tests, or needs to diagnose…
Decompile Android APK, XAPK, JAR, and AAR files using jadx or Fernflower/Vineflower. Reverse engineer Android apps, extract HTTP…