iOS System Integration Router
You MUST use this skill for ANY iOS system integration including Siri, Shortcuts, widgets, in-app purchases, camera, photo library, audio, axiom-haptics, and more.
When to Use
Use this router for:
-
Siri & Shortcuts (App Intents)
-
Apple Intelligence integration
-
Widgets & Live Activities
-
In-app purchases (StoreKit)
-
Camera capture (AVCaptureSession)
-
Photo library & pickers (PHPicker, PhotosPicker)
-
Audio & haptics
-
Localization
-
Privacy & permissions
-
Spotlight search
-
App discoverability
-
Alarms (AlarmKit)
-
Background processing (BGTaskScheduler)
-
Location services (Core Location)
-
Maps & MapKit (Map, MKMapView, annotations, search, directions)
Cross-Domain Routing
When integration issues overlap with other domains:
Widget + data sync issues (widget not showing updated data):
-
Widget timeline not refreshing → stay in ios-integration (extensions-widgets)
-
SwiftData/Core Data not shared with extension → also invoke ios-data — App Groups and shared containers are data-layer concerns
-
Background refresh timing → also invoke ios-concurrency if async patterns are involved
Live Activity + push notification issues:
-
ActivityKit push token setup, Live Activity not updating → stay in ios-integration (extensions-widgets)
-
Push notification delivery failures, APNs errors → also invoke ios-networking (networking-diag)
-
Entitlements/certificates misconfigured → also invoke ios-build (xcode-debugging)
Camera + permissions + privacy:
-
Camera code issues → stay in ios-integration (camera-capture)
-
Privacy manifest or Info.plist issues → stay in ios-integration (privacy-ux)
-
Build/entitlement errors → also invoke ios-build
MapKit + location issues (user location not showing on map):
-
Map display, annotations, search → stay in ios-integration (mapkit)
-
Location authorization, monitoring, background location → also invoke ios-performance or ios-integration (core-location)
-
Map performance with many annotations → also invoke ios-performance if profiling needed
Push notification + Live Activity issues (push not updating Live Activity):
-
Push transport, APNs headers, token management → stay in ios-integration (push-notifications, push-notifications-diag)
-
ActivityKit UI, attributes, Dynamic Island → also invoke ios-integration (extensions-widgets)
-
Background execution timing → also invoke ios-concurrency if async patterns are involved
Push notification + background processing (silent push not triggering background work):
-
Push payload and delivery → stay in ios-integration (push-notifications-diag)
-
Background execution, BGTaskScheduler → also invoke ios-integration (background-processing)
Routing Logic
Apple Intelligence & Siri
App Intents → /skill axiom-app-intents-ref
App Shortcuts → /skill axiom-app-shortcuts-ref
App discoverability → /skill axiom-app-discoverability
Core Spotlight → /skill axiom-core-spotlight-ref
Widgets & Extensions
Widgets/Live Activities → /skill axiom-extensions-widgets
Widget reference → /skill axiom-extensions-widgets-ref
In-App Purchases
IAP implementation → /skill axiom-in-app-purchases
StoreKit 2 reference → /skill axiom-storekit-ref
IAP audit → Launch iap-auditor agent (missing transaction.finish(), weak receipt validation, missing restore, subscription tracking) IAP full implementation → Launch iap-implementation agent (StoreKit config, StoreManager, transaction handling, restore purchases)
Camera & Photos
Camera capture implementation → /skill axiom-camera-capture
Camera API reference → /skill axiom-camera-capture-ref
Camera debugging → /skill axiom-camera-capture-diag
Camera audit → Launch camera-auditor agent or /axiom:audit camera (deprecated APIs, missing interruption handlers, threading violations, permission anti-patterns) Photo pickers & library → /skill axiom-photo-library
Photo library API reference → /skill axiom-photo-library-ref
Audio & Haptics
Audio (AVFoundation) → /skill axiom-avfoundation-ref
Haptics → /skill axiom-haptics
Now Playing → /skill axiom-now-playing
CarPlay Now Playing → /skill axiom-now-playing-carplay
MusicKit integration → /skill axiom-now-playing-musickit
Localization & Privacy
Localization → /skill axiom-localization
Privacy UX → /skill axiom-privacy-ux
Alarms
AlarmKit (iOS 26+) → /skill axiom-alarmkit-ref
-
Alarm scheduling and authorization
-
Live Activity integration
-
SwiftUI alarm management views
Background Processing
BGTaskScheduler implementation → /skill axiom-background-processing
Background task debugging → /skill axiom-background-processing-diag
Background task API reference → /skill axiom-background-processing-ref
Push Notifications
Push notification implementation → /skill axiom-push-notifications
Push notification API reference → /skill axiom-push-notifications-ref
Push notification debugging → /skill axiom-push-notifications-diag
Location Services
Implementation patterns → /skill axiom-core-location
API reference → /skill axiom-core-location-ref
Debugging location issues → /skill axiom-core-location-diag
Maps & MapKit
MapKit implementation patterns → /skill axiom-mapkit
-
SwiftUI Map vs MKMapView decision
-
Annotation strategies by count
-
Search and directions
-
8 anti-patterns
MapKit API reference → /skill axiom-mapkit-ref
-
SwiftUI Map API
-
MKMapView delegates
-
MKLocalSearch, MKDirections, Look Around
-
Platform availability matrix
MapKit troubleshooting → /skill axiom-mapkit-diag
-
Annotations not appearing
-
Region jumping / infinite loops
-
Clustering issues
-
Search failures
Decision Tree
-
App Intents / Siri / Apple Intelligence? → app-intents-ref
-
App Shortcuts? → app-shortcuts-ref
-
App discoverability / Spotlight? → app-discoverability, core-spotlight-ref
-
Widgets / Live Activities? → extensions-widgets, extensions-widgets-ref
-
In-app purchases / StoreKit? → in-app-purchases, storekit-ref
-
Want IAP audit (missing finish, receipt validation)? → iap-auditor (Agent)
-
Want full IAP implementation? → iap-implementation (Agent)
-
Camera capture? → camera-capture (patterns), camera-capture-diag (debugging), camera-capture-ref (API)
-
Want camera code audit? → camera-auditor (Agent)
-
Photo pickers / library? → photo-library (patterns), photo-library-ref (API)
-
Audio / AVFoundation? → avfoundation-ref
-
Now Playing? → now-playing, now-playing-carplay, now-playing-musickit
-
Haptics? → haptics
-
Localization? → localization
-
Privacy / permissions? → privacy-ux
-
Background processing? → background-processing (patterns), background-processing-diag (debugging), background-processing-ref (API)
-
Push notification implementation, APNs, or remote notification handling? → push-notifications (patterns), push-notifications-ref (API), push-notifications-diag (debugging)
-
Need APNs payload format, headers, or JWT auth details? → push-notifications-ref
-
Push notifications not arriving, token issues, or delivery failures? → push-notifications-diag
-
Location services? → core-location (patterns), core-location-diag (debugging), core-location-ref (API)
-
Maps / MapKit / annotations / directions? → mapkit (patterns), mapkit-ref (API), mapkit-diag (debugging)
-
Alarms / AlarmKit? → alarmkit-ref
Anti-Rationalization
Thought Reality
"App Intents are just a protocol conformance" App Intents have parameter validation, entity queries, and background execution. app-intents-ref covers all.
"Widgets are simple, I've done them before" Widgets have timeline, interactivity, and Live Activity patterns that evolve yearly. extensions-widgets is current.
"I'll add haptics with a simple API call" Haptic design has patterns for each interaction type. haptics skill matches HIG guidelines.
"Localization is just String Catalogs" Xcode 26 has type-safe localization, generated symbols, and #bundle macro. localization skill is current.
"Camera capture is just AVCaptureSession setup" Camera has interruption handlers, rotation, and threading requirements. camera-capture covers all.
"I'll just use MKMapView, I know it already" SwiftUI Map is 10x less code for standard map features. mapkit has the decision tree.
"MapKit search doesn't work, I'll use Google Maps SDK" MapKit search needs region bias and resultTypes configuration. mapkit-diag fixes this in 5 minutes.
"Alarm scheduling is just UNNotificationRequest" AlarmKit (iOS 26+) has dedicated alarm UI, authorization, and Live Activity integration. alarmkit-ref covers the framework.
"Push notifications are just a payload and a token" Token lifecycle, Focus interruption levels, service extension gotchas, and sandbox/production mismatch cause 80% of push bugs. push-notifications covers all.
Example Invocations
User: "How do I add Siri support for my app?" → Invoke: /skill axiom-app-intents-ref
User: "My widget isn't updating" → Invoke: /skill axiom-extensions-widgets
User: "My widget isn't showing updated SwiftData content" → Invoke: /skill axiom-extensions-widgets
- also invoke ios-data router for App Group/shared container setup
User: "My Live Activity isn't updating and I'm getting push notification errors" → Invoke: /skill axiom-extensions-widgets for ActivityKit + also invoke ios-networking router for push delivery
User: "Implement in-app purchases with StoreKit 2" → Invoke: /skill axiom-in-app-purchases
User: "How do I localize my app strings?" → Invoke: /skill axiom-localization
User: "Implement haptic feedback for button taps" → Invoke: /skill axiom-haptics
User: "How do I set up a camera preview?" → Invoke: /skill axiom-camera-capture
User: "Camera freezes when I get a phone call" → Invoke: /skill axiom-camera-capture-diag
User: "What is RotationCoordinator?" → Invoke: /skill axiom-camera-capture-ref
User: "How do I let users pick photos in SwiftUI?" → Invoke: /skill axiom-photo-library
User: "User can't see their photos after granting access" → Invoke: /skill axiom-photo-library
User: "How do I save a photo to the camera roll?" → Invoke: /skill axiom-photo-library
User: "My background task never runs" → Invoke: /skill axiom-background-processing-diag
User: "How do I implement BGTaskScheduler?" → Invoke: /skill axiom-background-processing
User: "What's the difference between BGAppRefreshTask and BGProcessingTask?" → Invoke: /skill axiom-background-processing-ref
User: "How do I implement geofencing?" → Invoke: /skill axiom-core-location
User: "Location updates not working in background" → Invoke: /skill axiom-core-location-diag
User: "What is CLServiceSession?" → Invoke: /skill axiom-core-location-ref
User: "Review my in-app purchase implementation" → Invoke: iap-auditor agent
User: "Implement in-app purchases for my app" → Invoke: iap-implementation agent
User: "Check my camera code for issues" → Invoke: camera-auditor agent
User: "How do I add a map to my SwiftUI app?" → Invoke: /skill axiom-mapkit
User: "My annotations aren't showing on the map" → Invoke: /skill axiom-mapkit-diag
User: "How do I implement search with autocomplete on a map?" → Invoke: /skill axiom-mapkit-ref
User: "My map region keeps jumping when I scroll" → Invoke: /skill axiom-mapkit-diag
User: "How do I add directions between two points?" → Invoke: /skill axiom-mapkit-ref
User: "How do I schedule alarms in iOS 26?" → Invoke: /skill axiom-alarmkit-ref
User: "How do I integrate AlarmKit with Live Activities?" → Invoke: /skill axiom-alarmkit-ref
User: "How do I implement push notifications?" → Invoke: /skill axiom-push-notifications
User: "What APNs headers do I need?" → Invoke: /skill axiom-push-notifications-ref
User: "Push notifications work in dev but not production" → Invoke: /skill axiom-push-notifications-diag
User: "My Live Activity isn't updating via push" → Invoke: /skill axiom-push-notifications-diag
- /skill axiom-extensions-widgets
User: "Should I use FCM or direct APNs?" → Invoke: /skill axiom-push-notifications
User: "How do I use pushTokenUpdates for Live Activities?" → Invoke: /skill axiom-extensions-widgets (ActivityKit API owns push token observation)
User: "How do I test push notifications without a real server?" → Invoke: /skill axiom-push-notifications-ref (command-line testing section)