К основному содержанию
скилл CX Codex

core-data-expert — скилл для Claude Code: что делает и как установить

Скилл помогает настроить стек Core Data в iOS и macOS, наладить многопоточность и устранить сбои при миграциях или синхронизации с CloudKit.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add AvdLee/Core-Data-Agent-Skill --skill core-data-expert -a claude-code
Открыть на GitHub

Что делает 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-code

2Вручную: положить файлы

~/.claude/skills/core-data-expert/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/core-data-expert/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Похожие

axiom-data CharlesWiltgen Скилл-роутер по хранению данных в Apple-приложениях: SwiftData, Core Data, GRDB, SQLiteData, CloudKit, миграции и Codable. CX Codex +1 1 300установок cloudkit dpearson2699 Помогает настроить синхронизацию данных в iOS и macOS через CloudKit, SwiftData и CKSyncEngine, а также разрешать конфликты синхронизации. CX Codex +1 3 300установок ios-swift-development aj-geddes Скилл для разработки нативных iOS-приложений на Swift: MVVM, SwiftUI, сеть через URLSession, Combine и Core Data. CX Codex +1 1 500установок guide-swiftdata Prisma-Labs-Dev Скилл для написания, ревью и отладки кода SwiftData: подсказывает безопасные предикаты, правила автосохранения и ограничения CloudKit. CX Codex +1 435установок core-ml rshankras Помогает встроить машинное обучение в приложения для iOS и macOS: Core ML, Vision, NaturalLanguage и обучение моделей в Create ML. CX Codex +1 414установок core-bluetooth dpearson2699 Скилл помогает настраивать прямое взаимодействие с BLE-устройствами через Core Bluetooth в iOS-проектах. CX Codex +1 3 700установок

Рядом в теме «Мобильная разработка»

Всё по теме «Мобильная разработка» →

Вопросы о 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

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой