store-listing
Skill4 starsChanged 3 months agoMITView on GitHub
Write or audit an app's store listing for the App Store and Google Play. Produces localized metadata (Italian and English first), keyword allocation, descriptions, a screenshot plan with captions, and user-facing release notes converted from a developer changelog, all lint-checked against store limits and policy. Use when the user asks for ASO, App Store Connect or Play Console text, app name, subtitle, keywords, short or full description, promotional text, screenshot captions, "What's New" or release notes, listing localization, keyword research, listing experiments, or to review an existing store listing before submission.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- namedtoaster/The-Last-Miletheir own version, first seen Oct 20, 2026
- saif-o99/app-launch-skillstheir own version, first seen Oct 13, 2026
- thomaslimited/game-shipping-skillstheir own version, first seen Sep 24, 2026
- nvm1410/claude-skillstheir own version, first seen Jun 12, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- namedtoaster/The-Last-Mile★ 39same name
- thomaslimited/game-shipping-skills★ 1same name
- nvm1410/claude-skills★ 0same name
- saif-o99/app-launch-skills★ 0same name
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.
- ai-act-auditSkill
- privacy-auditSkill
- project-workshop-generatorSkill
- store-review-preflightSkill
The file
We split this skill into the rules it gives an agent
12 rules. 0 are common, 4 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Lint before delivery: Run python3 scripts/lint-listing.py <listing.md> --banned "<project banned terms>".
- Distinctive: line 18
Native per locale: Write Italian and English from the audience's search phrases, not by translating.
- Distinctive: line 29
Done when: all items are written down or listed as open questions, and banned/required terms are in a list the linter can read.
- Distinctive: line 33
Read README, product docs, store/compliance notes and the shipped code paths.
- Very specific: line 41
Read references/02-keyword-research.md.
- Very specific: line 43
Done when: every locale has ranked candidates, each tagged with relevance and a volume source or unknown.
- Very specific: line 53
Read references/03-copywriting.md, 06-localization-it-en.md and 08-compliance-guardrails.md.
- Very specific: line 59
Read references/04-screenshots-previews.md.
- Very specific: line 61
If an asset pack already exists, verify dimensions, alpha, durations and locales with the commands in 04-screenshots-previews.md §5b …
- Very specific: line 67
Read references/05-release-notes.md.
- Distinctive: line 69
Done when: every bullet matches a shipped change, limits hold (Apple 4000, Play 500 per language), and the source (changelog or git) and …
- Very specific: line 73
Run the linter, resolve errors, review warnings, run the cross-checks in 08-compliance-guardrails.md §4 (billing, privacy label, age …
“Common” is measured: kept by at least 6 in 10 of the 4 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
Store Listing
Turn product truth into a listing that ranks for the right searches, converts, and passes review. Every claim traces to evidence; every field passes a lint.
Output: listing.md in the canonical format (assets/listing-template.md), plus the artifacts below. Audit mode returns assets/audit-report-template.md.
Ground rules
- Claims need evidence. Each factual statement maps to a row of the claims ledger (
assets/claims-ledger-template.md). No row → delete the claim or mark ❓. - No invented ASO data. Volumes, difficulty, rank and uplift come from the user's tools. Without them, volume is unknown and ranking is by relevance and specificity. Never predict downloads.
- Lint before delivery. Run
python3 scripts/lint-listing.py <listing.md> --banned "<project banned terms>"; deliver only lint-clean text, or list the remaining warnings. - Respect confidence tags.
V= read from the official page on 2026-11-05;V*= summarised;T= practice. Re-open the source (references/00-method.md§5) before a 🔴 on aV*/Trow. - Native per locale. Write Italian and English from the audience's search phrases, not by translating.
- Read-only. Deliver files and paste-ready text; never submit or edit a console.
Workflow
Single-piece requests ("write the release notes") run Step 1, the relevant step, and Step 8.
Step 1 — Frame
Record: mode (Create | Audit), stores, locales, product positioning sentence, audience, tone, category, project banned terms and required phrases, existing listing and constraints, ASO data available (Search Ads, Analytics, Play search terms, tools). Ask unknowns in one batch.
Done when all items are written down or listed as open questions, and banned/required terms are in a list the linter can read.
Step 2 — Product truth and claims ledger
Read README, product docs, store/compliance notes and the shipped code paths. Fill the claims ledger with every claim you intend to make, and the claims that must never be made.
Cross-check claims about matching/ranking, data handling, safety and age against the privacy policy, Terms and store labels: the listing must not say less than the policy discloses nor contradict it.
Done when each planned claim has an evidence class and path (or ❓ with the owner who confirms it), policy-sensitive claims are cross-checked, and the never-claim list exists.
Step 3 — Keyword research
Read references/02-keyword-research.md. Build candidates per locale from the ledger, the users' words and supplied data; score with the worksheet (assets/keyword-worksheet.md).
Done when every locale has ranked candidates, each tagged with relevance and a volume source or unknown.
Step 4 — Field allocation
Allocate terms to fields using references/01-field-specs.md (limits, what each store indexes) and 02-keyword-research.md §5–6.
Done when each locale has a field map within limits, with zero repeated words across Apple name, subtitle and keywords.
Step 5 — Copy
Read references/03-copywriting.md, 06-localization-it-en.md and 08-compliance-guardrails.md. Write all text fields per store and locale into listing.md.
Done when the lint reports no errors, and every sentence maps to a ledger row.
Step 6 — Screenshots and graphics plan
Read references/04-screenshots-previews.md. Fill assets/screenshot-plan-template.md: one message per frame, captions per locale, demo-data source, sizes per store, "never show" list.
If an asset pack already exists, verify dimensions, alpha, durations and locales with the commands in 04-screenshots-previews.md §5b instead of trusting its README.
Done when frames 1–3 are understandable alone, every frame has a ledger id, required sizes for both stores are listed, and existing assets are verified or marked ❓.
Step 7 — Release notes
Read references/05-release-notes.md. Choose the range, run scripts/changelog-to-notes.py, filter by user visibility, write notes per locale and store.
Done when every bullet matches a shipped change, limits hold (Apple 4000, Play 500 per language), and the source (changelog or git) and its freshness are stated.
Step 8 — Lint and report
Run the linter, resolve errors, review warnings, run the cross-checks in 08-compliance-guardrails.md §4 (billing, privacy label, age rating, moderation promises), then fill the report.
Done when lint shows 0 errors, every warning is fixed or justified in the report, and the report names the data it lacks (ASO data, console facts).
Reference navigation
| File | Use |
00-method.md | Modes, verdicts, evidence, freshness URLs |
01-field-specs.md | Limits, indexing, graphics specs, variants (both stores) |
02-keyword-research.md | Research, scoring, field allocation |
03-copywriting.md | Field recipes, skeleton, trust, style |
04-screenshots-previews.md | Plan, frameworks, specs, capture pipeline |
05-release-notes.md | Changelog → notes, limits, templates, wiring |
06-localization-it-en.md | Italian/English strategy, codes, quality checks |
07-experiments.md | PPO, custom pages, Play experiments |
08-compliance-guardrails.md | Apple 2.3 and Play Metadata rules for writers |
Hand-offs: compliance audit of the whole app → store-review-preflight; privacy label and Data safety consistency → privacy-audit.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

