sentry-snapshots-cocoa — скилл для Claude Code: снапшоты Apple
Настраивает генерацию снапшот-изображений в проектах Apple и загрузку их в Sentry Snapshots. Пригодится, когда нужно наладить визуальное тестирование превью или добавить его в CI.
npx skills add getsentry/sentry-for-ai --skill sentry-snapshots-cocoa -a claude-codeЧто делает sentry-snapshots-cocoa
Скилл разбирается, что уже есть в проекте: ищет Package.swift, Package.resolved, project.pbxproj и проверяет, не используется ли Point-Free swift-snapshot-testing. Если генератор снапшотов уже настроен, он его сохраняет. Если ничего нет, ставит фирменное решение Sentry — SnapshotPreviews — через мастер appleSnapshots. Ручная настройка идёт в ход только тогда, когда мастер недоступен или не смог разобрать цели без подсказок.
Дальше скилл выбирает маршрут по таблице ссылок: отдельные файлы references/wizard-setup.md, references/snapshot-previews.md, references/snapshots.md и три варианта workflow для GitHub Actions — простой, с фан-аутом по нескольким симуляторам и для swift-snapshot-testing. Загрузка идёт через Fastlane или sentry-cli, вместе с картинками уезжают манифесты и метаданные.
Есть жёсткое условие: для SwiftPM-пакета без хост-приложения и hosted XCTest-таргета скилл останавливается и просит их указать — рендеринг через одиночный swift test не поддерживается. Перед загрузкой он проверяет SENTRY_AUTH_TOKEN, SENTRY_ORG и SENTRY_PROJECT, а также просит подтвердить организацию, проект и папку экспорта. Это повод проверить, нет ли на скриншотах клиентских данных: они уходят на сервер Sentry как есть.
Какие задачи решает
- сгенерировать PNG-снапшоты превью для проекта Apple
- загрузить снапшоты в Sentry вместе с метаданными
- сохранить уже работающий генератор на
swift-snapshot-testing - собрать GitHub Actions workflow с фан-аутом по нескольким симуляторам
- добавить селективный прогон снапшотов только для изменённых экранов
Примеры запросов агенту
- настрой SnapshotPreviews для моего проекта на Apple и загрузи снапшоты в Sentry
- проверь, какой генератор снапшотов уже стоит в проекте, и не ломай его
- сделай GitHub Actions workflow с несколькими симуляторами для снапшот-тестов
Как установить sentry-snapshots-cocoa
1Через Skills CLI (Vercel)
npx skills add getsentry/sentry-for-ai --skill sentry-snapshots-cocoa -a claude-code2Вручную: положить файлы
~/.claude/skills/sentry-snapshots-cocoa/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/sentry-snapshots-cocoa/
1Через Skills CLI (Vercel)
npx skills add getsentry/sentry-for-ai --skill sentry-snapshots-cocoa -a codex2Вручную: положить файлы
.agents/skills/sentry-snapshots-cocoa/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add getsentry/sentry-for-ai --skill sentry-snapshots-cocoa -a cursor2Вручную: положить файлы
.cursor/skills/sentry-snapshots-cocoa/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install getsentry/sentry-for-ai sentry-snapshots-cocoa2Вручную: положить файлы
.github/skills/sentry-snapshots-cocoa/SKILL.md1Через Skills CLI (Vercel)
npx skills add getsentry/sentry-for-ai --skill sentry-snapshots-cocoa -a gemini-cli2Командой платформы
gemini skills install https://github.com/getsentry/sentry-for-ai --path src/skills/sentry-snapshots-cocoaВручную: положить файлы
.devin/skills/sentry-snapshots-cocoa/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add getsentry/sentry-for-ai --skill sentry-snapshots-cocoa -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора31
Похожие
Рядом в теме «Тесты и QA»
Всё по теме «Тесты и QA» →Вопросы о sentry-snapshots-cocoa
Как установить sentry-snapshots-cocoa в Claude?
Выполните npx skills add getsentry/sentry-for-ai --skill sentry-snapshots-cocoa -a claude-code. После этого файл скилла появится по пути ~/.claude/skills/sentry-snapshots-cocoa/SKILL.md.
Что делает sentry-snapshots-cocoa?
Настраивает генерацию снапшот-изображений в проектах Apple и отправку их в Sentry Snapshots. Заодно может собрать workflow для GitHub Actions, если генератор уже есть.
Что нужно подготовить перед загрузкой снапшотов?
Переменные SENTRY_AUTH_TOKEN, SENTRY_ORG и SENTRY_PROJECT, а также подтверждение организации, проекта и папки экспорта. Скилл проверяет их наличие, но значения не печатает.
Исходный текст
SKILL.md · Apache-2.0
---
name: sentry-snapshots-cocoa
description: Full Sentry Snapshots setup for Apple/Cocoa projects. Use when asked to "setup SnapshotPreviews", "setup Apple snapshot testing", "upload Apple snapshots to Sentry", "setup Apple snapshot GitHub Actions", or "setup Apple selective snapshot testing".
license: Apache-2.0
---
# Sentry Snapshots for Apple/Cocoa
## Scope
- Goal: generate Apple snapshot images and upload them to Sentry Snapshots.
- Detect existing snapshot generation first, including Point-Free
`swift-snapshot-testing`; preserve it when it already emits or can emit PNGs or JPEGs.
- Use the Sentry Wizard `appleSnapshots` flow only when setting up Sentry’s first-party
SnapshotPreviews solution.
- Use manual setup only if the wizard is unavailable, cannot resolve targets
non-interactively after disambiguation, or fails after explicit disambiguation.
- Package-only SwiftPM: stop and ask for the host app/test target; standalone
`swift test` rendering is not supported.
Snapshot uploads send generated images and metadata to Sentry.
Confirm the target organization/project and export directory, and check whether the
images contain customer data or other sensitive content before uploading.
Upload only the selected snapshot output within the user’s requested scope.
## Detect
Do only enough detection to route before calling the wizard:
```bash
# SnapshotPreviews (Sentry first-party) -> prefer wizard / SnapshotPreviews routing
find . \( -name Package.swift -o -name Package.resolved -o -path '*/project.pbxproj' \) -print0 2>/dev/null | xargs -0 grep -lE "SnapshotPreviews" 2>/dev/null
# Point-Free swift-snapshot-testing -> preserve generator, swift-snapshot-testing CI path
find . \( -name Package.swift -o -name Package.resolved -o -path '*/project.pbxproj' \) -print0 2>/dev/null | xargs -0 grep -lE "swift-snapshot-testing|SnapshotTesting|assertSnapshot|__Snapshots__|TEST_RUNNER_SNAPSHOT_TESTING_RECORD" 2>/dev/null
# Required wizard input
find . -name '*.xcodeproj' -print 2>/dev/null | head -20
# Workflow shape
ls fastlane/Fastfile Gemfile 2>/dev/null
# Sentry auth presence only -> never print secret values
[ -n "$SENTRY_AUTH_TOKEN" ] && echo "SENTRY_AUTH_TOKEN=set" || echo "SENTRY_AUTH_TOKEN=unset"
[ -n "$SENTRY_ORG" ] && echo "SENTRY_ORG=set" || echo "SENTRY_ORG=unset"
[ -n "$SENTRY_PROJECT" ] && echo "SENTRY_PROJECT=set" || echo "SENTRY_PROJECT=unset"
```
Record: existing SnapshotPreviews setup, existing snapshot generator/library, output
directory if known, Xcode project directory, CI provider, Fastlane, and Sentry auth.
For each `.xcodeproj` match, record the containing directory for `--xcode-project-dir`;
if `find` prints `./MyApp/MyApp.xcodeproj`, pass `./MyApp`, not the bundle path.
Let the wizard detect app targets, hosted XCTest targets, and Swift previews only when
no existing generator is present.
## Route
Resolve routing in this order; setup is the primary path and CI is optional follow-up.
1. Select or create the image generator:
- named generator wins;
- multiple existing generators with no user choice -> ask;
- existing non-SnapshotPreviews generator -> preserve it;
- existing SnapshotPreviews -> use it;
- no existing generator -> set up SnapshotPreviews by default for Sentry Snapshots or
Apple snapshot testing.
2. For SnapshotPreviews, stop before setup/verification/CI if there is no `.xcodeproj`
host app or no hosted XCTest target.
These stops do not apply when preserving another generator.
3. For setup or verification:
- existing non-SnapshotPreviews generator -> read `references/snapshots.md`;
- existing SnapshotPreviews -> read `references/snapshot-previews.md` and
`references/snapshots.md`;
- new SnapshotPreviews setup -> read `references/wizard-setup.md`;
- wizard reports no Swift previews -> ask before adding previews or choosing another
generator.
4. For GitHub Actions/CI only after an image generator exists:
- Point-Free `swift-snapshot-testing` -> read
`references/github-actions-swift-snapshot-testing.md` and
`references/snapshots.md`;
- other non-SnapshotPreviews generator -> read `references/snapshots.md` and adapt
existing CI/upload;
- SnapshotPreviews, one simulator only, no matrix/fanout/selective CI -> read
`references/github-actions-simple.md`;
- SnapshotPreviews with multiple simulators, device families, matrix, or any
selective CI -> read `references/github-actions-fanout.md` and
`references/snapshot-previews.md`.
## Optional References
| Need | Read |
| --- | --- |
| First-party SnapshotPreviews setup, disambiguation, or manual fallback | `references/wizard-setup.md` |
| SnapshotPreviews metadata, rendering preferences, selective rendering, or SnapshotPreviews-specific troubleshooting | `references/snapshot-previews.md` |
| Upload any generated snapshot images to Sentry with Fastlane, `sentry-cli`, manifests, CI notes, or upload troubleshooting | `references/snapshots.md` |
| One-destination GitHub Actions workflow | `references/github-actions-simple.md` |
| Multi-destination/fan-out GitHub Actions workflow | `references/github-actions-fanout.md` |
| Point-Free `swift-snapshot-testing` GitHub Actions workflow | `references/github-actions-swift-snapshot-testing.md` |
## Completion Checks
- The selected snapshot image generator is documented and preserved or configured
according to the route above.
- Snapshot generation appears in the relevant local or CI test logs.
- Export directory contains `.png` files and any generated `.json` sidecars.
- Upload succeeds and prints a Sentry URL or snapshot id.
- Base branch upload is full; selective PR upload includes the full image-name manifest.
© getsentry · Apache-2.0 · getsentry/sentry-for-ai