# swiftdata

Подсказывает агенту, как писать модели, запросы и миграции SwiftData, чтобы код на Swift 6.3 собирался без типичных промахов.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 4100 установок · ★ 1237
- Автор: dpearson2699
- Лицензия: LicenseRef-Unknown · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/swiftdata/SKILL.md
- Обновлён: 2026-07-31
- HTML: https://affpapa.org/nevibecode/skills/swiftdata

## Что делает

Скилл разворачивает перед агентом справочник по SwiftData: объявление классов с `@Model`, опции `@Attribute` вроде `.externalStorage` и `.unique`, правила удаления в `@Relationship`, составные ключи через `#Unique`. Отдельные разделы — `@Query` в SwiftUI, `#Predicate`, `FetchDescriptor`, версионирование схемы через `VersionedSchema` и `SchemaMigrationPlan`.

Есть блок про CloudKit: агент проверяет entitlements (iCloud с CloudKit и выбранным контейнером, Background Modes с remote notifications) и совместимость схемы до того, как что-то советовать по синхронизации. Модели остаются привязанными к контексту и актору, поэтому между акторами передаётся `PersistentIdentifier`, а не сам объект — иначе получите падение или гонку.

Скилл рассчитан на iOS 26+ и Swift 6.3: наследование моделей и часть синтаксиса в более старых тулчейнах не соберутся. Для фоновой работы описан `@ModelActor`. Удаления по предикату скилл советует сначала прогонять на одноразовой копии хранилища и только потом на боевых данных — ошибка в `#Predicate` стирает не то, что вы имели в виду.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftdata -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/swiftdata/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/swiftdata/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftdata -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/swiftdata/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftdata -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/swiftdata/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dpearson2699/swift-ios-skills swiftdata
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/swiftdata/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftdata -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/swiftdata
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/swiftdata/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill swiftdata -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/swiftdata/SKILL.md

## Когда брать
- объявить модель с внешним хранилищем для картинок и каскадным удалением связи
- отфильтровать список во SwiftUI по строке поиска через `#Predicate`
- перевести хранилище на новую версию схемы без потери данных
- включить синхронизацию с CloudKit и проверить, что схема ей не мешает
- вынести запись в фоновый актор, не протаскивая модель между потоками

## Примеры запросов агенту
- Опиши `@Model` класс `Trip` с полями `name`, `destination`, датами и связью с жильём через `@Relationship` с каскадным удалением
- Сделай экран со списком избранных поездок на `@Query` с сортировкой по `startDate` в обратном порядке
- Спланируй миграцию хранилища на новую схему с `VersionedSchema` и `SchemaMigrationPlan`

## Похожие
- [vercel-react-native-skills](https://affpapa.org/nevibecode/skills/vercel-react-native-skills.md) — скилл · 255200 установок
- [animate-expo](https://affpapa.org/nevibecode/skills/animate-expo.md) — скилл · 137900 установок
- [mobile-native](https://affpapa.org/nevibecode/skills/mobile-native.md) — скилл · 86600 установок
- [aso](https://affpapa.org/nevibecode/skills/aso.md) — скилл · 75400 установок
- [swiftui-pro](https://affpapa.org/nevibecode/skills/swiftui-pro.md) — скилл · 35200 установок
- [orca-emulator](https://affpapa.org/nevibecode/skills/orca-emulator.md) — скилл · 5800 установок

## Другие версии с тем же именем
- [swiftdata · prisma-labs-dev](https://affpapa.org/nevibecode/skills/prisma-labs-dev-swiftdata.md) — 468 установок

Из того же набора: [dpearson2699/swift-ios-skills](https://affpapa.org/nevibecode/by/dpearson2699/swift-ios-skills.md) — 86 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
