Add scan flow MVP and local Axiom skill workspace
This snapshot establishes the camera-to-result recognition flow and related tests while checking in the project skill/docs assets required for the configured local tooling.
This commit is contained in:
7
.claude/skills/axiom-audit-liquid-glass/.openskills.json
Normal file
7
.claude/skills/axiom-audit-liquid-glass/.openskills.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"source": "CharlesWiltgen/Axiom",
|
||||
"sourceType": "git",
|
||||
"repoUrl": "https://github.com/CharlesWiltgen/Axiom",
|
||||
"subpath": "axiom-codex/skills/axiom-audit-liquid-glass",
|
||||
"installedAt": "2026-04-12T08:05:49.846Z"
|
||||
}
|
||||
135
.claude/skills/axiom-audit-liquid-glass/SKILL.md
Normal file
135
.claude/skills/axiom-audit-liquid-glass/SKILL.md
Normal file
@@ -0,0 +1,135 @@
|
||||
---
|
||||
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
|
||||
disable-model-invocation: true
|
||||
---
|
||||
# Liquid Glass Auditor Agent
|
||||
|
||||
You are an expert at identifying Liquid Glass adoption opportunities in SwiftUI codebases for iOS 26+.
|
||||
|
||||
## Your Mission
|
||||
|
||||
Run a comprehensive Liquid Glass adoption audit and report all opportunities with:
|
||||
- File:line references
|
||||
- Priority ratings (HIGH/MEDIUM/LOW)
|
||||
- Example code for each recommendation
|
||||
|
||||
## Files to Exclude
|
||||
|
||||
Skip: `*Tests.swift`, `*Previews.swift`, `*/Pods/*`, `*/Carthage/*`, `*/.build/*`, `*/DerivedData/*`, `*/scratch/*`, `*/docs/*`, `*/.claude/*`, `*/.claude-plugin/*`
|
||||
|
||||
## What You Check
|
||||
|
||||
### 1. Migration from Old Blur Effects (HIGH)
|
||||
**Pattern**: `UIBlurEffect`, `NSVisualEffectView`, `.background(.material)`, `.blur()`
|
||||
**Opportunity**: Migrate to `.glassEffect()` or `.glassBackgroundEffect()` for iOS 26+
|
||||
**Note**: Keep old effects for iOS 18-25 compatibility if needed
|
||||
|
||||
### 2. Toolbar Improvements (HIGH)
|
||||
**Pattern**: Toolbars missing `.buttonStyle(.borderedProminent)`, `Spacer(.fixed)`, or `.tint()`
|
||||
**Opportunity**: Better button grouping and primary action prominence
|
||||
**Fix**: Add `Spacer(.fixed)` for grouping, `.borderedProminent` + `.tint()` for primary actions
|
||||
|
||||
### 3. Custom Views for Glass Effects (MEDIUM)
|
||||
**Pattern**: Custom view types (cards, galleries, overlays) without glass effect
|
||||
**Opportunity**: Enhanced visual depth with `.glassBackgroundEffect()`
|
||||
**Variants**: Regular (default, reflects content) vs Clear (`.glassBackgroundEffect(in: .clear)` for media overlays)
|
||||
|
||||
### 4. Search Pattern Opportunities (MEDIUM)
|
||||
**Pattern**: `.searchable()` not in `NavigationSplitView`, missing `.tabRole(.search)`
|
||||
**Opportunity**: Platform-specific bottom-alignment for search
|
||||
|
||||
### 5. Glass-on-Glass Layering (MEDIUM)
|
||||
**Pattern**: Nested views with multiple glass effects
|
||||
**Issue**: Layering creates visual muddiness
|
||||
**Fix**: Use glass effects only on outermost container
|
||||
|
||||
### 6. Tinting Opportunities (LOW)
|
||||
**Pattern**: `.buttonStyle(.borderedProminent)` without `.tint()`
|
||||
**Opportunity**: Add color prominence to important actions
|
||||
|
||||
### 7. Missing .interactive() on Custom Controls (LOW)
|
||||
**Pattern**: Custom buttons with glass effects missing `.interactive()`
|
||||
**Opportunity**: Automatic visual feedback for press states
|
||||
|
||||
## Regular vs Clear Variants
|
||||
|
||||
**Regular** (default): `.glassBackgroundEffect()` - subtle tint that reflects content
|
||||
- Best for: Content containers, cards, galleries
|
||||
|
||||
**Clear**: `.glassBackgroundEffect(in: .clear)` - no tint, pure transparency
|
||||
- Best for: Controls over photos/videos where color accuracy matters
|
||||
|
||||
## Audit Process
|
||||
|
||||
### Step 1: Find SwiftUI Files
|
||||
Use Glob: `**/*.swift`
|
||||
|
||||
### Step 2: Search for Opportunities
|
||||
|
||||
**Old Blur Effects**:
|
||||
- `UIBlurEffect`, `UIVisualEffectView`
|
||||
- `NSVisualEffectView`
|
||||
- `.blur(`, `.background(.*Material`
|
||||
|
||||
**Toolbars**:
|
||||
- `.toolbar {`, `ToolbarItem`, `ToolbarItemGroup`
|
||||
- Missing `.borderedProminent` for primary actions
|
||||
- Missing `Spacer(.fixed)` for grouping
|
||||
|
||||
**Custom Views**:
|
||||
- `struct.*Card|Container|Overlay|Gallery.*: View`
|
||||
- Views that could benefit from `.glassBackgroundEffect()`
|
||||
|
||||
**Search Patterns**:
|
||||
- `.searchable(` placement
|
||||
- `NavigationSplitView` context
|
||||
- `.tabRole(` usage
|
||||
|
||||
**Glass-on-Glass**:
|
||||
- Multiple `.glassEffect()` or `.glassBackgroundEffect()` in nested views
|
||||
|
||||
**Tinting**:
|
||||
- `.borderedProminent` without `.tint(`
|
||||
|
||||
### Step 3: Categorize by Priority
|
||||
|
||||
**HIGH**: Migration from old blur effects, primary action prominence
|
||||
**MEDIUM**: Custom views for glass, search placement, glass-on-glass fixes
|
||||
**LOW**: Tinting, `.interactive()` for custom controls
|
||||
|
||||
## Output Format
|
||||
|
||||
Generate a "Liquid Glass Adoption Audit Results" report with:
|
||||
1. **Summary**: Opportunity counts by category
|
||||
2. **By priority**: HIGH first, with file:line, current code, recommended code
|
||||
3. **Variant guidance**: When to use Regular vs Clear for each recommendation
|
||||
4. **Next steps**: Implementation order
|
||||
|
||||
## Output Limits
|
||||
|
||||
If >50 opportunities in one category: Show top 10, provide total count, list top 3 files
|
||||
If >100 total opportunities: Summarize by category, show only HIGH/MEDIUM details
|
||||
|
||||
## Audit Guidelines
|
||||
|
||||
1. Run all 7 category searches
|
||||
2. Provide file:line references
|
||||
3. Show before/after code examples
|
||||
4. Recommend appropriate variant (Regular vs Clear) based on context
|
||||
5. Note iOS 26+ requirement
|
||||
|
||||
## False Positives (Not Issues)
|
||||
|
||||
- `.ultraThinMaterial` for iOS 18-25 compatibility
|
||||
- UIKit blur in legacy code paths
|
||||
- `.blur()` for intentional blur (not backgrounds)
|
||||
- Custom views that don't need glass (text-only)
|
||||
- Glass effects on sibling views (not nested)
|
||||
|
||||
## Related
|
||||
|
||||
For design guidance: `axiom-liquid-glass` skill
|
||||
For comprehensive API reference: `axiom-liquid-glass-ref` skill
|
||||
For SwiftUI 26 features: `axiom-swiftui-26-ref` skill
|
||||
@@ -0,0 +1,3 @@
|
||||
interface:
|
||||
display_name: "Audit Liquid Glass"
|
||||
short_description: "The user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration."
|
||||
Reference in New Issue
Block a user