Jak używać
- Skopiuj polecenie instalacji i sprawdź źródła przed instalacją we własnym środowisku agenta.
- W oryginale sprawdź wymagane narzędzia, dane dostępowe i obsługiwane środowiska.
- Opisz dane wejściowe i oczekiwany rezultat; porównaj wynik ze źródłami.
npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-snapshots-cocoaPrzed rozpoczęciem
- Instalacja nie obejmuje subskrypcji modelu, limitu API ani uprawnień do plików.
- Gwiazdki i instalacje pokazują aktywność, a nie niezależny test jakości lub bezpieczeństwa.
Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.
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
appleSnapshotsflow 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:
# 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.
- 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.
- 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.
- For setup or verification:
- existing non-SnapshotPreviews generator -> read
references/snapshots.md; - existing SnapshotPreviews -> read
references/snapshot-previews.mdand
references/snapshots.md;
- new SnapshotPreviews setup -> read
references/wizard-setup.md; - wizard reports no Swift previews -> ask before adding previews or choosing another
generator.
- 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.mdand 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
.pngfiles and any generated.jsonsidecars. - Upload succeeds and prints a Sentry URL or snapshot id.
- Base branch upload is full; selective PR upload includes the full image-name manifest.




