Use when writing or running Paparazzi screenshot tests in stripe-android — covers PaparazziRule setup, recording/verifying commands, and test structure
npx skills add https://github.com/stripe/stripe-android --skill screenshot-tests
We use Paparazzi for screenshot testing via the screenshot-testing module.
Record (update) screenshots after UI changes:
./gradlew :<module>:recordPaparazziDebug
To record a specific test class only:
./gradlew :<module>:recordPaparazziDebug --tests "com.stripe.android.package.MyScreenshotTest"
Wildcard form also works:
./gradlew :<module>:recordPaparazziDebug --tests "*.MyScreenshotTest"
New or updated screenshots are written to <module>/src/test/snapshots/images/ and added to the Git staging area.
Verify screenshots match recorded baselines (used on CI):
./gradlew :<module>:verifyPaparazziDebug
Failure diffs are written to <module>/out/failures (git-ignored).
internal class MyScreenshotTest {
@get:Rule
val paparazziRule = PaparazziRule(
SystemAppearance.entries, // Light/Dark
PaymentSheetAppearance.entries, // Default/Custom/Crazy appearances
FontSize.entries, // Default/Large font
boxModifier = Modifier.padding(horizontal = 16.dp),
)
@Test
fun testDefault() {
paparazziRule.snapshot {
MyComposable(/* ... */)
}
}
}
PaparazziRule generates all permutations of the config options automatically.<package>_<class>_<method>[<permutation>].png.| Option | Values | Import |
|--------|--------|--------|
| SystemAppearance | LightTheme, DarkTheme | com.stripe.android.screenshottesting |
| FontSize | DefaultFont, LargeFont | com.stripe.android.screenshottesting |
| PaymentSheetAppearance | DefaultAppearance, CustomAppearance, CrazyAppearance | com.stripe.android.utils.screenshots |
-Precord or other flags — Paparazzi uses a separate recordPaparazziDebug task, not a project property.testDebugUnitTest to record — this only _verifies_ against existing snapshots; use recordPaparazziDebug to update them.src/test/snapshots/images/ and must be committed.Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", "test this app/site/platform", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.
| Diagnose and fix browser, preview, or Electron export/download failures, especially image export issues involving Save As, Blob/Data URLs, the File System Access API, createWritable failures, and 0 KB files.
Prioritize assumptions using an Impact × Risk matrix and suggest experiments for each. Use when triaging a list of assumptions, deciding what to test first, or applying the assumption prioritization canvas.
Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.
Run comprehensive UI tests for the Image Studio feature. Covers Media Library entry points, Edit Mode, Generate Mode, Block Editor integration, navigation, and delete. Use when running the full UI smoke test or testing any Image Studio surface.
>- Skill to run xcodebuild tests on iOS Simulator while recording a video walkthrough, dynamically selecting the highest available OS and device. Most useful for running XCUITests.
Use for new frontend applications, dashboards, games, creative websites, hero sections, and visually driven UI from scratch, or when the user explicitly asks for a redesign/restyle/modernization. Builds from clean, airy, high-taste, readable image-generated concept design with section-specific references, faithful implementation, and browser testing.
>- Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build
Take stripe/screenshot-tests from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.