screenshots
Skill3.8k starsChanged 11 days agoMITView on GitHub
Take before/after screenshots of the UI surfaces affected by the current changes, on a connected Android emulator and/or booted iOS simulator, and produce side-by-side comparisons. Use when the user asks to "screenshot the surfaces I changed", "before and after screenshots", "record screenshots for the PR", or similar.
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 14 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Find the surfaces: Run git fetch origin main, then list changed files (git diff --stat, or git diff origin/main...HEAD --stat if committed) …
- Very specific: line 22
Report: Run sim.sh compare before.png after.png out.png for each pair, Read the results, and give the user absolute paths plus one line per …
- Distinctive: line 23
Hand off: Ask how they want the photos:
- Very specific: line 35
If a control can't be tapped (often the bug itself), use sim.sh back android.
“Common” is measured: kept by at least 6 in 10 of the 14 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Before/After Screenshots
Drive the running dev app with .claude/skills/screenshots/scripts/sim.sh (run it with no args for usage). Save images in the session scratchpad.
- Find the surfaces. Run
git fetch origin main, then list changed files (git diff --stat, orgit diff origin/main...HEAD --statif committed) and trace each component up to a screen. Route paths insrc/app/Navigation/routes.tsxopen as deep links (sim.sh open android artist/kaws). - Pick platforms.
sim.sh devices; use what the user asked for, otherwise everything connected. If no device is booted for a requested platform, ask the user to boot one. On Android also runadb reverse tcp:8081 tcp:8081. Then runsim.sh check <platform>(no platform checks both). If it reports anything missing, stop and show the user the list with its install commands, and ask whether to install them. Never install anything without the user's explicit approval. Install only the items they approve, or let them install it themselves, then re-runcheck. Never start Metro yourself; ask the user to runyarn start. - Capture AFTER. Deep link, then take a screenshot, Read it, tap, and repeat. Note the steps so you can replay them.
Capture BEFORE. Save
git status --shortand the SHA fromgit merge-base origin/main HEAD; write the SHA itself into later commands as<base>, because shell variables don't persist between commands. Before reverting anything, print the step 5 restore commands for the user, so they can recover their work if the session dies. Remove every change undersrc/, not just the UI files, so the tree still bundles. Never touch.claude/. A branch can have both kinds of change, so do both steps in this order:- Uncommitted:
git stash push -u -m screenshots-skill -- src/. Note whether it created a stash, because it prints "No local changes to save" when it doesn't. - Committed:
git restore --source=<base> --staged --worktree -- src/. This also removes files the branch added and brings back ones it deleted or renamed.
Then
sim.sh restart <platform>and replay the steps.- Uncommitted:
- Restore in reverse order:
git restore --source=HEAD --staged --worktree -- src/, then, only if step 4 created a stash, pop it by name rather thanstash@{0}:git stash pop --index "$(git stash list | grep -m1 screenshots-skill | cut -d: -f1)". Confirmgit status --shortmatches what you saved, and runsim.sh restart. - Report. Run
sim.sh compare before.png after.png out.pngfor each pair, Read the results, and give the user absolute paths plus one line per surface on what changed. - Hand off. Ask how they want the photos:
- Open the folder (default):
open <shots dir>shows them in Finder, ready to drag into a PR. - Add them to the PR description for them: only if they choose this. eigen is public and anyone with the link can open an uploaded image, so first show the user the final images and have them confirm none show personal data (profile, orders, addresses, inquiries). GitHub has no image upload API, so use Claude in Chrome: open the description's edit box, upload the images with
file_upload, and build a table from the returnedhttps://github.com/user-attachments/...URLs (| Surface | Before | After |, each cell<img src="..." width="300" />). Save the description. Never post a comment.
- Open the folder (default):
Gotchas
- With several Android devices connected (e.g. a phone plus the emulator), set
ANDROID_SERIAL=<serial>. - Android taps are in screenshot pixels; iOS (idb) taps are in points, which is pixels ÷ 3 on most simulators.
- Swipe slowly; fast swipes trigger the shake dev menu.
- Restart the app instead of relying on Fast Refresh after switching code.
- Skip surfaces where the change can't show on a platform (e.g.
Platform.OS === "android"code) and say so. - On delete/send/purchase flows, only open the confirmation, then Cancel.
- If a control can't be tapped (often the bug itself), use
sim.sh back android.
Trending
Less talk lately.about the whole repository
Who's talking about artsy/eigen
- Stack Overflow“DYLD_PRINT_STATISTICS not showing anything”Stack Overflow · Feb 9, 2016 · 14 votes
- CocoaPods/CocoaPods“Running `pod install` should be able to handle git conflict markers in the lock files”GitHub · Mar 15, 2018 · 11 reactions
- artsy/README“[RFC] Move palette iOS component implementations to the eigen repo”GitHub · Jul 8, 2020 · 9 reactions
- artsy/README“RFC: Trial Expo in Energy and/or Palette-Mobile, Spike on Eigen Risks, Rewards and Effort”GitHub · Nov 6, 2024 · 8 reactions
- artsy/cohesion“RFC: Remove helpers”GitHub · Aug 2, 2021 · 8 reactions
The biggest 5 of 56 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 56
Talked about on GitHub, Stack Overflow and Hacker News (56 times).
On GitHub · 50
- Mar 15, 2018Running `pod install` should be able to handle git conflict markers in the lock files — CocoaPods/CocoaPods11 reactions · 2 comments
- Jul 8, 2020[RFC] Move palette iOS component implementations to the eigen repo — artsy/README9 reactions · 16 comments
- Nov 6, 2024RFC: Trial Expo in Energy and/or Palette-Mobile, Spike on Eigen Risks, Rewards and Effort — artsy/README8 reactions · 23 comments
- Aug 2, 2021RFC: Remove helpers — artsy/cohesion8 reactions · 6 comments
- Mar 12, 2018Build as static library with the new CocoaPods version — realm/realm-swift7 reactions · 14 comments
45 more on GitHub
- Jul 25, 2016Prepare for 2.0 release — danger/danger7 reactions · 5 comments
- May 5, 2020Adding react-native-modal to eigen — artsy/README4 reactions · 3 comments
- May 21, 2019Useful commands for iOS development — onmyway133/blog4 reactions
- Mar 15, 2024RFC: Consolidate Eigen feature flags — artsy/README3 reactions · 22 comments
- Nov 28, 2022MasonryFlashList onScroll callback doesn't change the value according to the component scope — Shopify/flash-list3 reactions · 6 comments
- Dec 10, 2024feat(home view): allow section declaration to specify a minimum required Eigen version — artsy/metaphysics2 reactions · 2 comments
- May 15, 2024[supply] return android rollout percentages — fastlane/fastlane2 reactions · 1 comment
- Sep 12, 2023Error stack trace not deobfuscated when using codepush bundle (Hermes + codepush) — getsentry/sentry-react-native2 reactions · 7 comments
- Dec 14, 2021Have the PR option preselected instead of commit to main/master — refined-github/refined-github2 reactions · 3 comments
- May 29, 2020Upgrades to styled-system v5 — artsy/palette2 reactions · 7 comments
- Apr 25, 2019Podfile: Link all non shared pods as static frameworks to reduce pre-main launch time — wordpress-mobile/WordPress-iOS2 reactions
- Sep 28, 2017RFC: For OSS repos, check the license for the current year — artsy/peril-settings2 reactions · 1 comment
- Apr 24, 2026feat: automate release branch creation — artsy/release-lookout1 reaction
- Nov 6, 2025chore: cleanup after fixing eigen<>echo integration — artsy/echo1 reaction
- Jul 3, 2025fix: make alert fetching consistent across the graph — artsy/metaphysics1 reaction · 2 comments
- May 23, 2025[BRE-768] Automate Google Play publishing — bitwarden/android1 reaction · 2 comments
- Nov 13, 2023feat(alerts): reorder filters in new create alert modal — artsy/force1 reaction · 1 comment
- Oct 20, 2023chore: mark ff as cleaned in eigen — artsy/echo1 reaction
- May 19, 2021RFC: Validate PR description Changelogs on Eigen — artsy/peril-settings1 reaction · 6 comments
- Apr 3, 2021POC: conversation event connection — artsy/metaphysics1 reaction · 1 comment
- May 22, 2020Don't require module height for entity group — artsy/cohesion1 reaction · 2 comments
- Mar 14, 2018Optimize launch time? — SRGSSR/playsrg-apple1 reaction · 1 comment
- Jan 25, 2018Better for individuals — jamiebuilds/open-source-by-default-manifesto1 reaction
- Jan 18, 2018RFC: Expand the Slack messaging for RFCs from just this repo to others — artsy/peril-settings1 reaction · 1 comment
- Jul 7, 2017[Dev] Remove all warnings from the project — artsy/emission1 reaction · 1 comment
- Sep 21, 2016Animate artist follow — artsy/emission1 reaction · 9 comments
- Sep 5, 2016[Home][ArtworksRail] Landscape iPad layout should have 4 columns — artsy/emission1 reaction
- Jun 10, 2016Fix crashes. — artsy/emission1 reaction · 1 comment
- Mar 22, 2016Set preferred width when the layout changes. — artsy/Artsy-UILabels1 reaction · 4 comments
- Feb 11, 2016[Idea] Show a person’s local time. — artsy/team-navigator1 reaction · 3 comments
- Aug 3, 2015Dynamic frameworks load time? — artsy/eidolon1 reaction · 16 comments
- Oct 9, 2026feat: popovers - enable edge to edge on all android versions — artsy/palette-mobile0 reactions · 1 comment
- Oct 8, 2026feat(trending-dropdown): serve today trending for all periods — artsy/metaphysics0 reactions · 1 comment
- Sep 28, 2026refactor(artist): use upstream check for blank insights — artsy/force0 reactions · 3 comments
- Jul 31, 2026chore: update ignored routes #trivial — artsy/artsy-eigen-web-association0 reactions
- Jul 31, 2026feat: two-pass Claude review (find, then filter) to cut false positives - behind feature flag — artsy/duchamp0 reactions · 3 comments
- Jul 30, 2026fix(DI-498): onboarding pill scales with accessibility font size — artsy/palette-mobile0 reactions · 1 comment
- Jul 28, 2026chore(recs): enable NWFY only for future eigen versions — artsy/metaphysics0 reactions · 3 comments
- Jul 20, 2026build(deps): update reanimated and worklets — artsy/palette-mobile0 reactions · 3 comments
- Jun 26, 2026feat: add Eigen changelog to the release-candidate PR description — artsy/release-lookout0 reactions · 6 comments
- Jun 17, 2026chore: mark ff eigen retirement date #trivial — artsy/echo0 reactions
- Jun 16, 2026feat: Hide partner offer CTA if ongoing active order/offer in progress PLUS pass in conversation_ID on checkout — artsy/force0 reactions · 1 comment
- Jun 5, 2026Walkthrough 2 — nkzw-tech/codiff0 reactions · 2 comments
- Mar 3, 2026feat: track nwfy grid experiment — artsy/metaphysics0 reactions · 2 comments
- Nov 27, 2024periodic failures when installing rosetta — CircleCI-Public/macos-orb0 reactions · 4 comments
On Stack Overflow · 5
- Feb 9, 2016DYLD_PRINT_STATISTICS not showing anything14 votes
- Mar 10, 2016iOS crash: library not loaded mremap_encrypted4 votes
- Nov 11, 2015Adding several pods increases iOS app launch time by 10+ seconds2 votes
- Mar 31, 2017library integration limit in IOS / Apple0 votes
- Mar 10, 2016Swift Binary rejected and i cannot reproduce the crash0 votes
On Hacker News · 1
- Jan 23, 2015Artsy iOS app is now open-source2 points
Other versions14 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 14
- tabler/tabler★ 42ksame name
- d4rken-org/permission-pilot★ 694same name
- pablopunk/SwiftShift★ 664same name
- bloknayrb/tandem★ 27same name
- xfstudio/skills★ 9same name
- keinstn/drover★ 4same name
- moasq/ios-dev-agent★ 4same name
- magnusrodseth/dotfiles★ 3same name
- wyattjoh/skills★ 3same name
- ai4brands-design/claude-skills★ 2same name
4 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- AGENTS.mdAGENTS.md
- bump-ios-versionSkill
- creating-screensSkill
- eigen-testingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

