mcpField
A
axiom-integration

axiom-integration

github.com/charleswiltgen開発1.2k1.3k 回インストール今日更新
リポジトリ

axiom-integration について

axiom-integration は Claude Code 向けの iOS システム連携スキルです。App Intents、ウィジェット、購入、通知、バックグラウンドタスクなどの分野別ガイドへ案内します。

主な機能

  1. 01App Intents と Siri のリファレンス
  2. 02ウィジェットと Live Activities のガイド
  3. 03StoreKit とアプリ内課金の情報
  4. 04EventKit と Contacts のリファレンス
  5. 05通知とバックグラウンドタスクのガイド

活用シーン

  1. 01Siri や App Shortcuts の対応追加
  2. 02ウィジェットや Live Activities の実装
  3. 03アプリ内課金フローの構築
  4. 04プッシュ通知やバックグラウンドタスクの調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-integration

インストール後、Claude Code で/axiom-integrationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

skills/
accessorysetupkit-ref.md
accessorysetupkit.md
alarmkit-ref.md
app-discoverability.md
app-intents-ref.md
app-schemas-ref.md
app-shortcuts-ref.md
background-assets-ref.md
background-assets.md
background-processing-diag.md
background-processing-ref.md
background-processing.md
callkit-livecommunicationkit-ref.md
callkit-livecommunicationkit.md
contacts-ref.md
contacts.md
core-spotlight-ref.md
eventkit-ref.md
eventkit.md
extensions-widgets-ref.md
extensions-widgets.md
iap-auditor.md
in-app-purchases.md
live-activities-ref.md
live-activities.md
local-push-connectivity.md
localization-research-ref.md
localization.md
privacy-ux.md
push-notifications-diag.md

詳細

iOS システム連携

Siri、Shortcuts、ウィジェット、アプリ内課金、バックグラウンドタスク、プッシュ通知など、iOS システムとの連携には必ずこのスキルを使用してください。

Axiom エージェントを起動できませんか? このルーターからエージェントに案内された場合は、その手順をインラインで実行してください。MCP 経由では axiom_get_agent がその手順を返します。それ以外の場合は、以下のファイルを読み取ってください。必要なのはファイル検索と読み取りだけです。

ここで利用可能:skills/iap-auditor.md。 別のスイートに配置:axiom-security/skills/security-privacy-scanner.md。

ほかのエージェントについても、MCP 経由では axiom_get_agent がその手順を返します。そのエージェントの xclog、xcsym、xcprof の手順を、それぞれ axiom_xclog_*、axiom_xcsym_*、axiom_xcprof_* ツールで実行してください。それ以外の場合は、Axiom のスキルから skills/<agent>.md を検索してください。該当するファイルがなければ、このスイートのスキルを使い、PATH 上にある Axiom ツールを利用して、自分で作業してください。

クイックリファレンス

症状/タスク参照先
Siri、App Intents、エンティティクエリ(オーディオアプリ → skills/siri-audio.md)skills/app-intents-ref.md を参照してください
オーディオアプリでの Siri 再生(「MyApp で X を再生」)、.audio.* スキーマ、AudioSearch、INPlayMediaIntentskills/siri-audio.md を参照してください
オーディオスキーマのメンバー、パラメーター、列挙ケース、ビルドエラー、SiriKit メディアの設定と認証skills/siri-audio-ref.md を参照してください
任意のスキーマドメインにおける必須パラメーター、プロパティ、列挙ケース、戻り値の型、非推奨のスキーマ、Missing required parameter/property などのスキーマビルドエラーskills/app-schemas-ref.md を参照してください
メモ、ToDo、リストアプリと Siri — SiriKit Lists/Notes(INAddTasksIntent、INCreateNoteIntent は 27 で非推奨)、.notes.*/.reminders.* スキーマ、watchOSskills/siri-notes-reminders.md を参照してください
Siri のオーディオ再生が失敗する — 「再生できません」、「Siri でのサポートが追加されていません」、アプリを開いている間だけ動作する、結果が重複するskills/siri-audio-diag.md を参照してください
App Shortcuts、フレーズ、Spotlightskills/app-shortcuts-ref.md を参照してください
アプリの発見可能性に関する戦略skills/app-discoverability.md を参照してください
Core Spotlight のインデックス作成skills/core-spotlight-ref.md を参照してください
アプリコンテンツに対する LLM 検索、SpotlightSearchToolskills/core-spotlight-ref.md を参照してください
ウィジェット、コントロールセンターのコントロールskills/extensions-widgets.md を参照してください
ウィジェット API リファレンスskills/extensions-widgets-ref.md を参照してください
Live Activities、Dynamic Island、プッシュによる開始、ブロードキャストskills/live-activities.md を参照してください
Live Activities/ActivityKit API リファレンスskills/live-activities-ref.md を参照してください
Apple Pay(物理的な商品、サービス、寄付)代わりに axiom-payments を使用してください
アプリ内購入、サブスクリプションskills/in-app-purchases.md を参照してください
StoreKit 2 API リファレンスskills/storekit-ref.md を参照してください
コミットメント課金プラン、サブスクリプションバンドル/スイート、グループ/ボリュームサブスクリプション、継続利用向けオファー、オファーコードskills/storekit-ref.md を参照してください
ゲーム内コンテンツ(Unity プラグイン、アセットパック+IAP)skills/in-app-purchases.md、skills/background-assets.md を参照してください
システムのカレンダーおよびリマインダーのストア(EventKit)skills/eventkit.md を参照してください
EventKit API リファレンスskills/eventkit-ref.md を参照してください
連絡先、連絡先ピッカーskills/contacts.md を参照してください
Contacts API リファレンスskills/contacts-ref.md を参照してください
ローカライズ、String Catalogsskills/localization.md を参照してください
Apple 用語との一致、用語集、疑似ローカライズ、TMSskills/localization-research-ref.md を参照してください
プライバシーマニフェスト、権限に関する UXskills/privacy-ux.md を参照してください
Bluetooth/Wi-Fi アクセサリのペアリング(AccessorySetupKit、iOS 18 以降)skills/accessorysetupkit.md を参照してください
AccessorySetupKit API(ディスクリプターフィールド、イベント、認証設定フロー)skills/accessorysetupkit-ref.md を参照してください
ペアリング済みアクセサリまでの距離/方向の測定(Bluetooth Channel Sounding、iOS 27)skills/accessorysetupkit-ref.md(パート 7)を参照してください
気象データ、予報、帰属表示(WeatherKit)skills/weatherkit.md を参照してください
VoIP 通話、CallKit、VoIP プッシュ、発信者 ID/ブロックskills/callkit-livecommunicationkit.md を参照してください
CallKit/LiveCommunicationKit/IdentityLookup API リファレンスskills/callkit-livecommunicationkit-ref.md を参照してください
SharePlay、GroupActivities、共有セッション、空間 Personasskills/shareplay.md を参照してください
GroupActivities API リファレンス(GroupSession、メッセンジャー、ジャーナル)skills/shareplay-ref.md を参照してください
SharePlay の協調オーディオ/ビデオ再生代わりに axiom-media(skills/shareplay-playback.md)を使用してください
メッセージングの会話に対する提案アクション(SuggestedActionsView、com.apple.developer.suggested-actions エンタイトルメント、OS27)代わりに axiom-ai(skills/suggested-actions.md)を使用してください — Apple Intelligence を基盤としており、エンタイトルメント/機能は統合の一部です
AlarmKit(iOS 26 以降)skills/alarmkit-ref.md を参照してください
タイマーのパターン、スケジュール設定skills/timer-patterns.md を参照してください
タイマー API リファレンスskills/timer-patterns-ref.md を参照してください
バックグラウンドタスク、BGTaskSchedulerskills/background-processing.md を参照してください
バックグラウンドタスクのデバッグskills/background-processing-diag.md を参照してください
バックグラウンドタスク API リファレンスskills/background-processing-ref.md を参照してください
Background Assets(大容量コンテンツの配信、FM アダプターの配布、Apple ホスト型とサーバーホスト型)skills/background-assets.md を参照してください
Background Assets API リファレンス(ローカライズされたアセットパック、Steam 変換を含む)skills/background-assets-ref.md を参照してください
オンデマンドリソースの移行(27 で非推奨)skills/background-assets.md を参照してください
プッシュ通知、APNsskills/push-notifications.md を参照してください
プッシュ通知のデバッグskills/push-notifications-diag.md を参照してください
プッシュ通知 API リファレンスskills/push-notifications-ref.md を参照してください
制限付き/ローカルネットワークでの APNs を使わないプッシュ(Local Push Connectivity、NEAppPushProvider、MCX iOS27)skills/local-push-connectivity.md を参照してください

意思決定ツリー

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)"];
}
  1. Siri/App Intents/エンティティクエリ? → skills/app-intents-ref.md 1a. オーディオアプリとSiri — 「MyAppでXを再生」、Audioスキーマドメイン、AudioSearch、SiriKitのINPlayMediaIntent? → skills/siri-audio.md;正確な形式はskills/siri-audio-ref.md;Siriで再生されない場合はskills/siri-audio-diag.md 1b. @AppIntent(schema:)/@AppEntity(schema:)/@AppEnum(schema:)のいずれかを採用する場合、またはスキーマのビルドエラーが発生した場合? → skills/app-schemas-ref.md(各ドメインで必須となる形式;SiriKit Lists/Notesからの移行は1c) 1c. メモ/リスト/To DoアプリとSiri、またはSiriKit Lists/Notesの非推奨警告? → skills/siri-notes-reminders.md
  2. App Shortcuts/フレーズ? → skills/app-shortcuts-ref.md
  3. アプリの見つけやすさ/Spotlightの戦略? → skills/app-discoverability.md、skills/core-spotlight-ref.md 3a. アプリのインデックスに対するLLM検索(SpotlightSearchTool、LanguageModelSessionのツール呼び出し)? → skills/core-spotlight-ref.md
  4. ウィジェット/コントロールセンターのコントロール? → skills/extensions-widgets.md、skills/extensions-widgets-ref.md 4a. Live Activities/Dynamic Island/プッシュによる開始/ブロードキャスト? → skills/live-activities.md、skills/live-activities-ref.md
  5. アプリ内課金/StoreKit? → skills/in-app-purchases.md、skills/storekit-ref.md 5a. サブスクリプションの課金プラン(12か月契約)、バンドル/スイート、グループ/ボリューム購入、継続利用のオファー、オファーコードの利用? → skills/storekit-ref.md
  6. システムのカレンダーまたはリマインダーのストア(EventKit)? → skills/eventkit.md、skills/eventkit-ref.md。独自アプリのリマインダーやメモでSiriを使う場合は1c
  7. 連絡先/連絡先ピッカー? → skills/contacts.md、skills/contacts-ref.md
  8. ローカライズの仕組み(String Catalog、複数形、RTL)? → skills/localization.md 8a. ローカライズの調査(Appleの用語、用語集、疑似ローカライズ、TMS)? → skills/localization-research-ref.md
  9. プライバシー/権限? → skills/privacy-ux.md
  10. アラーム(iOS 26以降)? → skills/alarmkit-ref.md 10a. Bluetooth/Wi-Fiアクセサリのペアリング(iOS 18以降)? → skills/accessorysetupkit.md 10b. 気象データ/予報/帰属表示(WeatherKit)? → skills/weatherkit.md 10c. VoIP通話/CallKit/VoIPプッシュ/発信者ID/着信拒否? → skills/callkit-livecommunicationkit.md
  11. タイマー? → skills/timer-patterns.md、skills/timer-patterns-ref.md
  12. バックグラウンドタスク/BGTaskScheduler? → skills/background-processing.md、skills/background-processing-diag.md、skills/background-processing-ref.md 12a. 大容量アセットの配信(ゲームパック、ローカライズ済みアセットパック、MLモデル、Foundation Modelsアダプタ、ODRの移行)? → skills/background-assets.md、skills/background-assets-ref.md
  13. プッシュ通知? → skills/push-notifications.md、skills/push-notifications-diag.md、skills/push-notifications-ref.md 13a. インターネット接続のないネットワークでのプッシュ/通話、またはMCXセルラーのスライスを介したPTT? → skills/local-push-connectivity.md
  14. IAPの監査を希望しますか? → iap-auditorエージェントを起動
  15. IAPの完全な実装を希望しますか? → iap-implementationエージェントを起動
  16. カメラ/写真/オーディオ/触覚/ShazamKit? → 代わりにaxiom-mediaを使用してください

クロスドメインルーティング

ウィジェット+データ同期(ウィジェットに更新されたデータが表示されない):

  • ウィジェットのタイムラインが更新されない → ここにとどまります(extensions-widgets)
  • SwiftData/Core Data が拡張機能と共有されていない → axiom-data も呼び出します(App Groups)

Siri+オーディオ再生(「MyApp で X を再生して」「一時停止して」「この曲は何?」):

  • オーディオスキーマ、AudioSearch の解決、SiriKit INPlayMediaIntent → ここにとどまります(siri-audio)
  • プレーヤー、「再生中」セッション、リモートコマンド、「再生中」のコンテンツ上の appEntityIdentifiers → axiom-media も呼び出します(skills/now-playing.md)

App Intents+セキュリティ(ロック画面のインテントのリスク、Siri 経由のプロンプトインジェクション):

  • インテント/スキーマの API サーフェス → ここにとどまります(app-intents-ref)
  • 脅威モデリング、authenticationPolicy によるゲーティング、スキーマのリスクメタデータ → axiom-security も呼び出します(skills/agentic-security.md)

Live Activity+プッシュ通知:

  • ActivityKit のプッシュトークン/ブロードキャストの設定 → ここにとどまります(live-activities)
  • プッシュ配信の失敗 → axiom-networking も呼び出します(networking-diag)
  • エンタイトルメント/証明書 → axiom-build も呼び出します

VoIP プッシュ+CallKit(VoIP アプリが終了する/プッシュが届かなくなる):

  • VoIP プッシュでは CallKit または LiveCommunicationKit に通話を報告する必要があります → ここにとどまります(callkit-livecommunicationkit、Part 1)
  • PushKit トークンと APNs 配信の比較 → ここにとどまります(APNs との対比については push-notifications)
  • 通話音声が無音/誤った経路に送られる → axiom-media も呼び出します(AVAudioSession カテゴリ)

プッシュ+バックグラウンド処理(サイレントプッシュでバックグラウンド処理が開始されない):

  • プッシュペイロードと配信 → ここにとどまります(push-notifications-diag)
  • BGTaskScheduler の実行 → ここにとどまります(background-processing)

ゲーム内コンテンツ(StoreKit+Background Assets、Unity プラグイン):

  • アセットパック、IAP の仕組み、支払いシート、モックサーバー → ここにとどまります(background-assets、in-app-purchases)
  • ゲーム入力、レンダリング、ゲーム側のパフォーマンス → axiom-games / axiom-graphics も呼び出します

カレンダー/連絡先+データ同期:

  • EventKit/Contacts のデータに関する問題 → ここにとどまります
  • App Groups を使ったウィジェットとのデータ共有 → axiom-data も呼び出します
watchOS のサーフェス
  • コンプリケーション+Smart Stack ウィジェット → axiom-watchos を参照(skills/smart-stack-and-complications.md)
  • Apple Watch 上の Live Activities → axiom-watchos を参照(skills/controls-and-live-activities.md)

競合の解決

integration と axiom-build:システム機能がエンタイトルメント/証明書エラーで動作しない場合:

  • 署名とプロビジョニングの問題には axiom-build を使用します
  • API の使用方法と権限のパターンには integration を使用します

integration と axiom-data:ウィジェットまたは拡張機能から共有データにアクセスできない場合:

  • App Groups と共有コンテナ → axiom-data
  • 特に、ウィジェット/拡張機能/Live Activity と共有する GRDB/SQLite データベース → axiom-data を参照(skills/grdb-app-groups.md)
  • ウィジェットのタイムライン、Live Activity の更新 → integration

integration と axiom-media:メディア機能がシステム機能と重複する場合:

  • カメラ/写真/オーディオ/触覚のコード → axiom-media
  • カメラ/マイクのプライバシーマニフェスト → ここにとどまります(privacy-ux)
  • バックグラウンドオーディオモード → ここにとどまります(background-processing)

誤った思い込み

思い込み実際
「App Intents は単なるプロトコル準拠です」App Intents には、パラメーターの検証、エンティティのクエリ、バックグラウンド実行があります。
「ウィジェットは簡単です。以前にも作ったことがあります」ウィジェットには、毎年進化するタイムライン、インタラクティブ機能、Live Activity のパターンがあります。
「ローカライズは String Catalogs だけです」Xcode 26 には、型安全なローカライズ、生成されるシンボル、#bundle マクロがあります。
「プッシュ通知はペイロードとトークンだけです」トークンのライフサイクル、Focus のレベル、Service Extension の落とし穴が、プッシュ通知のバグの 80% を引き起こします。
「アセットをバンドルすれば簡単です」アプリバンドルには大きすぎるアセットをバンドルすると、初回インストール時のサイズが増大し、アップデートのたびにそのコストが発生します。Background Assets は App Store のインストール進捗との連携に対応しています。また、FM アダプターはそもそもバンドルできません。skills/background-assets.md を参照してください。
「アセットのダウンロードには URLSession を使います」URLSession は App Store のインストール進捗、充電状態を考慮したスケジューリング、アプリごとの割り当て量と連携できず、Apple がホストするアセットパックにもアクセスできません。サポートされている経路は Background Assets です。
「On-Demand Resources は今でも問題なく使えます」NSBundleResourceRequest ファミリー全体は 27 SDK で非推奨です(「代わりに Background Assets を使用してください」)。ODR タグをアセットパックに移行してください。skills/background-assets.md を参照してください。
「Calendar へのフルアクセスをリクエストすればよいだけです」ほとんどのアプリではイベントの追加だけが必要です。EventKitUI なら、権限なしで追加できます。
「SharePlay は参加者間の単なるメッセージチャネルです」GroupSession は Sendable ではなく、監視は Combine のみで、途中参加者向けの差分は @Published の willSet のタイミングに依存します。これを @Observable に移行すると、キャッチアップが気づかないうちに壊れます。
「SharePlay セッションを開始した人がホストです」ホストはいません。すべての参加者は対等であり、フレームワークには所有者や順番交代の概念がありません。関連する制御は lifetimePolicy のみで、アクティビティに属します。
「メッセンジャーは 1 つで、メッセージごとに信頼性の高低を選べばよいです」deliveryMode は初期化時に固定される let であり、モードを受け取る send のオーバーロードはありません。複数のプロトコルを混在させるには、GroupSessionMessenger のインスタンスが 2 つ必要です。
「Bluetooth の権限をリクエストしてアクセサリをスキャンします」AccessorySetupKit(iOS 18 以降)なら、広範な Bluetooth の許可ダイアログを表示せず、ワンタップでペアリングでき、対象を限定した BT と Wi-Fi へのアクセスが許可されます。skills/accessorysetupkit.md を参照してください。
「VoIP プッシュを処理してから、準備ができた時点で通話を報告します」報告が必要なプッシュについて、完了前に CallKit または LiveCommunicationKit に通話を報告しないと、iOS はアプリを終了し、VoIP プッシュの配信を停止します。iOS 26.4 以降では、PushKit のメタデータデリゲートから渡されるプッシュは、mustReport が false の場合にこの対象外となります。まず報告し、その後で取得してください。skills/callkit-livecommunicationkit.md を参照してください。
「このネットワークにはインターネットがないので、バックグラウンドで独自のソケットを開いたままにします」iOS はアプリを一時停止し、ソケットは切断されます。Local Push Connectivity は、まさにこの用途のためにシステム管理のプロバイダー拡張機能を実行します。skills/local-push-connectivity.md を参照してください。
「通話が接続されたらオーディオセッションを有効にします」オーディオセッションを管理するのは CallKit です。provider(_:didActivate:) 内でのみ有効にしてください。そうしないと、音声が出なかったり、誤った経路に送られたりします。skills/callkit-livecommunicationkit.md を参照してください。
「連絡先の選択には CNContactStore を直接使います」CNContactPickerViewController には権限が不要で、すべての連絡先が表示されます。

呼び出し例

ユーザー:「Siri に対応するにはどうすればよいですか?」 → 読み込み:skills/app-intents-ref.md

ユーザー:「ウィジェットが更新されません」 → 読み込み:skills/extensions-widgets.md

ユーザー:「ライブアクティビティが更新されません」/「ダイナミックアイランドを追加するにはどうすればよいですか?」/「何千ものライブアクティビティにスコアを配信する」 → 読み込み:skills/live-activities.md

ユーザー:「StoreKit 2 でアプリ内課金を実装する」 → 読み込み:skills/in-app-purchases.md

ユーザー:「12 か月の契約期間付きの月額プランを提供する」/「チーム向けにサブスクリプションのライセンスを販売する」 → 読み込み:skills/storekit-ref.md

ユーザー:「プレイヤーの言語に合わせてレベルパックだけを配信する」/「Steam の depot をアセットパックに変換する」 → 読み込み:skills/background-assets-ref.md

ユーザー:「デバイス上のモデルに、アプリのコンテンツに関する質問へ回答させる」 → 読み込み:skills/core-spotlight-ref.md

ユーザー:「プッシュ通知を実装するにはどうすればよいですか?」 → 読み込み:skills/push-notifications.md

ユーザー:「プッシュ通知が開発環境では機能しますが、本番環境では機能しません」 → 読み込み:skills/push-notifications-diag.md

ユーザー:「インターネットに接続できない船内/病院のネットワークでも、アプリが通話を受信できる必要がある」/「ミッションクリティカルな 5G スライス上でプッシュ・トゥ・トークを行う」 → 読み込み:skills/local-push-connectivity.md

ユーザー:「バックグラウンドタスクが一度も実行されません」 → 読み込み:skills/background-processing-diag.md

ユーザー:「ユーザーのカレンダーにイベントを追加するにはどうすればよいですか?」 → 読み込み:skills/eventkit.md

ユーザー:「ユーザーが連絡先を選べるようにするにはどうすればよいですか?」 → 読み込み:skills/contacts.md

ユーザー:「許可を求めるプロンプトなしで Bluetooth アクセサリをペアリングするにはどうすればよいですか?」 → 読み込み:skills/accessorysetupkit.md

ユーザー:「WeatherKit で天気予報を表示するにはどうすればよいですか?」/「天気アプリが却下されたのはなぜですか?」 → 読み込み:skills/weatherkit.md

ユーザー:「VoIP アプリが強制終了されます」/「CallKit の着信を処理するにはどうすればよいですか?」/「迷惑電話の発信者をブロックするにはどうすればよいですか?」 → 読み込み:skills/callkit-livecommunicationkit.md

ユーザー:「アプリ内課金の実装をレビューしてください」 → 起動:iap-auditor エージェント

コメント