contacts-framework — скилл для Claude Code: работа с контактами
Скилл помогает читать, создавать и менять контакты в Swift-приложениях, а также подключать системный выбор контактов к SwiftUI.
npx skills add dpearson2699/swift-ios-skills --skill contacts-framework -a claude-codeЧто делает contacts-framework
Скилл описывает работу с CNContactStore, CNSaveRequest и CNContactPickerViewController: запрос разрешения, поиск контактов по имени или идентификатору и перебор адресной книги. Он также разбирает создание и обновление записей через CNMutableContact и сохранение изменений.
При запросах нужно перечислять ключи свойств, которые приложение собирается читать: доступ к незагруженному свойству вызывает CNContactPropertyNotFetchedException. Для обычного доступа к контактам в Info.plist требуется NSContactsUsageDescription; без этого ключа приложение аварийно завершится при обращении к API контактов. Системный экран выбора контактов работает без отдельного разрешения и открывает приложению доступ только к выбранным записям.
Какие задачи решает
- запросить разрешение на чтение и сохранение контактов
- найти контакты по имени или идентификатору
- перебрать адресную книгу вне главного потока
- создать или изменить запись через
CNSaveRequest - обернуть системный выбор контакта для SwiftUI
Примеры запросов агенту
- Добавь в Swift-приложение поиск контактов по имени через
CNContactStore. - Создай контакт с именем и телефоном и сохрани его через
CNSaveRequest. - Покажи системный выбор контакта в SwiftUI и обработай выбранную запись.
Как установить contacts-framework
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill contacts-framework -a claude-code2Вручную: положить файлы
~/.claude/skills/contacts-framework/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/contacts-framework/
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill contacts-framework -a codex2Вручную: положить файлы
.agents/skills/contacts-framework/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill contacts-framework -a cursor2Вручную: положить файлы
.cursor/skills/contacts-framework/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dpearson2699/swift-ios-skills contacts-framework2Вручную: положить файлы
.github/skills/contacts-framework/SKILL.md1Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill contacts-framework -a gemini-cli2Командой платформы
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/contacts-frameworkВручную: положить файлы
.devin/skills/contacts-framework/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dpearson2699/swift-ios-skills --skill contacts-framework -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о contacts-framework
Как установить contacts-framework в Claude Code?
Выполни npx skills add dpearson2699/swift-ios-skills --skill contacts-framework -a claude-code. Файл скилла находится по пути ~/.claude/skills/contacts-framework/SKILL.md.
Что делает contacts-framework?
Подсказывает, как читать и сохранять контакты средствами Contacts и показывать системный выбор контакта. Также охватывает разрешения и выбор ключей свойств для запросов.
Нужно ли разрешение для CNContactPickerViewController?
Нет. Системный выбор контактов не требует отдельного разрешения: приложение получает доступ только к записям, которые выбрал пользователь.