Core Data Expert

avdlee/core-data-agent-skill/core-data-expert

作者 avdlee855ca7d0df50無授權條款315 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫3 週前更新

Expert Core Data guidance (iOS/macOS): stack setup, fetch requests & NSFetchedResultsController, saving/merge conflicts, threading & Swift Concurrency, batch operations & persistent history, migrations, performance, and NSPersistentCloudKitContainer/CloudKit sync.

AI 產生的概覽

為 iOS 與 macOS 提供面向正式環境的 Core Data 指引,涵蓋堆疊設定、抓取、執行緒、移轉、效能與 CloudKit 同步。

功能
此技能會將 Core Data 問題導向隨附的參考文件,並針對設定、錯誤修正、移轉、效能與 CloudKit 問題提供初步判斷步驟。它提供情境隔離、傳遞 NSManagedObjectID 而非受管理物件、合併原則、批次操作與持續性歷史記錄等規則。它也會將常見的 Core Data 錯誤對應到相應的參考檔案,並附有驗證清單。
適用情境
適用於在 iOS 或 macOS 上建置或偵錯 Core Data 堆疊時,例如解決執行緒或跨情境當機、移轉錯誤、合併衝突、批次操作未更新介面或 CloudKit 同步問題。也適合在規劃抓取請求、並行模式或效能剖析時使用。
執行需求
不需要指令碼或套件;這是僅含說明的技能,並附帶參考文件。它假定使用者熟悉 Apple 的 Core Data 框架,部分主題還涉及 Swift Concurrency、CloudKit 與 Instruments。

Core Data Expert

Fast, production-oriented guidance for building correct, performant Core Data stacks and fixing common crashes.

Agent behavior contract (follow these rules)

  1. Determine OS/deployment target when advice depends on availability (iOS 14+/17+ features, etc.).
  2. Identify the context type before proposing fixes: view context (UI) vs background context (heavy work).
  3. Recommend NSManagedObjectID for cross-context/cross-task communication; never pass NSManagedObject instances across contexts.
  4. Prefer lightweight migration when possible; use staged migration (iOS 17+) for complex changes.
  5. When recommending batch operations, verify persistent history tracking is enabled (often required for UI updates).
  6. For CloudKit integration, remind developers that Production schema is immutable.
  7. Reference WWDC/external resources sparingly; prefer this skill’s references/.

First 60 seconds (triage template)

  • Clarify the goal: setup, bugfix, migration, performance, CloudKit?
  • Collect minimal facts:
    • platform + deployment target
    • store type (SQLite / in-memory) and whether CloudKit is enabled
    • context involved (view vs background) and whether Swift Concurrency is in use
    • exact error message + stack trace/logs
  • Branch immediately:
    • threading/crash → focus on context confinement + NSManagedObjectID handoff
    • migration error → identify model versions + migration strategy
    • batch ops not updating UI → persistent history tracking + merge pipeline

Routing map (pick the right reference fast)

  • Stack setup / merge policies / contexts → references/stack-setup.md
  • Saving patterns → references/saving.md
  • Fetch requests / list updates / aggregates → references/fetch-requests.md
  • Traditional threading (perform/performAndWait, object IDs) → references/threading.md
  • Swift Concurrency (async/await, actors, Sendable, DAOs) → references/concurrency.md
  • Batch insert/delete/update → references/batch-operations.md
  • Persistent history tracking + “batch ops not updating UI” → references/persistent-history.md
  • Model configuration (constraints, validation, derived/composite, transformables) → references/model-configuration.md
  • Schema migration (lightweight/staged/deferred) → references/migration.md
  • CloudKit integration & debugging → references/cloudkit-integration.md
  • Performance profiling & memory → references/performance.md
  • Testing patterns → references/testing.md
  • Terminology → references/glossary.md

Common errors → next best move

  • “Failed to find a unique match for an NSEntityDescription” → references/testing.md (shared NSManagedObjectModel)
  • NSPersistentStoreIncompatibleVersionHashError → references/migration.md (versioning + migration)
  • Cross-context/threading exceptions (e.g. delete/update from wrong context) → references/threading.md and/or references/concurrency.md (use NSManagedObjectID)
  • Sendable / actor-isolation warnings around Core Data → references/concurrency.md (don’t “paper over” with @unchecked Sendable)
  • NSMergeConflict / constraint violations → references/model-configuration.md + references/stack-setup.md (constraints + merge policy)
  • Batch operations not updating UI → references/persistent-history.md + references/batch-operations.md
  • CloudKit schema/sync issues → references/cloudkit-integration.md
  • Memory grows during fetch → references/performance.md + references/fetch-requests.md

Verification checklist (when changing Core Data code)

  • Confirm the context matches the work (UI vs background).
  • Ensure NSManagedObject instances never cross contexts; pass NSManagedObjectID instead.
  • If using batch ops, confirm persistent history tracking + merge pipeline.
  • If using constraints, confirm merge policy and conflict resolution strategy.
  • If performance-related, profile with Instruments and validate fetch batching/limits.

Reference files

  • references/_index.md (navigation)
  • references/stack-setup.md
  • references/saving.md
  • references/fetch-requests.md
  • references/threading.md
  • references/concurrency.md
  • references/batch-operations.md
  • references/persistent-history.md
  • references/model-configuration.md
  • references/migration.md
  • references/cloudkit-integration.md
  • references/performance.md
  • references/testing.md
  • references/glossary.md

來源與署名

來源:avdlee/core-data-agent-skill位於core-data-expert提交855ca7d

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架