mcpField
A
axiom-ios-data

axiom-ios-data

github.com/charleswiltgenデータ・データベース1.2k201 回インストール今日更新
リポジトリ

axiom-ios-data について

データベース、移行、クラウド同期、ファイル、シリアライズ、安全な保存方法に関する情報を案内する iOS 開発者向けルーターです。作業内容に応じて専門スキルや監査エージェントへ振り分けます。

主な機能

  1. 01保存技術別のスキル案内
  2. 02データベースとスキーマ移行を網羅
  3. 03クラウド同期とファイル保存を案内
  4. 04Codable と JSON の作業先を提示
  5. 05ストレージ監査の選択肢を掲載

活用シーン

  1. 01SwiftData、Core Data、SQLiteData の情報を探す
  2. 02データベースのスキーマ変更や移行に対応
  3. 03CloudKit や iCloud 同期の問題を調査
  4. 04認証情報、ファイル配置、データモデルを点検

インストール

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

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

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

詳細

iOS データと永続化のルーター

データの永続化、データベース、axiom-storage、CloudKit、またはシリアライズに関する作業では、必ずこのスキルを使用してください。

使用する場面

次の作業を行う場合は、このルーターを使用してください。

  • データベース(SwiftData、Core Data、GRDB、SQLiteData)
  • スキーマのマイグレーション
  • CloudKit の同期
  • ファイルストレージ(iCloud Drive、ローカルストレージ)
  • データのシリアライズ(Codable、JSON)
  • ストレージ戦略の決定
  • Keychain/セキュアな認証情報の保存
  • 暗号化、署名、鍵管理(CryptoKit)

ルーティングロジック

SwiftData

SwiftData を使用する場合 → /skill axiom-swiftdata スキーマのマイグレーション → /skill axiom-swiftdata-migration マイグレーションの問題 → /skill axiom-swiftdata-migration-diag Realm からの移行 → /skill axiom-realm-migration-ref SwiftData と SQLiteData の比較 → /skill axiom-sqlitedata-migration

その他のデータベース

GRDB クエリ → /skill axiom-grdb SQLiteData → /skill axiom-sqlitedata SQLiteData の高度な使い方 → /skill axiom-sqlitedata-ref Core Data のパターン → /skill axiom-core-data Core Data の問題 → /skill axiom-core-data-diag

マイグレーション

データベースのマイグレーションの安全性 → /skill axiom-database-migration(重要:データ損失を防止します)

シリアライズ

Codable の問題 → /skill axiom-codable

クラウドストレージ

クラウド同期のパターン → /skill axiom-cloud-sync CloudKit → /skill axiom-cloudkit-ref iCloud Drive → /skill axiom-icloud-drive-ref クラウド同期のエラー → /skill axiom-cloud-sync-diag

Keychain と暗号化

Keychain/セキュアな認証情報の保存 → /skill axiom-keychain Keychain のエラー → /skill axiom-keychain-diag Keychain API リファレンス → /skill axiom-keychain-ref 暗号化/署名/鍵管理 → /skill axiom-cryptokit CryptoKit API リファレンス → /skill axiom-cryptokit-ref

ファイルストレージ

ストレージ戦略 → /skill axiom-storage ストレージの問題 → /skill axiom-storage-diag ストレージ管理 → /skill axiom-storage-management-ref ファイル保護 → /skill axiom-file-protection-ref

tvOS ストレージ

tvOS のデータ永続化 → /skill axiom-tvos(重要:tvOS には永続的なローカルストレージがありません) tvOS と CloudKit → /skill axiom-sqlitedata(推奨:永続ストアとして SyncEngine を使用)

自動スキャン

Core Data の監査 → core-data-auditor エージェントを起動するか、/axiom:audit core-data を実行します(マイグレーションのリスク、スレッド制約、N+1 クエリ、本番データの損失) Codable の監査 → codable-auditor エージェントを起動するか、/axiom:audit codable を実行します(エラーを握りつぶす try?、JSONSerialization、日付の処理) iCloud の監査 → icloud-auditor エージェントを起動するか、/axiom:audit icloud を実行します(エンタイトルメントの確認、ファイルの調整、CloudKit のアンチパターン) ストレージの監査 → storage-auditor エージェントを起動するか、/axiom:audit storage を実行します(ファイル保存場所の誤り、バックアップ除外の設定漏れ、データ損失のリスク) データベーススキーマの監査 → database-schema-auditor エージェントを起動するか、/axiom:audit database-schema を実行します(安全でない ALTER TABLE、DROP 操作、べき等性の欠如、外部キーの誤用) SwiftData の監査 → swiftdata-auditor エージェントを起動するか、/axiom:audit swiftdata を実行します(struct モデル、VersionedSchema の設定漏れ、リレーションシップのデフォルト値、バックグラウンドコンテキストの誤用、N+1 パターン)

判断ツリー

  1. SwiftData? → swiftdata, swiftdata-migration
  2. Core Data? → core-data, core-data-diag
  3. GRDB? → grdb
  4. SQLiteData? → sqlitedata, sqlitedata-ref
  5. スキーマ移行が必要? → database-migration(必ず — データ損失を防止します)
  6. Realm の移行? → realm-migration-ref
  7. SwiftData と SQLiteData の比較? → sqlitedata-migration
  8. クラウド同期のアーキテクチャ? → cloud-sync
  9. CloudKit? → cloudkit-ref
  10. iCloud Drive? → icloud-drive-ref
  11. クラウド同期のエラー? → cloud-sync-diag
  12. Codable/JSON のシリアライズ? → codable
  13. ファイルストレージ戦略? → storage, storage-diag, storage-management-ref
  14. ファイル保護? → file-protection-ref
  15. Keychain/トークン、パスワード、シークレットの安全な保存? → keychain, keychain-diag, keychain-ref
  16. SecItem のエラー(errSecDuplicateItem、errSecItemNotFound、errSecInteractionNotAllowed)? → keychain-diag
  17. 暗号化、署名、Secure Enclave、CryptoKit? → cryptokit, cryptokit-ref
  18. 量子耐性暗号、HPKE、ML-KEM? → cryptokit
  19. Core Data の安全性スキャンを実施しますか? → core-data-auditor(エージェント)
  20. Codable のアンチパターンスキャンを実施しますか? → codable-auditor(エージェント)
  21. iCloud 同期の監査を実施しますか? → icloud-auditor(エージェント)
  22. ストレージの場所の監査を実施しますか? → storage-auditor(エージェント)
  23. データベースのスキーマ/移行の安全性スキャンを実施しますか? → database-schema-auditor(エージェント)
  24. SwiftData コードの監査を実施しますか? → swiftdata-auditor(エージェント)
  25. tvOS のデータ永続化? → axiom-tvos(重大:永続的なローカルストレージはありません)+ axiom-sqlitedata(CloudKit SyncEngine)

不合理な自己正当化

考え実際のところ
「列を追加するだけだから、移行は不要」移行せずにスキーマを変更すると、ユーザーのアプリがクラッシュします。database-migration はデータ損失を防ぎます。
「移行は手動で対応する」手動の移行ではエッジケースを見落とします。database-migration はロールバックとテストに対応しています。
「単純なクエリだから、このスキルは必要ない」クエリのパターンを使えば、N+1 問題やスレッドセーフの問題を防げます。このスキルにはコピーして使える解決策があります。
「CloudKit の同期は簡単だ」CloudKit には 15 種類以上の障害モードがあります。cloud-sync-diag で体系的に診断できます。
「Codable は十分に理解している」Codable には、エラーを握りつぶす try? など、気づかないままデータ損失を招く落とし穴があります。codable スキルは本番環境でのバグを防ぎます。
「tvOS でローカルストレージを使う」tvOS には永続的なローカルストレージがありません。システムはキャッシュをいつでも削除します。axiom-tvos では、iCloud を優先するパターンについて説明しています。
「このトークンには UserDefaults で十分」UserDefaults は暗号化されず、iCloud にバックアップされ、MDM プロファイルからも見える状態になります。監査を 1 回実施すれば検出できます。keychain はトークンを安全に保存します。
「CommonCrypto で自分で暗号化する」CryptoKit は、CommonCrypto のバッファ管理にまつわる厄介な問題を、1 行の API に置き換えました。cryptokit は誤用を防ぎます。

重要なパターン:移行

データベースの列を追加/変更するときは、必ず /skill axiom-database-migration を呼び出してください。

これにより、次の問題を防げます。

  • 「FOREIGN KEY constraint failed」エラー
  • 「no such column」によるクラッシュ
  • 安全でない移行によるデータ損失

呼び出し例

ユーザー:「SwiftData モデルにカラムを追加する必要があります」 → 呼び出し:/skill axiom-database-migration(重要:データ損失を防ぎます)

ユーザー:「複雑なフィルターを使って SwiftData にクエリするにはどうすればよいですか?」 → 呼び出し:/skill axiom-swiftdata

ユーザー:「CloudKit の同期が機能しません」 → 呼び出し:/skill axiom-cloud-sync-diag

ユーザー:「SwiftData と SQLiteData のどちらを使うべきですか?」 → 呼び出し:/skill axiom-sqlitedata-migration

ユーザー:「Core Data のコードに安全性の問題がないか確認してください」 → 呼び出し:core-data-auditor エージェント

ユーザー:「リリース前に Codable のアンチパターンをスキャンしてください」 → 呼び出し:codable-auditor エージェント

ユーザー:「iCloud 同期の実装を監査してください」 → 呼び出し:icloud-auditor エージェント

ユーザー:「ファイルが適切な場所に保存されているか確認してください」 → 呼び出し:storage-auditor エージェント

ユーザー:「データベースのマイグレーションの安全性を監査してください」 → 呼び出し:database-schema-auditor エージェント

ユーザー:「SwiftData モデルに問題がないか確認してください」 → 呼び出し:swiftdata-auditor エージェント

ユーザー:「tvOS でデータを永続化するにはどうすればよいですか?」 → 呼び出し:/skill axiom-tvos + /skill axiom-sqlitedata

ユーザー:「tvOS アプリで起動のたびにデータが失われます」 → 呼び出し:/skill axiom-tvos

ユーザー:「認証トークンを安全に保存するにはどうすればよいですか?」 → 呼び出し:/skill axiom-keychain

ユーザー:「errSecDuplicateItem が発生しますが、確認したところアイテムは存在しません」 → 呼び出し:/skill axiom-keychain-diag

ユーザー:「Swift で AES を使ってデータを暗号化するにはどうすればよいですか?」 → 呼び出し:/skill axiom-cryptokit

ユーザー:「Secure Enclave でデータに署名する必要があります」 → 呼び出し:/skill axiom-cryptokit

ユーザー:「ML-KEM とは何ですか?使うべきですか?」 → 呼び出し:/skill axiom-cryptokit

コメント