core-data-expert — скилл для Claude Code: что делает и как установить
Скилл помогает настроить стек Core Data в iOS и macOS, наладить многопоточность и устранить сбои при миграциях или синхронизации с CloudKit.
npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a claude-codeЧто делает core-data-expert
Скилл задаёт агенту чёткие правила работы с Core Data в проектах под iOS и macOS. Он заставляет модель сразу разделять view context для пользовательского интерфейса и фоновый контекст для ресурсоёмких задач. Скилл запрещает передавать инстансы NSManagedObject между потоками и контекстами, требуя использовать исключительно NSManagedObjectID.
Внутри заложена маршрутизация по справочникам из каталога references/. Агент сверяется с готовыми шаблонами по настройке стека, выборкам через NSFetchedResultsController, пакетным операциям и поэтапным миграциям для iOS 17+. При настройке пакетных вставок или удалений ассистент проверяет включение persistent history tracking, иначе изменения не дойдут до интерфейса.
Попытка заглушить ворнинги изоляции акторов через @unchecked Sendable здесь пресекается: скилл требует проектировать безопасную архитектуру со Swift Concurrency. Продакшен-схема CloudKit неизменяема, поэтому любые ошибки проектирования сущностей придётся исправлять новыми версиями хранилища.
Какие задачи решает
- устранить сбои потоков при передаче объектов между контекстами
- настроить пакетные операции и отслеживание истории для обновления UI
- разрешить конфликты слияния
NSMergeConflictи задать политики сохранения - подготовить поэтапную миграцию схемы данных под iOS 17+
- настроить синхронизацию через
NSPersistentCloudKitContainer
Примеры запросов агенту
- Помоги исправить ошибку NSPersistentStoreIncompatibleVersionHashError после изменения модели данных
- Как безопасно передать данные из фонового актора в Core Data с использованием Swift Concurrency?
- Пакетное удаление через NSBatchDeleteRequest не обновляет список на экране, как подключить persistent history tracking?
Как установить core-data-expert
1Через Skills CLI (Vercel)
npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a claude-code2Вручную: положить файлы
~/.claude/skills/core-data-expert/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/core-data-expert/
1Через Skills CLI (Vercel)
npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a codex2Вручную: положить файлы
.agents/skills/core-data-expert/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a cursor2Вручную: положить файлы
.cursor/skills/core-data-expert/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install AvdLee/Core-Data-Agent-Skill core-data-expert2Вручную: положить файлы
.github/skills/core-data-expert/SKILL.md1Через Skills CLI (Vercel)
npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a gemini-cli2Командой платформы
gemini skills install https://github.com/AvdLee/Core-Data-Agent-Skill --path core-data-expertВручную: положить файлы
.devin/skills/core-data-expert/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Похожие
Рядом в теме «Мобильная разработка»
Всё по теме «Мобильная разработка» →Вопросы о core-data-expert
Как установить core-data-expert в Claude Code?
Выполните команду npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a claude-code. Также можно вручную добавить файл в ~/.claude/skills/core-data-expert/SKILL.md.
Что делает core-data-expert?
Направляет кодинг-агента при настройке и отладке Core Data: от архитектуры контекстов и многопоточности до миграций схем и интеграции с CloudKit.
Как скилл решает проблемы со Swift Concurrency?
Скилл запрещает передавать инстансы NSManagedObject между задачами и акторами, требуя передавать NSManagedObjectID. Он блокирует попытки обойти предупреждения компилятора через @unchecked Sendable.
Исходный текст
SKILL.md · MIT
--- name: core-data-expert description: '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.' --- # 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 · MIT · AvdLee/Core-Data-Agent-Skill