Axiom axiom-integration
Use when integrating ANY iOS system feature - Siri, Shortcuts, widgets, IAP, localization, privacy, alarms, calendar, reminders, contacts, background tasks, push notifications, timers. Covers App Intents, WidgetKit, StoreKit, EventKit, Contacts.
git clone https://github.com/CharlesWiltgen/Axiom
T=$(mktemp -d) && git clone --depth=1 https://github.com/CharlesWiltgen/Axiom "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude-plugin/plugins/axiom/skills/axiom-integration" ~/.claude/skills/charleswiltgen-axiom-axiom-integration && rm -rf "$T"
.claude-plugin/plugins/axiom/skills/axiom-integration/SKILL.mdiOS System Integration
You MUST use this skill for ANY iOS system integration including Siri, Shortcuts, widgets, in-app purchases, background tasks, push notifications, and more.
Quick Reference
| Symptom / Task | Reference |
|---|---|
| Siri, App Intents, entity queries | See |
| App Shortcuts, phrases, Spotlight | See |
| App discoverability strategy | See |
| Core Spotlight indexing | See |
| Widgets, Live Activities, Control Center | See |
| Widget/Live Activity API reference | See |
| In-app purchases, subscriptions | See |
| StoreKit 2 API reference | See |
| Calendar events, reminders (EventKit) | See |
| EventKit API reference | See |
| Contacts, contact picker | See |
| Contacts API reference | See |
| Localization, String Catalogs | See |
| Apple terminology matching, glossary, pseudolocalization, TMS | See |
| Privacy manifests, permissions UX | See |
| AlarmKit (iOS 26+) | See |
| Timer patterns, scheduling | See |
| Timer API reference | See |
| Background tasks, BGTaskScheduler | See |
| Background task debugging | See |
| Background task API reference | See |
| Push notifications, APNs | See |
| Push notification debugging | See |
| Push notification API reference | See |
Decision Tree
digraph integration { start [label="Integration task" shape=ellipse]; what [label="Which system feature?" shape=diamond]; start -> what; what -> "skills/app-intents-ref.md" [label="Siri / App Intents"]; what -> "skills/app-shortcuts-ref.md" [label="Shortcuts / phrases"]; what -> "skills/app-discoverability.md" [label="discoverability\nstrategy"]; what -> "skills/extensions-widgets.md" [label="widgets / Live Activities\n/ Control Center"]; what -> "skills/in-app-purchases.md" [label="IAP / subscriptions"]; what -> "skills/eventkit.md" [label="calendar / reminders"]; what -> "skills/contacts.md" [label="contacts"]; what -> "skills/localization.md" [label="localization"]; what -> "skills/privacy-ux.md" [label="privacy / permissions"]; what -> "skills/alarmkit-ref.md" [label="alarms (iOS 26+)"]; what -> "skills/timer-patterns.md" [label="timers"]; what -> "skills/background-processing.md" [label="background tasks"]; what -> "skills/push-notifications.md" [label="push notifications"]; }
- Siri / App Intents / entity queries? →
skills/app-intents-ref.md - App Shortcuts / phrases? →
skills/app-shortcuts-ref.md - App discoverability / Spotlight strategy? →
,skills/app-discoverability.mdskills/core-spotlight-ref.md - Widgets / Live Activities / Control Center? →
,skills/extensions-widgets.mdskills/extensions-widgets-ref.md - In-app purchases / StoreKit? →
,skills/in-app-purchases.mdskills/storekit-ref.md - Calendar / reminders / EventKit? →
,skills/eventkit.mdskills/eventkit-ref.md - Contacts / contact picker? →
,skills/contacts.mdskills/contacts-ref.md - Localization mechanics (String Catalogs, plurals, RTL)? →
8a. Localization research (Apple terminology, glossary, pseudolocalization, TMS)? →skills/localization.mdskills/localization-research-ref.md - Privacy / permissions? →
skills/privacy-ux.md - Alarms (iOS 26+)? →
skills/alarmkit-ref.md - Timers? →
,skills/timer-patterns.mdskills/timer-patterns-ref.md - Background tasks / BGTaskScheduler? →
,skills/background-processing.md
,skills/background-processing-diag.mdskills/background-processing-ref.md - Push notifications? →
,skills/push-notifications.md
,skills/push-notifications-diag.mdskills/push-notifications-ref.md - Want IAP audit? → Launch
agentiap-auditor - Want full IAP implementation? → Launch
agentiap-implementation - Camera / photos / audio / haptics / ShazamKit? → Use
insteadaxiom-media
Cross-Domain Routing
Widget + data sync (widget not showing updated data):
- Widget timeline not refreshing → stay here (extensions-widgets)
- SwiftData/Core Data not shared with extension → also invoke axiom-data (App Groups)
Live Activity + push notification:
- ActivityKit push token setup → stay here (extensions-widgets)
- Push delivery failures → also invoke axiom-networking (networking-diag)
- Entitlements/certificates → also invoke axiom-build
Push + background processing (silent push not triggering background work):
- Push payload and delivery → stay here (push-notifications-diag)
- BGTaskScheduler execution → stay here (background-processing)
Calendar/Contacts + data sync:
- EventKit/Contacts data issues → stay here
- Shared data with widget via App Groups → also invoke axiom-data
watchOS surfaces
- Complications + Smart Stack widgets → See axiom-watchos (skills/smart-stack-and-complications.md)
- Live Activities on Apple Watch → See axiom-watchos (skills/controls-and-live-activities.md)
Conflict Resolution
integration vs axiom-build: When system features fail with entitlement/certificate errors:
- Use axiom-build for signing and provisioning issues
- Use integration for API usage and permission patterns
integration vs axiom-data: When widgets or extensions can't access shared data:
- App Groups and shared containers → axiom-data
- Widget timeline, Live Activity updates → integration
integration vs axiom-media: When media features overlap with system features:
- Camera/photo/audio/haptics code → axiom-media
- Privacy manifests for camera/microphone → stay here (privacy-ux)
- Background audio mode → stay here (background-processing)
Anti-Rationalization
| Thought | Reality |
|---|---|
| "App Intents are just a protocol conformance" | App Intents have parameter validation, entity queries, and background execution. |
| "Widgets are simple, I've done them before" | Widgets have timeline, interactivity, and Live Activity patterns that evolve yearly. |
| "Localization is just String Catalogs" | Xcode 26 has type-safe localization, generated symbols, and #bundle macro. |
| "Push notifications are just a payload and a token" | Token lifecycle, Focus levels, service extension gotchas cause 80% of push bugs. |
| "Just request full Calendar access" | Most apps only need to add events — EventKitUI does that with zero permissions. |
| "I'll use CNContactStore directly for picking" | CNContactPickerViewController needs no authorization and shows all contacts. |
Example Invocations
User: "How do I add Siri support?" → Read:
skills/app-intents-ref.md
User: "My widget isn't updating" → Read:
skills/extensions-widgets.md
User: "Implement in-app purchases with StoreKit 2" → Read:
skills/in-app-purchases.md
User: "How do I implement push notifications?" → Read:
skills/push-notifications.md
User: "Push notifications work in dev but not production" → Read:
skills/push-notifications-diag.md
User: "My background task never runs" → Read:
skills/background-processing-diag.md
User: "How do I add an event to the user's calendar?" → Read:
skills/eventkit.md
User: "How do I let users pick a contact?" → Read:
skills/contacts.md
User: "Review my in-app purchase implementation" → Launch:
iap-auditor agent