sentry-snapshots-cocoa
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".
pinned to #3cb2086updated 3 days ago
Ask your AI client: “install skills/sentry-snapshots-cocoa”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install skills/sentry-snapshots-cocoametahub onboarded this repo on the author's behalf.
If you own github.com/getsentry/sentry-for-ai on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
246
Last commit
3 days ago
Latest release
published
- #tag-production
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.3cb2086· 3 days ago
Documentation
8 passed1 warningHomepage or repository declaredwarn
No homepage or repository declared.
Add a "homepage" or "repository" field to SKILL.md.
Description quality
33 words · 249 chars — "Full Sentry Snapshots setup for Apple/Cocoa projects. Use when asked to "setup S…"
README is present and substantial
6,327 chars · 6 sections · 6 code blocks
Tags / topics declared
1 total — tag-production
README has usage / example sections
no labeled section but 6 code blocks document usage
Homepage / docs URL declared
no homepage declared (registry will use the repo URL) — info-only, not blocking
Description is substantive
Description is 33 words.
Documentation present and substantive
Documentation present (SKILL.md, 672 words).
Documentation shows usage
Documentation includes 1 code example.
Release history
1- releasecurrent3cb2086warn3 days ago
Contents
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 testrendering is not supported.
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
.xcodeprojhost 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.mdandreferences/snapshots.md; - new SnapshotPreviews setup -> read
references/wizard-setup.md; - wizard reports no Swift previews -> ask before adding previews or choosing another generator.
- existing non-SnapshotPreviews generator -> read
- For GitHub Actions/CI only after an image generator exists:
- Point-Free
swift-snapshot-testing-> readreferences/github-actions-swift-snapshot-testing.mdandreferences/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.mdandreferences/snapshot-previews.md.
- Point-Free
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.
Reviews
No reviews yet. Be the first.
Related
Verification Before Completion
Evidence before assertions, always
Writing Plans
Turn specs into phased implementation plans
Test-Driven Development
Red → green → refactor discipline for any feature or bugfix
mh install skills/sentry-snapshots-cocoa