Claude Cursor Skill

store-listing-assets

Use when writing store copy to character limits (name, subtitle, descriptions, keywords) or preparing listing images (icon, feature graphic, screenshots, preview video).

LLM Mart · 0 points · 14 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download evanca-flutter-ai-rules-skills_store-listing-assets-7d226d8.zip · 8 KB
Part of evanca/flutter-ai-rules — 37 skills

Install

skills CLI npx skills add https://github.com/evanca/flutter-ai-rules/tree/main/skills/store-listing-assets
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install evanca-flutter-ai-rules@llmmart
Git git clone https://github.com/evanca/flutter-ai-rules.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole evanca/flutter-ai-rules collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Store Listing Assets & Copy

Prepare the metadata, copy, and visual assets that go into an App Store / Google Play phone listing, sized and length-fit to each store's exact requirements. This is the listing production skill; pair it with a separate review-readiness audit at submission time so the fields are polished and the app itself is ready for review.

Two references hold the authoritative specs; consult them for exact numbers rather than reciting from memory (they drift):

  • references/mobile_listing_checklist.md — the actionable checklist (shared prep → per-store required → recommended → final check)
  • references/spec_reference.md — the full spec tables, minimal valid examples, store-specific traps, and known gaps to verify live

Default scope is phone-only. Skip tablet, iPad, desktop, Chromebook, TV, watch, Mac, and visionOS assets unless the user says the app supports them — and if they do, note that those are separate asset families outside these specs.

How to use this skill

  1. Gather the inputs once (shared prep): final app name, what the app does in one sentence, primary category, whether it has ads, whether it collects/shares/tracks data, privacy policy URL, support contact, and launch languages. These feed both stores.
  2. Confirm which store(s) the user is targeting — the required set differs enough that doing both blindly wastes effort.
  3. Produce copy AND/OR assets per the requests below, always checking generated text against the live character/byte limits and generated images against the exact pixel/format specs.

Writing store copy (fit to limits)

Character limits are hard constraints — always count and show the count. Key limits (full set in the references):

Field Google Play Apple
App name 30 chars 2–30 chars
Subtitle — (no field) 30 chars
Short description 80 chars — (use Promotional Text, 170)
Full description 4,000 chars 4,000 chars, plain text
Keywords — (no field; don't keyword-stuff the description) ≤100 bytes, each keyword >2 chars

Copywriting rules that keep the listing compliant:

  • Lead with what the app does, in the first sentence — it's what shows before "more".
  • Apple keywords are bytes, not characters, comma-separated with no spaces (notes,checklists,tasks) to save bytes; non-ASCII eats more than one byte each. Keywords are invisible to users but drive search — don't repeat the app name or category (already indexed).
  • Avoid claim words: "best", "#1", "free" (unless unconditionally true), rankings, awards, and pricing claims — in text AND baked into images. These trigger rejection and are called out in both stores' policies.
  • When both stores are in play, write once and adapt: Play's 80-char short description ≈ Apple's subtitle+promo-text job; Apple needs a keywords line Play doesn't.
  • Offer to localize per launch language; note Apple defaults screenshots/shared metadata from the primary language when you add a localization, except description and keywords (write those per language).

Producing visual assets (exact specs)

When generating or resizing images with tooling (ImageMagick, etc.), hit these exactly — wrong format/alpha/dimension is an instant listing error:

Google Play

  • Play icon: 512×512 px, 32-bit PNG with alpha, ≤1024 KB
  • Feature graphic: 1024×500 px, JPEG or 24-bit PNG, no alpha — required to publish
  • Phone screenshots: 2–8, JPEG or 24-bit PNG, no alpha, min side 320 px, max 3840 px, longest side ≤ 2× shortest. Recommended: ≥4 at 1080×1920 (portrait) or 1920×1080 (landscape)

Apple (iPhone)

  • Icon: comes from the build (Xcode asset catalog, one 1024×1024 source) — not a separate listing upload
  • iPhone screenshots: 1–10, .jpg/.jpeg/.png. Preferred 6.9": 1320×2868, 1290×2796, or 1260×2736 portrait; if not providing 6.9", 6.5" required: 1284×2778 or 1242×2688. Apple scales down to smaller iPhones
  • App preview (optional): ≤3 per size/language, 15–30 s, ≤500 MB, ≤30 fps, H.264/.mp4 (reusable iPhone res 886×1920 / 1920×886)

Screenshot content rules: show real app UI in use (not splash/login/mockups), no unsupported devices, no fake UI, no misleading or pricing claims baked in. Verify generated images match the actual submitted build.

Deliverables

  • Full listing copy set — name, subtitle/short description, full description, keywords, promotional text — each labeled with its character/byte count against the limit, per targeted store
  • Asset spec sheet / production — the exact dimensions and formats the user needs, or the generated/resized images themselves (offer to run ImageMagick for resizing/format conversion)
  • Fill-in-the-fields walkthrough — the checklist from references/mobile_listing_checklist.md adapted to the user's app, marking which conditional items apply (account deletion URL, app access instructions, restricted permissions, export compliance)
  • Pre-submission asset audit — the section 6 final check: assets match the build, no placeholder/staging content, name consistent everywhere, previewed in each language

At submission time, also run a review-readiness audit, and if RevenueCat/paywalls are involved, verify paywall clarity separately.

Files (flutter-ai-rules)
  • references
    • mobile_listing_checklist.md 4.3 KB
      # Mobile-only Store Listing Checklist
      
      > Scope: **phone only**. Skip tablet, iPad, desktop, Chromebook, TV, watch, Mac, and visionOS assets unless your app supports them.
      
      ## 1. Shared prep
      
      - [ ] Confirm app name is final.
      - [ ] Prepare privacy policy URL.
      - [ ] Prepare support contact or support URL.
      - [ ] Decide primary category.
      - [ ] Decide target age group / age rating answers.
      - [ ] Confirm whether app contains ads.
      - [ ] Confirm whether app collects, shares, or tracks user data.
      - [ ] Prepare localized copy and assets for each launch language.
      
      ## 2. Google Play, required
      
      ### Store copy
      - [ ] App name, max **30 chars**.
      - [ ] Short description, max **80 chars**.
      - [ ] Full description, max **4,000 chars**.
      - [ ] Category.
      - [ ] Support email.
      - [ ] Privacy policy URL.
      
      ### Visual assets
      - [ ] App icon: **512 × 512 px**, PNG, 32-bit with alpha, max **1024 KB**.
      - [ ] Feature graphic: **1024 × 500 px**, JPG or 24-bit PNG, no alpha.
      - [ ] Phone screenshots: minimum **2**, maximum **8**.
        - [ ] JPG or 24-bit PNG.
        - [ ] No alpha.
        - [ ] Min side: **320 px**.
        - [ ] Max side: **3840 px**.
        - [ ] Longest side no more than **2×** shortest side.
      
      ### Console declarations
      - [ ] Data Safety form.
      - [ ] Content rating questionnaire.
      - [ ] Target audience declaration.
      - [ ] Contains ads: Yes / No.
      - [ ] App access instructions, only if login or gated content exists.
      - [ ] Account deletion URL, only if users can create accounts.
      - [ ] Restricted permission declarations, only if applicable.
      
      ## 3. Google Play, recommended
      
      - [ ] Use at least **4 phone screenshots**.
      - [ ] Preferred screenshot size:
        - [ ] Portrait: **1080 × 1920 px**.
        - [ ] Landscape: **1920 × 1080 px**.
      - [ ] Add preview video via YouTube URL.
        - [ ] Public or unlisted.
        - [ ] Embeddable.
        - [ ] Not age-restricted.
        - [ ] Ads / monetization disabled.
      - [ ] Localize title, descriptions, screenshots, icon, and feature graphic where useful.
      - [ ] Avoid "best", "#1", "free", rankings, awards, pricing claims, or misleading badges in title, icon, screenshots, and feature graphic.
      
      ## 4. Apple App Store, required
      
      ### App record
      - [ ] App name, **2 to 30 chars**.
      - [ ] Bundle ID.
      - [ ] SKU.
      - [ ] Primary language.
      - [ ] Primary category.
      - [ ] Copyright.
      
      ### Store copy
      - [ ] Subtitle, max **30 chars**.
      - [ ] Description, max **4,000 chars**, plain text.
      - [ ] Keywords, max **100 bytes**.
      - [ ] Support URL.
      - [ ] Privacy Policy URL.
      
      ### Visual assets
      - [ ] App icon included in the build.
        - [ ] Use Xcode asset catalog.
        - [ ] Source icon: **1024 × 1024 px**.
      - [ ] iPhone screenshots: minimum **1**, maximum **10**.
        - [ ] JPG, JPEG, or PNG.
        - [ ] Use modern iPhone size set.
        - [ ] Preferred 6.9-inch portrait sizes:
          - [ ] **1320 × 2868 px**, or
          - [ ] **1290 × 2796 px**, or
          - [ ] **1260 × 2736 px**.
        - [ ] Or 6.5-inch portrait sizes if not using 6.9-inch:
          - [ ] **1284 × 2778 px**, or
          - [ ] **1242 × 2688 px**.
      
      ### App Store Connect declarations
      - [ ] App Privacy answers.
      - [ ] Age rating questionnaire.
      - [ ] Export compliance answers, especially if app uses encryption.
      - [ ] Regulated content / medical declarations, only if applicable.
      
      ## 5. Apple App Store, recommended
      
      - [ ] Add Promotional Text, max **170 chars**.
      - [ ] Add Marketing URL.
      - [ ] Add app preview video, optional.
        - [ ] Up to **3** per device size and language.
        - [ ] **15 to 30 seconds**.
        - [ ] Max **500 MB**.
        - [ ] Up to **30 fps**.
        - [ ] H.264 or ProRes 422 HQ.
        - [ ] `.mov`, `.m4v`, or `.mp4` depending on codec.
      - [ ] Localize app name, subtitle, description, keywords, URLs, screenshots, and previews.
      - [ ] Keep screenshots focused on real app UI.
      - [ ] Do not show unsupported devices, fake UI, misleading claims, or pricing claims that may change.
      
      ## 6. Final submission check
      
      - [ ] No tablet, iPad, desktop, Chromebook, Mac, TV, watch, or visionOS assets included unless supported.
      - [ ] All screenshots match the submitted app build.
      - [ ] All privacy answers match actual SDK and app behavior.
      - [ ] Privacy policy is live, public, and not a PDF.
      - [ ] Support contact works.
      - [ ] App name is consistent across app, store, website, and privacy policy.
      - [ ] No placeholder text, test accounts, debug UI, staging URLs, or lorem ipsum.
      - [ ] Build uploaded and selected for review.
      - [ ] Release notes added where required.
      - [ ] Store listing preview checked in each launch language.
      
    • spec_reference.md 8.5 KB
      # Mobile-Only Store Listing Minimum for Google Play and Apple App Store
      
      Sourced from official Google Play Console/policy help and Apple App Store Connect/Xcode docs. Compiled 2026-07. **Specs change over time — re-verify against the live console at submission, especially the "not stated / verify" items.**
      
      ## Executive summary
      
      For a **mobile-only launch**, the minimum submission set differs between the stores:
      
      - **Google Play (phone)**: separate **Play icon**, **feature graphic** (now required to publish), **short description**, **full description**, **≥2 screenshots**, plus **category**, **support email**, **privacy policy**, **Data safety**, **content rating**, **target audience**, and an **ads yes/no** declaration. No keywords field.
      - **Apple App Store (iPhone-only)**: **app icon supplied in the build**, **app name**, **subtitle**, **description**, **keywords**, **support URL**, **privacy policy URL**, **copyright**, **category**, **age rating**, **App Privacy answers**, and **≥1 iPhone screenshot**. App previews optional.
      
      Key contrasts: Google requires a feature graphic + 2 screenshots but has no keywords; Apple requires keywords + support URL but only 1 screenshot minimum and the icon comes from the build (not a separate listing upload). Apple has stricter device-family screenshot rules.
      
      ## Google Play — required fields and assets (phone only)
      
      | Item | Status | Specs / limits | Notes |
      |---|---|---|---|
      | App name | Required | 30 chars max, one localized name per language | Public listing title; must be policy-compliant |
      | Short description | Required | 80 chars max | Shown first on the detail page; localize when possible |
      | Full description | Required | 4,000 chars max | Google warns against repetitive/irrelevant keywords |
      | Play icon | Required | 32-bit PNG with alpha, 512×512 px, max 1024 KB | Separate store icon; no misleading badges/ranking text |
      | Feature graphic | Required | JPEG or 24-bit PNG, no alpha, 1024×500 px; no standalone max file size stated | Large-format art + preview-video cover; **required to publish** |
      | Phone screenshots | Required | Min 2 to publish; JPEG or 24-bit PNG, no alpha; min side 320 px, max 3840 px; longest side ≤ 2× shortest; up to 8 per device type | Google recommends ≥4 at 1080×1920 portrait or 1920×1080 landscape for featuring |
      | Preview video | Optional, recommended | 1 YouTube URL (no direct upload); public/unlisted, embeddable, not age-restricted, ads/monetization disabled | Strongly recommended for games |
      | Category | Required | Select app/game type + category in Store settings | Tags optional, up to 5 |
      | Support email | Required | Email required; website/phone optional | Displayed on listing |
      | Privacy policy URL | Required | Active, public, non-geofenced, non-editable, no PDFs | Required for ALL apps, even those collecting no data |
      | Data safety form | Required | Console declaration, no char limit | Required for all published apps except internal-testing-only |
      | Content rating | Required | IARC questionnaire | Result shown on listing |
      | Target audience | Required | Target age group declaration in App content | Children → Families policy applies |
      | Contains ads | Required | Yes/No in App content | If yes, "Contains ads" label shown |
      | Conditional disclosures | Only if applicable | Restricted-permission declarations, app access instructions for gated areas, News app declaration, account deletion URL if accounts exist | Not universal |
      
      ## Apple App Store — required fields and assets (iPhone only)
      
      | Item | Status | Specs / limits | Notes |
      |---|---|---|---|
      | App name | Required | 2–30 chars, localized | Public product-page name |
      | Subtitle | Required (per Apple's required-properties reference) | 30 chars max, localized | Under the app name on the product page |
      | Description | Required | 4,000 chars max, plain text, localized | Public product-page copy |
      | Keywords | Required | ≤100 bytes total, each keyword >2 chars, localized | Not shown publicly; search metadata |
      | Support URL | Required | Full URL incl. protocol, localized | Must lead to real contact info |
      | Privacy Policy URL | Required | Full URL | Separate from App Privacy answers |
      | App Privacy | Required | Questions/data types in ASC | "No, we do not collect data" path allowed |
      | Age rating | Required | Apple questionnaire | Unrated apps cannot publish |
      | Category metadata | Required | Primary Category (Secondary also listed as required); Games/Stickers need subcategories | |
      | Copyright | Required | Free text, © added automatically | |
      | iPhone screenshots | Required | 1–10 in .jpeg/.jpg/.png. Preferred 6.9": 1320×2868, 1290×2796, or 1260×2736 portrait (or landscape). If not providing 6.9", 6.5" required: 1284×2778 or 1242×2688 | Apple scales down to smaller iPhones; no standalone max file size stated |
      | App preview | Optional, recommended | Up to 3 per size/language; H.264 or ProRes 422 HQ; .mov/.m4v/.mp4; max 500 MB; 15–30 s; ≤30 fps; reusable iPhone res 886×1920 portrait / 1920×886 landscape | Previews appear before screenshots |
      | App icon | Required | Supplied in Xcode build (not a separate ASC upload); iOS auto-generates variations from one 1024×1024 image | Comes from build pipeline; no standalone max file size stated |
      | Marketing URL | Optional | Full URL, localizable | |
      | Promotional Text | Optional | 170 chars max | Editable without a new version submission |
      | Conditional disclosures | Only if applicable | Export-compliance answers (encryption), regulated-medical-device status, regional compliance | Not universal |
      
      ## Minimal valid examples (syntactic, not optimized marketing)
      
      ### Google Play
      | Field | Example |
      |---|---|
      | App name | `Acorn Notes` |
      | Short description | `Fast notes and checklists that sync across your devices.` |
      | Full description | `Acorn Notes lets you capture notes, build checklists, and keep everything organized. Create lists, pin important items, and sync your content across your signed-in devices.` |
      | Category | `Productivity` |
      | Support email | `support@example.com` |
      | Privacy policy URL | `https://example.com/privacy` |
      | Contains ads | `No` |
      | Data safety | `No data collected` |
      | Target audience | `Ages 16-17 and 18+` |
      | Preview video URL | `https://www.youtube.com/watch?v=EXAMPLE12345` |
      
      ### Apple App Store
      | Field | Example |
      |---|---|
      | App name | `Acorn Notes` |
      | Subtitle | `Fast lists and notes` |
      | Description | `Acorn Notes helps you capture ideas, build checklists, and stay organized. Create notes, group lists, and keep important items easy to find.` |
      | Keywords | `notes,checklists,tasks,organizer,sync` |
      | Support URL | `https://example.com/support` |
      | Privacy Policy URL | `https://example.com/privacy` |
      | Primary Category | `Productivity` |
      | Secondary Category | `Utilities` |
      | Copyright | `2026 Acorn Labs LLC` |
      | App Privacy | `No, we do not collect data from this app` |
      | Age rating | `No objectionable content; no unrestricted web access` |
      | Optional app preview | `886×1920 H.264 .mp4, 20 seconds` |
      
      ## Store-specific notes
      
      - **Google Play trap:** the current minimum requires BOTH a 512×512 icon AND a 1024×500 feature graphic to publish, plus ≥2 screenshots. Tablet/Chromebook screenshots have a separate minimum of 4 (out of scope here).
      - **Apple trap:** device-family specificity. iPhone and iPad media are separate; Apple scales from the highest required size down. iPhone-only = a single iPhone family set. iPad support adds a separate requirement outside this scope.
      - **Localization:** Google — one localized name per language plus localized text/screenshots/graphics; falls back to default or auto-translation. Apple — metadata localizations selected by user language/storefront; localized keywords affect search; adding a localization defaults screenshots and shared properties from the primary language except description and keywords.
      
      ## Known gaps ("not stated on cited page" — verify at submission)
      
      - Apple screenshot spec page publishes formats/counts/pixel dimensions but **not a standalone max screenshot file size**; same for the Apple icon source asset.
      - Google preview-assets page publishes screenshot formats and pixel constraints but **not a separate screenshot file-size cap** (icon cap is 1024 KB).
      - Apple's required-properties reference lists Subtitle and Secondary Category as required but the web table's yes/no markers don't parse cleanly for every row — treat as required, confirm in ASC.
      - Google says min 2 screenshots "across different device types" to publish while also allowing up to 8 per device type; for mobile-only, treat 2 phone screenshots as the minimum and sanity-check the live Play Console UI.
      
  • SKILL.md 5.5 KB
    ---
    name: store-listing-assets
    description: "Use when writing store copy to character limits (name, subtitle, descriptions, keywords) or preparing listing images (icon, feature graphic, screenshots, preview video)."
    license: MIT
    ---
    
    # Store Listing Assets & Copy
    
    Prepare the metadata, copy, and visual assets that go into an App Store / Google Play **phone** listing, sized and length-fit to each store's exact requirements. This is the *listing production* skill; pair it with a separate review-readiness audit at submission time so the fields are polished and the app itself is ready for review.
    
    Two references hold the authoritative specs; consult them for exact numbers rather than reciting from memory (they drift):
    - `references/mobile_listing_checklist.md` — the actionable checklist (shared prep → per-store required → recommended → final check)
    - `references/spec_reference.md` — the full spec tables, minimal valid examples, store-specific traps, and known gaps to verify live
    
    **Default scope is phone-only.** Skip tablet, iPad, desktop, Chromebook, TV, watch, Mac, and visionOS assets unless the user says the app supports them — and if they do, note that those are separate asset families outside these specs.
    
    ## How to use this skill
    
    1. **Gather the inputs once** (shared prep): final app name, what the app does in one sentence, primary category, whether it has ads, whether it collects/shares/tracks data, privacy policy URL, support contact, and launch languages. These feed both stores.
    2. **Confirm which store(s)** the user is targeting — the required set differs enough that doing both blindly wastes effort.
    3. **Produce copy AND/OR assets** per the requests below, always checking generated text against the live character/byte limits and generated images against the exact pixel/format specs.
    
    ## Writing store copy (fit to limits)
    
    Character limits are hard constraints — always count and show the count. Key limits (full set in the references):
    
    | Field | Google Play | Apple |
    |---|---|---|
    | App name | 30 chars | 2–30 chars |
    | Subtitle | — (no field) | 30 chars |
    | Short description | 80 chars | — (use Promotional Text, 170) |
    | Full description | 4,000 chars | 4,000 chars, plain text |
    | Keywords | — (no field; don't keyword-stuff the description) | ≤100 **bytes**, each keyword >2 chars |
    
    Copywriting rules that keep the listing compliant:
    - **Lead with what the app does**, in the first sentence — it's what shows before "more".
    - **Apple keywords are bytes, not characters**, comma-separated with no spaces (`notes,checklists,tasks`) to save bytes; non-ASCII eats more than one byte each. Keywords are invisible to users but drive search — don't repeat the app name or category (already indexed).
    - **Avoid claim words**: "best", "#1", "free" (unless unconditionally true), rankings, awards, and pricing claims — in text AND baked into images. These trigger rejection and are called out in both stores' policies.
    - When both stores are in play, write once and adapt: Play's 80-char short description ≈ Apple's subtitle+promo-text job; Apple needs a keywords line Play doesn't.
    - Offer to localize per launch language; note Apple defaults screenshots/shared metadata from the primary language when you add a localization, **except description and keywords** (write those per language).
    
    ## Producing visual assets (exact specs)
    
    When generating or resizing images with tooling (ImageMagick, etc.), hit these exactly — wrong format/alpha/dimension is an instant listing error:
    
    **Google Play**
    - Play icon: **512×512 px**, 32-bit PNG **with alpha**, ≤1024 KB
    - Feature graphic: **1024×500 px**, JPEG or 24-bit PNG, **no alpha** — required to publish
    - Phone screenshots: 2–8, JPEG or 24-bit PNG, no alpha, min side 320 px, max 3840 px, longest side ≤ 2× shortest. Recommended: ≥4 at 1080×1920 (portrait) or 1920×1080 (landscape)
    
    **Apple (iPhone)**
    - Icon: comes from the **build** (Xcode asset catalog, one 1024×1024 source) — not a separate listing upload
    - iPhone screenshots: 1–10, .jpg/.jpeg/.png. Preferred 6.9": **1320×2868**, 1290×2796, or 1260×2736 portrait; if not providing 6.9", 6.5" required: **1284×2778** or 1242×2688. Apple scales down to smaller iPhones
    - App preview (optional): ≤3 per size/language, 15–30 s, ≤500 MB, ≤30 fps, H.264/.mp4 (reusable iPhone res 886×1920 / 1920×886)
    
    Screenshot content rules: show **real app UI in use** (not splash/login/mockups), no unsupported devices, no fake UI, no misleading or pricing claims baked in. Verify generated images match the actual submitted build.
    
    ## Deliverables
    
    - **Full listing copy set** — name, subtitle/short description, full description, keywords, promotional text — each labeled with its character/byte count against the limit, per targeted store
    - **Asset spec sheet / production** — the exact dimensions and formats the user needs, or the generated/resized images themselves (offer to run ImageMagick for resizing/format conversion)
    - **Fill-in-the-fields walkthrough** — the checklist from `references/mobile_listing_checklist.md` adapted to the user's app, marking which conditional items apply (account deletion URL, app access instructions, restricted permissions, export compliance)
    - **Pre-submission asset audit** — the section 6 final check: assets match the build, no placeholder/staging content, name consistent everywhere, previewed in each language
    
    At submission time, also run a review-readiness audit, and if RevenueCat/paywalls are involved, verify paywall clarity separately.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related