core-data-expert について
core-data-expertは、コーディングエージェント向けのCore Data開発・障害調査スキルです。テーマ別の資料へ案内し、コンテキストの安全性、移行、性能確認を重視します。
主な機能
- 01スタック構成と保存のガイダンス
- 02スレッド処理とSwift Concurrencyの助言
- 03移行とCloudKitのガイダンス
- 04一括操作と永続履歴
- 05性能・テスト資料
活用シーン
- 01コンテキスト間クラッシュの調査
- 02移行方式の選択
- 03一括更新がUIに反映されない問題の修正
- 04フェッチ時のメモリ増加の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ avdlee/ core-data-agent-skill --skill core-data-expertインストール後、Claude Code で/core-data-expertを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/_index.mdbatch-operations.mdcloudkit-integration.mdconcurrency.mdfetch-requests.mdglossary.mdmigration.mdmodel-configuration.mdperformance.mdpersistent-history.mdproject-audit.mdsaving.mdstack-setup.mdtesting.mdthreading.md詳細
Core Data エキスパート
正確で、高パフォーマンスな Core Data スタックの構築と、よくあるクラッシュの修正に役立つ、迅速で本番環境向けのガイダンスです。
エージェントの行動規範(以下のルールに従ってください)
- アドバイスが利用可能性に左右される場合(iOS 14+/17+ の機能など)は、OS/デプロイメントターゲットを確認します。
- 修正を提案する前に、コンテキストの種類を特定します:**ビューコンテキスト(UI)**か、**バックグラウンドコンテキスト(重い処理)**か。
- コンテキスト間/タスク間の受け渡しには
NSManagedObjectIDを推奨します。NSManagedObjectインスタンスをコンテキスト間で渡してはいけません。 - 可能な場合は軽量マイグレーションを優先します。複雑な変更には段階的マイグレーション(iOS 17+)を使用します。
- 一括操作を推奨する場合は、永続履歴トラッキングが有効になっていることを確認します(UI 更新に必要なことがよくあります)。
- CloudKit との統合については、Production スキーマは変更できないことを開発者に伝えます。
- WWDC/外部リソースへの参照は控えめにし、このスキルの
references/を優先します。
最初の 60 秒(トリアージ用テンプレート)
- 目標を明確にします:セットアップ、バグ修正、マイグレーション、パフォーマンス、CloudKit のどれですか?
- 必要最小限の情報を集めます:
- プラットフォームとデプロイメントターゲット
- ストアの種類(SQLite/インメモリ)と CloudKit が有効かどうか
- 関連するコンテキスト(ビュー/バックグラウンド)と Swift Concurrency を使用しているかどうか
- 正確なエラーメッセージとスタックトレース/ログ
- すぐに分岐します:
- スレッド処理/クラッシュ → コンテキストの分離と
NSManagedObjectIDの受け渡しに注目します - マイグレーションエラー → モデルのバージョンとマイグレーション戦略を特定します
- 一括操作後に UI が更新されない → 永続履歴トラッキングとマージパイプラインを確認します
- スレッド処理/クラッシュ → コンテキストの分離と
ルーティングマップ(適切なリファレンスをすばやく選択)
- スタックのセットアップ/マージポリシー/コンテキスト →
references/stack-setup.md - 保存パターン →
references/saving.md - フェッチリクエスト/リストの更新/集計 →
references/fetch-requests.md - 従来のスレッド処理(perform/performAndWait、オブジェクト ID) →
references/threading.md - Swift Concurrency(async/await、アクター、Sendable、DAO) →
references/concurrency.md - 一括挿入/削除/更新 →
references/batch-operations.md - 永続履歴トラッキング+「一括操作後に UI が更新されない」 →
references/persistent-history.md - モデル設定(制約、検証、派生/複合、変換可能型) →
references/model-configuration.md - スキーママイグレーション(軽量/段階的/遅延) →
references/migration.md - CloudKit 統合とデバッグ →
references/cloudkit-integration.md - パフォーマンスのプロファイリングとメモリ →
references/performance.md - テストパターン →
references/testing.md - 用語 →
references/glossary.md
よくあるエラー → 次に取るべき対応
- 「Failed to find a unique match for an NSEntityDescription」 →
references/testing.md(共有NSManagedObjectModel) NSPersistentStoreIncompatibleVersionHashError→references/migration.md(バージョン管理+マイグレーション)- コンテキスト間/スレッド処理の例外(例:誤ったコンテキストからの削除/更新) →
references/threading.mdおよび/またはreferences/concurrency.md(NSManagedObjectIDを使用) - Core Data に関する Sendable/アクター分離の警告 →
references/concurrency.md(@unchecked Sendableで「問題を覆い隠さない」) NSMergeConflict/制約違反 →references/model-configuration.md+references/stack-setup.md(制約+マージポリシー)- 一括操作後に UI が更新されない →
references/persistent-history.md+references/batch-operations.md - CloudKit のスキーマ/同期に関する問題 →
references/cloudkit-integration.md - フェッチ中にメモリ使用量が増加する →
references/performance.md+references/fetch-requests.md
検証チェックリスト(Core Data コードを変更する場合)
- コンテキストが作業内容(UI とバックグラウンドのどちらか)に合っていることを確認します。
NSManagedObjectインスタンスがコンテキスト間を移動しないようにし、代わりにNSManagedObjectIDを渡します。- バッチ操作を使用する場合は、永続履歴の追跡とマージパイプラインを確認します。
- 制約を使用する場合は、マージポリシーと競合解決の戦略を確認します。
- パフォーマンスに関する変更の場合は、Instruments でプロファイルを実行し、フェッチのバッチ処理と上限を検証します。
参考ファイル
references/_index.md(ナビゲーション)references/stack-setup.mdreferences/saving.mdreferences/fetch-requests.mdreferences/threading.mdreferences/concurrency.mdreferences/batch-operations.mdreferences/persistent-history.mdreferences/model-configuration.mdreferences/migration.mdreferences/cloudkit-integration.mdreferences/performance.mdreferences/testing.mdreferences/glossary.md
コメント
Markdown 対応