mcpbeat Sign in

Screenshot Tests Agent Skill

Use when writing or running Paparazzi screenshot tests in stripe-android — covers PaparazziRule setup, recording/verifying commands, and test structure

659 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
1532
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/stripe/stripe-android --skill screenshot-tests

The instruction itself

6 sections, as written by the author

Screenshot Tests (Paparazzi)

We use Paparazzi for screenshot testing via the screenshot-testing module.

Recording Screenshots

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.

Verifying Screenshots

Verify screenshots match recorded baselines (used on CI):

./gradlew :<module>:verifyPaparazziDebug

Failure diffs are written to <module>/out/failures (git-ignored).

Test Class Structure

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.
  • Each test produces one snapshot per permutation (e.g., 12 images for 2 themes x 3 appearances x 2 font sizes).
  • Snapshots are named <package>_<class>_<method>[<permutation>].png.

Available Config Options

| 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 |

Common Mistakes

  • Using -Precord or other flags — Paparazzi uses a separate recordPaparazziDebug task, not a project property.
  • Running testDebugUnitTest to record — this only _verifies_ against existing snapshots; use recordPaparazziDebug to update them.
  • Forgetting to commit updated snapshots — recorded images go into src/test/snapshots/images/ and must be committed.

Other skills for the same job

different authors, same section of the catalogue
Dogfood
by vercel-labs
vendor ×2

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.

4k tokens
Export Download Debugging
by nexu-io

| 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.

725 tokens
Prioritize Assumptions
by phuryn

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.

577 tokens
Hatch Pet
by openai
vendor

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.

33k tokens scripts
Image Studio UI Tests
by Automattic

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.

11k tokens
Ios Simulator Test Recording
by firebase

>- 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.

3k tokens scripts
Frontend App Builder
by openai
vendor

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.

13k tokens
Jetson Validate Image
by NVIDIA
vendor

>- Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build

18k tokens scripts

How to use it

Copy the folder

Take stripe/screenshot-tests from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.