
axiom-integration
Use when work crosses into Apple's system surfaces rather than your own UI or data — Siri and Shortcuts, widgets, Live Activities, in-app purchase, localization, privacy prompts, alarms, timers, calendar, reminders, contacts, SharePlay, VoIP and CallKit, accessory pairing, weather, Spotlight indexing, background tasks, Background Assets, push, or push on networks with no internet.
- Installs
- 1.3K
- Last 24h
- +10
- Trending rank
- #8711
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-integration- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads axiom-integration automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
iOS 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.
<!-- AXIOM_AUDITOR_INLINE_BEGIN — auto-maintained by scripts/build-inlined-auditors.ts; do not hand-edit --><!-- AXIOM_AUDITOR_INLINE_END -->Can't launch Axiom agents? Where this router sends you to an agent, follow its procedure inline. Over MCP,
axiom_get_agentreturns it; elsewhere, read its file below, which needs only file search and read.Available here:
skills/iap-auditor.md. Homed in another suite:axiom-security/skills/security-privacy-scanner.md.For any other agent, over MCP
axiom_get_agentreturns it too; run its xclog, xcsym and xcprof steps with theaxiom_xclog_*,axiom_xcsym_*andaxiom_xcprof_*tools. Elsewhere, search Axiom's skills forskills/<agent>.md; if there is none, do that work yourself with this suite's skills, using any Axiom tool on yourPATH.
Quick Reference
| Symptom / Task | Reference |
|---|---|
Siri, App Intents, entity queries (audio apps → skills/siri-audio.md) | See skills/app-intents-ref.md |
Siri playback in an audio app ("play X in MyApp"), .audio.* schemas, AudioSearch, INPlayMediaIntent | See skills/siri-audio.md |
| Audio schema members, parameters, enum cases, build errors; SiriKit media setup and authorization | See skills/siri-audio-ref.md |
Any schema domain's required parameters, properties, enum cases, return types, deprecated schemas; Missing required parameter/property and other schema build errors | See skills/app-schemas-ref.md |
Notes, to-do, or list app and Siri — SiriKit Lists/Notes (INAddTasksIntent, INCreateNoteIntent) deprecated in 27, .notes.*/.reminders.* schemas, watchOS | See skills/siri-notes-reminders.md |
| Siri audio playback fails — "I can't play that", "hasn't added support for that with Siri", works only while the app is open, duplicate results | See skills/siri-audio-diag.md |
| App Shortcuts, phrases, Spotlight | See skills/app-shortcuts-ref.md |
| App discoverability strategy | See skills/app-discoverability.md |
| Core Spotlight indexing | See skills/core-spotlight-ref.md |
| LLM search over app content, SpotlightSearchTool | See skills/core-spotlight-ref.md |
| Widgets, Control Center controls | See skills/extensions-widgets.md |
| Widget API reference | See skills/extensions-widgets-ref.md |
| Live Activities, Dynamic Island, push-to-start, broadcast | See skills/live-activities.md |
| Live Activities / ActivityKit API reference | See skills/live-activities-ref.md |
| Apple Pay (physical goods, services, donations) | Use axiom-payments instead |
| In-app purchases, subscriptions | See skills/in-app-purchases.md |
| StoreKit 2 API reference | See skills/storekit-ref.md |
| Commitment billing plans, subscription bundles/suites, group/volume subscriptions, retention offers, offer codes | See skills/storekit-ref.md |
| In-game content (Unity plug-ins, asset packs + IAP) | See skills/in-app-purchases.md, skills/background-assets.md |
| The system Calendar and Reminders stores (EventKit) | See skills/eventkit.md |
| EventKit API reference | See skills/eventkit-ref.md |
| Contacts, contact picker | See skills/contacts.md |
| Contacts API reference | See skills/contacts-ref.md |
| Localization, String Catalogs | See skills/localization.md |
| Apple terminology matching, glossary, pseudolocalization, TMS | See skills/localization-research-ref.md |
| Privacy manifests, permissions UX | See skills/privacy-ux.md |
| Bluetooth/Wi-Fi accessory pairing (AccessorySetupKit, iOS 18+) | See skills/accessorysetupkit.md |
| AccessorySetupKit API (descriptor fields, events, auth-settings flow) | See skills/accessorysetupkit-ref.md |
| Measure distance/direction to a paired accessory (Bluetooth Channel Sounding, iOS 27) | See skills/accessorysetupkit-ref.md (Part 7) |
| Weather data, forecasts, attribution (WeatherKit) | See skills/weatherkit.md |
| VoIP calls, CallKit, VoIP push, caller ID/blocking | See skills/callkit-livecommunicationkit.md |
| CallKit / LiveCommunicationKit / IdentityLookup API reference | See skills/callkit-livecommunicationkit-ref.md |
| SharePlay, GroupActivities, shared sessions, spatial Personas | See skills/shareplay.md |
| GroupActivities API reference (GroupSession, messenger, journal) | See skills/shareplay-ref.md |
| SharePlay coordinated audio/video playback | Use axiom-media (skills/shareplay-playback.md) instead |
Suggested actions for a messaging conversation (SuggestedActionsView, com.apple.developer.suggested-actions entitlement, OS27) | Use axiom-ai (skills/suggested-actions.md) instead — Apple-Intelligence-backed; the entitlement/capability is the integration half |
| AlarmKit (iOS 26+) | See skills/alarmkit-ref.md |
| Timer patterns, scheduling | See skills/timer-patterns.md |
| Timer API reference | See skills/timer-patterns-ref.md |
| Background tasks, BGTaskScheduler | See skills/background-processing.md |
| Background task debugging | See skills/background-processing-diag.md |
| Background task API reference | See skills/background-processing-ref.md |
| Background Assets (large content delivery, FM adapter shipping, Apple-hosted vs server-hosted) | See skills/background-assets.md |
| Background Assets API reference (incl. localized asset packs, Steam conversion) | See skills/background-assets-ref.md |
| On-Demand Resources migration (deprecated in 27) | See skills/background-assets.md |
| Push notifications, APNs | See skills/push-notifications.md |
| Push notification debugging | See skills/push-notifications-diag.md |
| Push notification API reference | See skills/push-notifications-ref.md |
Push without APNs on restricted/local networks (Local Push Connectivity, NEAppPushProvider, MCX iOS27) | See skills/local-push-connectivity.md |
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/siri-audio.md" [label="Siri playback in\nan audio app"];
what -> "skills/app-schemas-ref.md" [label="schema domain\nshape / build error"];
what -> "skills/siri-notes-reminders.md" [label="Siri in a notes /\nlist / to-do app"];
what -> "skills/app-shortcuts-ref.md" [label="Shortcuts / phrases"];
what -> "skills/app-discoverability.md" [label="discoverability\nstrategy"];
what -> "skills/extensions-widgets.md" [label="widgets /\nControl Center"];
what -> "skills/live-activities.md" [label="Live Activities /\nDynamic Island"];
what -> "skills/in-app-purchases.md" [label="IAP / subscriptions"];
what -> "skills/eventkit.md" [label="system Calendar /\nReminders store"];
what -> "skills/contacts.md" [label="contacts"];
what -> "skills/localization.md" [label="localization"];
what -> "skills/privacy-ux.md" [label="privacy / permissions"];
what -> "skills/accessorysetupkit.md" [label="accessory pairing\n(Bluetooth/Wi-Fi)"];
what -> "skills/weatherkit.md" [label="weather / forecasts"];
what -> "skills/callkit-livecommunicationkit.md" [label="VoIP calls /\ncaller ID"];
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/background-assets.md" [label="large asset delivery /\nFM adapter shipping"];
what -> "skills/push-notifications.md" [label="push notifications"];
what -> "skills/local-push-connectivity.md" [label="push without APNs\n(local network / MCX)"];
}
- Siri / App Intents / entity queries? →
skills/app-intents-ref.md1a. Audio app and Siri — "play X in MyApp", Audio schema domain,AudioSearch, SiriKitINPlayMediaIntent? →skills/siri-audio.md; exact shapesskills/siri-audio-ref.md; Siri won't playskills/siri-audio-diag.md1b. Adopting any@AppIntent(schema:)/@AppEntity(schema:)/@AppEnum(schema:), or a schema build error? →skills/app-schemas-ref.md(every domain's required shape; migrating SiriKit Lists/Notes → 1c) 1c. Notes/lists/to-do app and Siri, or SiriKit Lists/Notes deprecation warnings? →skills/siri-notes-reminders.md - App Shortcuts / phrases? →
skills/app-shortcuts-ref.md - App discoverability / Spotlight strategy? →
skills/app-discoverability.md,skills/core-spotlight-ref.md3a. LLM search over your app's index (SpotlightSearchTool, LanguageModelSession tool-calling)? →skills/core-spotlight-ref.md - Widgets / Control Center controls? →
skills/extensions-widgets.md,skills/extensions-widgets-ref.md4a. Live Activities / Dynamic Island / push-to-start / broadcast? →skills/live-activities.md,skills/live-activities-ref.md - In-app purchases / StoreKit? →
skills/in-app-purchases.md,skills/storekit-ref.md5a. Subscription billing plans (12-month commitment), bundles/suites, group/volume purchasing, retention offers, offer-code redemption? →skills/storekit-ref.md - The system Calendar or Reminders store (EventKit)? →
skills/eventkit.md,skills/eventkit-ref.md. Siri for your own app's reminders or notes → 1c - Contacts / contact picker? →
skills/contacts.md,skills/contacts-ref.md - Localization mechanics (String Catalogs, plurals, RTL)? →
skills/localization.md8a. Localization research (Apple terminology, glossary, pseudolocalization, TMS)? →skills/localization-research-ref.md - Privacy / permissions? →
skills/privacy-ux.md - Alarms (iOS 26+)? →
skills/alarmkit-ref.md10a. Bluetooth/Wi-Fi accessory pairing (iOS 18+)? →skills/accessorysetupkit.md10b. Weather data / forecasts / attribution (WeatherKit)? →skills/weatherkit.md10c. VoIP calls / CallKit / VoIP push / caller ID / blocking? →skills/callkit-livecommunicationkit.md - Timers? →
skills/timer-patterns.md,skills/timer-patterns-ref.md - Background tasks / BGTaskScheduler? →
skills/background-processing.md,skills/background-processing-diag.md,skills/background-processing-ref.md12a. Large asset delivery (game packs, localized asset packs, ML models, Foundation Models adapters, ODR migration)? →skills/background-assets.md,skills/background-assets-ref.md - Push notifications? →
skills/push-notifications.md,skills/push-notifications-diag.md,skills/push-notifications-ref.md13a. Push/calls on networks without internet, or PTT over an MCX cellular slice? →skills/local-push-connectivity.md - Want IAP audit? → Launch
iap-auditoragent - Want full IAP implementation? → Launch
iap-implementationagent - Camera / photos / audio / haptics / ShazamKit? → Use
axiom-mediainstead
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)
Siri + audio playback ("play X in MyApp", "pause", "what song is this?"):
- Audio schemas,
AudioSearchresolution, SiriKitINPlayMediaIntent→ stay here (siri-audio) - Player, Now Playing session, remote commands,
appEntityIdentifierson now-playing content → also invoke axiom-media (skills/now-playing.md)
App Intents + security (lock-screen intent risk, prompt injection via Siri):
- Intent/schema API surface → stay here (app-intents-ref)
- Threat modeling, authenticationPolicy gating, schema risk metadata → also invoke axiom-security (skills/agentic-security.md)
Live Activity + push notification:
- ActivityKit push token / broadcast setup → stay here (live-activities)
- Push delivery failures → also invoke axiom-networking (networking-diag)
- Entitlements/certificates → also invoke axiom-build
VoIP push + CallKit (VoIP app killed / pushes stopped arriving):
- VoIP push must report a call — to CallKit or LiveCommunicationKit → stay here (callkit-livecommunicationkit, Part 1)
- PushKit token vs APNs delivery → stay here (push-notifications for the APNs contrast)
- Call audio silent/misrouted → also invoke axiom-media (AVAudioSession category)
Push + background processing (silent push not triggering background work):
- Push payload and delivery → stay here (push-notifications-diag)
- BGTaskScheduler execution → stay here (background-processing)
In-game content (StoreKit + Background Assets, Unity plug-ins):
- Asset packs, IAP mechanics, payment sheet, mock server → stay here (background-assets, in-app-purchases)
- Game input, rendering, game-side performance → also invoke axiom-games / axiom-graphics
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
- Specifically: GRDB/SQLite database shared with widget/extension/Live Activity → See axiom-data (skills/grdb-app-groups.md)
- 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. |
| "I'll just bundle the assets, it's simpler" | Bundling assets too large for the app bundle inflates first-install size and pays the cost every update. Background Assets ships with App Store install-progress integration; FM adapters can't be bundled at all. See skills/background-assets.md. |
| "I'll use URLSession for the asset download" | URLSession doesn't integrate with App Store install progress, charging-aware scheduling, or per-app quota — and can't reach Apple-hosted asset packs at all. Background Assets is the supported channel. |
| "On-Demand Resources still works fine" | The entire NSBundleResourceRequest family is deprecated in the 27 SDKs ("Use Background Assets instead"). Migrate ODR tags to asset packs. See skills/background-assets.md. |
| "Just request full Calendar access" | Most apps only need to add events — EventKitUI does that with zero permissions. |
| "SharePlay is just a message channel between participants" | GroupSession is not Sendable, observation is Combine-only, and the late-joiner delta depends on @Published willSet timing. Migrating it to @Observable silently breaks catch-up. |
| "The person who started the SharePlay session is the host" | There is no host. Every participant is equal — the framework has no owner or turn-taking concept. lifetimePolicy is the only related control, and it lives on the activity. |
| "One messenger, I'll pick reliable or unreliable per message" | deliveryMode is a let fixed at init and no send overload takes a mode. Mixed protocols need two GroupSessionMessenger instances. |
| "I'll request Bluetooth permission and scan for the accessory" | AccessorySetupKit (iOS 18+) pairs in one tap with no broad Bluetooth prompt and grants scoped BT+Wi-Fi access. See skills/accessorysetupkit.md. |
| "I'll process the VoIP push, then report the call when ready" | iOS terminates your app and stops delivering VoIP pushes if a push that required a report doesn't report a call — to CallKit or LiveCommunicationKit — before completion. From iOS 26.4 PushKit's metadata delegate exempts the pushes it hands you with mustReport false. Report first, fetch after. See skills/callkit-livecommunicationkit.md. |
| "No internet on this network, so I'll keep my own socket open in the background" | iOS suspends the app and the socket dies. Local Push Connectivity runs a system-managed provider extension for exactly this. See skills/local-push-connectivity.md. |
| "I'll activate the audio session when the call connects" | CallKit owns the audio session — activate only in provider(_:didActivate:) or audio is silent/misrouted. See skills/callkit-livecommunicationkit.md. |
| "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: "My Live Activity won't update" / "How do I add a Dynamic Island?" / "Broadcast scores to thousands of Live Activities"
→ Read: skills/live-activities.md
User: "Implement in-app purchases with StoreKit 2"
→ Read: skills/in-app-purchases.md
User: "Offer a monthly plan with a 12-month commitment" / "Sell subscription seats to teams"
→ Read: skills/storekit-ref.md
User: "Deliver level packs only in the player's language" / "Convert my Steam depots to asset packs"
→ Read: skills/background-assets-ref.md
User: "Let the on-device model answer questions about my app's content"
→ Read: skills/core-spotlight-ref.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: "Our app must receive calls on a ship / hospital network with no internet" / "Push to Talk over a Mission Critical 5G slice"
→ Read: skills/local-push-connectivity.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: "How do I pair a Bluetooth accessory without the permission prompt?"
→ Read: skills/accessorysetupkit.md
User: "How do I show the weather forecast with WeatherKit?" / "Why was my weather app rejected?"
→ Read: skills/weatherkit.md
User: "My VoIP app gets killed" / "How do I handle CallKit incoming calls?" / "How do I block spam callers?"
→ Read: skills/callkit-livecommunicationkit.md
User: "Review my in-app purchase implementation"
→ Launch: iap-auditor agent
FAQ
What does the axiom-integration skill do?
Use when work crosses into Apple's system surfaces rather than your own UI or data — Siri and Shortcuts, widgets, Live Activities, in-app purchase, localization, privacy prompts, alarms, timers, calendar, reminders, contacts, SharePlay, VoIP and CallKit, accessory pairing, weather, Spotlight indexing, background tasks, Background Assets, push, or push on networks with no internet.
How do I install axiom-integration?
Run npx skills add https://github.com/charleswiltgen/axiom --skill axiom-integration in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/axiom-integration/ (personal) or .claude/skills/axiom-integration/ (project).
Which AI agents can use axiom-integration?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is axiom-integration safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains axiom-integration?
It is published by charleswiltgen in charleswiltgen/axiom. It has 1,278 recorded installs.
More from charleswiltgen/axiom
axiom-vision
charleswiltgen/axiom
Use when implementing ANY computer vision feature — image analysis, pose detection, person segmentation, subject lifting, text recognition, barcode scanning.
axiom-swiftui
charleswiltgen/axiom
Use when building, fixing, or improving ANY SwiftUI UI — views, navigation, layout, animations, gestures, debugging, iOS 26 features, iPhone Duo, view-level performance, feature architecture.
axiom-networking
charleswiltgen/axiom
Use when implementing or debugging ANY network connection, API call, or socket in an Apple app. Covers URLSession, Network.framework, NetworkConnection, connection diagnostics.
axiom-apple-docs
charleswiltgen/axiom
Use when you need Apple's own documentation or a Swift compiler diagnostic explained rather than recalled.
axiom-shipping
charleswiltgen/axiom
Use when preparing an app for App Store submission, handling rejections or appeals, managing App Store Connect and Xcode Cloud, or triaging TestFlight/Sentry crash corpora. Covers checklists, metadata, privacy manifests, age ratings, export compliance.
axiom-xcode-mcp
charleswiltgen/axiom
Use when connecting to Xcode via MCP, using xcrun mcpbridge or the headless mcp-server, or working with ANY Xcode MCP tool (XcodeRead, BuildProject, RunSomeTests, RenderPreview). Covers setup, tool reference, workflows, troubleshooting.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.