claude-skills / aso-appstore-screenshots [Generate ASO-optimised App Store screenshots]
CLAUDE.md0 starsChanged 3 months agoMITView on GitHub
A Claude Code skill (aso-appstore-screenshots) that guides users through creating high-converting App Store screenshots. It is invoked via the /aso-appstore-screenshots slash command from within a user's app project. Four files + one asset make up the skill:
- Installs packages
We split this CLAUDE.md into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 41
The crop/resize step in SKILL.md is mandatory: after every generate_image or edit_image call — raw Nano Banana output is never the correct …
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What This Is
A Claude Code skill (aso-appstore-screenshots) that guides users through creating high-converting App Store screenshots. It is invoked via the /aso-appstore-screenshots slash command from within a user's app project.
Architecture
Four files + one asset make up the skill:
- SKILL.md — The skill prompt. Defines a multi-phase workflow: Benefit Discovery → Screenshot Pairing → Generation. Uses Claude Code's memory system to persist state across conversations so users can resume mid-workflow. Generation first creates a deterministic scaffold via compose.py, then sends it to Nano Banana Pro for AI enhancement.
- compose.py — A standalone Python compositing script (Pillow-based) that deterministically renders App Store screenshots. Takes a background hex colour, action verb, benefit descriptor, and simulator screenshot path, then produces a pixel-perfect 1290×2796 PNG with headline text, device frame template, and the screenshot composited inside. The verb text auto-sizes to fit the canvas width.
- generate_frame.py — Generates the device frame template PNG (
assets/device_frame.png). Run once to create or update the template. The template is a 1290×2796 RGBA PNG with a black iPhone body, transparent screen cutout, Dynamic Island, and side buttons. - showcase.py — Generates a showcase image showing up to 3 final screenshots side-by-side with an optional GitHub link at the bottom. Used as the final step after all screenshots are approved.
- assets/device_frame.png — Pre-rendered iPhone device frame template used by compose.py. Using a template instead of drawing the frame at compose time ensures pixel-perfect consistency across all generated screenshots.
Running compose.py
# Requires: pip install Pillow
# Requires: SF Pro Display Black font at /Library/Fonts/SF-Pro-Display-Black.otf
python3 compose.py \
--bg "#E31837" \
--verb "TRACK" \
--desc "TRADING CARD PRICES" \
--screenshot path/to/simulator.png \
--output output.png \
--accent # optional: adds dark arc behind deviceKey Design Decisions
- Two-stage generation: compose.py creates a deterministic scaffold first (text + frame + screenshot), then Nano Banana Pro enhances it. This avoids the inconsistencies of generating from scratch.
- compose.py outputs exact App Store Connect dimensions (1290×2796 for iPhone 6.7") — no post-processing crop needed.
- Device frame is a template image (
assets/device_frame.png) — not drawn at compose time. Regenerate withpython3 generate_frame.pyif the frame design needs updating. - Verb text auto-sizes — shrinks from 172px down to 100px to fit multi-word verbs (e.g. "TURN YOURSELF") within the canvas width.
- SKILL.md always generates 3 versions in parallel for each benefit so the user can pick the best one.
- The crop/resize step in SKILL.md is mandatory after every
generate_imageoredit_imagecall — raw Nano Banana output is never the correct dimensions for App Store Connect. - Memory is central to the workflow — benefits, screenshot assessments, pairings, brand colour, and generation state are all persisted so users can resume across conversations.
Other versions2 projects use a version of this.
Word for word · 2
- adamlyttleapps/claude-skill-aso-appstore-screenshots★ 1.7k100% same
- SZcalligrapher/slash-skills-subscription★ 32100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
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 repository21 other files it gives its agents.
- apple-designSkill
- aso-appstore-screenshotsSkill
- defuddleSkill
- design-examplesSkill
- ergonomieSkill
- grillingSkill
- grill-meSkill
- huashu-designSkill
- humanizerSkill
- json-canvasSkill
- karpathy-guidelinesSkill
- knapSkill
- macos-app-iconSkill
- nothing-designSkill
- obsidian-basesSkill
- obsidian-cliSkill
- obsidian-markdownSkill
- shadcn-ui-component-managerSkill
- systematic-bug-diagnosis-loopSkill
- vibe-coding-lexiconSkill
- youtube-analyzerSkill
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.

