name: play-store-forge version: "1.0.0" description: "End-to-end Play Store asset pipeline β boots Android emulator, captures real screenshots, extracts brand colors, and generates icon, feature graphic, and framed screenshots using Gemini Imagen, AI Studio, or Replicate." argument-hint: "play-store-forge | play-store-forge screenshots | play-store-forge generate | play-store-forge icon" allowed-tools: Bash, Read, Write, Edit, AskUserQuestion author: ranahaani license: MIT repository: https://github.com/ranahaani/play-store-forge user-invocable: true metadata: openclaw: emoji: "π¨" requires: bins: - adb - python3 optionalEnv: - GEMINI_API_KEY - REPLICATE_API_TOKEN - GOOGLE_APPLICATION_CREDENTIALS optionalBins: - emulator - flutter files: - "scripts/*" tags: - android - flutter - play-store - asset-generation - screenshot - gemini - imagen - marketing
Play Store Forge
Full Play Store asset pipeline in one skill. Captures real screenshots from your running app, extracts brand colors, and generates production-ready icon, feature graphic, and screenshots using AI image generation.
Quick Start
/play-store-forge # full pipeline
/play-store-forge screenshots # capture only
/play-store-forge generate # generate assets only (skip capture)
/play-store-forge icon # icon only
All scripts are in scripts/ next to this SKILL.md. Copy them anywhere and run independently.
STEP 0 β Read the project
Before anything, understand what you're working with:
# Flutter: get package name and app name
grep -E "applicationId|namespace" android/app/build.gradle.kts 2>/dev/null || \
grep "applicationId" android/app/build.gradle 2>/dev/null
grep "^name:" pubspec.yaml 2>/dev/null
# Detect brand colors from theme file (if Flutter)
python3 scripts/extract_colors.py --from-theme lib/theme/tokens.dart 2>/dev/null || \
python3 scripts/extract_colors.py --from-theme lib/theme/app_colors.dart 2>/dev/null || \
python3 scripts/extract_colors.py --from-xml android/app/src/main/res/values/colors.xml 2>/dev/null
Store what you find:
APP_NAMEβ display namePACKAGE_IDβ e.g.com.example.myappPRIMARY_COLORβ primary brand hex e.g.#2563EB
STEP 1 β Emulator check
# Check for running device/emulator
adb devices
# If none running, list available AVDs
emulator -list-avds 2>/dev/null || echo "emulator not in PATH β add \$ANDROID_HOME/emulator"
# Boot an AVD (replace <AVD_NAME>)
emulator -avd <AVD_NAME> -no-audio -no-boot-anim > /dev/null 2>&1 &
# Wait for boot
until adb shell getprop sys.boot_completed 2>/dev/null | grep -q "1"; do sleep 2; done
echo "Ready"
If no AVD exists, tell the user:
"No AVD found. Open Android Studio β Tools β Device Manager β Create Device, then re-run."
STEP 2 β Capture screenshots
Copy scripts/capture_screenshots.sh to the project root and run it:
# Make executable and run
chmod +x scripts/capture_screenshots.sh
# With package auto-launch
bash scripts/capture_screenshots.sh store_assets/raw_screenshots com.example.myapp
# Without auto-launch (you navigate manually)
bash scripts/capture_screenshots.sh store_assets/raw_screenshots
The script prompts for each screen type (home, feature, detail, settings, onboarding) and captures on Enter. Press 's' to skip a screen.
After capture, extract colors from the real screenshots:
python3 scripts/extract_colors.py
# Outputs: store_assets/colors.json + suggests --primary-color value
STEP 3 β Generate assets
Provider setup (choose one)
Option A: Vertex AI β ~$0.02/image (recommended, best quality)
# Needs: service account JSON with Vertex AI User role
python3 scripts/generate_assets.py \
--provider vertex \
--key /path/to/service-account.json \
--project your-gcp-project-id \
--app-name "My App" \
--primary-color "#2563EB" \
--tagline "Stay Protected"
Option B: AI Studio API key β free tier available
# Get key: aistudio.google.com β Get API key
python3 scripts/generate_assets.py \
--provider aistudio \
--api-key "AIza..." \
--app-name "My App" \
--primary-color "#2563EB"
Option C: Replicate β no GCP needed
# Get token: replicate.com β Account β API tokens
python3 scripts/generate_assets.py \
--provider replicate \
--api-key "r8_..." \
--app-name "My App" \
--primary-color "#2563EB"
Generate only specific assets
# Icon only
python3 scripts/generate_assets.py --provider vertex --key key.json --project proj \
--app-name "My App" --primary-color "#2563EB" --assets icon
# Feature graphic + screenshots
python3 scripts/generate_assets.py ... --assets feature_graphic screenshot_1 screenshot_2
STEP 4 β Resize to Play Store specs
pip install Pillow -q
# Resize all generated assets at once
python3 scripts/resize_assets.py --all
# Or individually
python3 scripts/resize_assets.py --icon store_assets/icon.jpg
python3 scripts/resize_assets.py --feature store_assets/feature_graphic.jpg
Play Store exact specs:
- Icon: 512Γ512 PNG, max 1024KB
- Feature graphic: 1024Γ500 JPG or PNG
- Screenshots: 320β3840px on either side, JPG or PNG
STEP 5 β Final output
After the full pipeline, store_assets/ should contain:
store_assets/
βββ icon_512.png β Upload as App icon
βββ feature_graphic_1024x500.jpg β Upload as Feature graphic
βββ screenshot_01_ready.jpg β Phone screenshots
βββ screenshot_02_ready.jpg
βββ screenshot_03_ready.jpg
βββ colors.json β Brand colors (reference)
βββ raw_screenshots/ β Original adb captures
βββ 01_home.png
βββ 02_feature.png
βββ 03_detail.png
Play Console upload path:
Grow users β Store listings β Default store listing β Edit β Listing assets
Install dependencies
# Core (always needed)
pip install Pillow
# Vertex AI or AI Studio
pip install google-genai google-auth
# Replicate
pip install replicate requests
Tips for better results
| Goal | Prompt tip |
|---|---|
| No text on icon | Add Absolutely NO text, NO letters, NO words anywhere |
| On-brand colors | Include exact hex: deep blue #1D4ED8 not just "blue" |
| Store quality | Add professional, Play Store icon, app store quality |
| Clean icon | Add flat design, minimal, geometric, white background |
| Cinematic feature | Add wide cinematic, dramatic lighting, marketing banner |
If an image has unwanted text: add absolutely NO text and regenerate β never retry the same prompt.
Troubleshooting
| Error | Fix |
|---|---|
| adb: no devices | Start emulator or connect device first |
| emulator: command not found | export PATH=$PATH:$ANDROID_HOME/emulator |
| 403 PERMISSION_DENIED (Vertex) | IAM takes ~60s to propagate β wait and retry |
| ModuleNotFoundError: PIL | pip install Pillow |
| ModuleNotFoundError: google.genai | pip install google-genai google-auth |
| Feature graphic wrong size | Run resize_assets.py --feature after generation |
| Blurry icon | Use --assets icon and regenerate with more specific prompt |
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.