SKILL.md
$29
- 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 +
NSManagedObjectIDhandoff
- 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(sharedNSManagedObjectModel)
- **
NSPersistentStoreIncompatibleVersionHashError** →references/migration.md(versioning + migration)
- Cross-context/threading exceptions (e.g. delete/update from wrong context) →
references/threading.mdand/orreferences/concurrency.md(useNSManagedObjectID)
- 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
NSManagedObjectinstances never cross contexts; passNSManagedObjectIDinstead.
- 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