aso-audit
Skill13 starsChanged 52 days agoMITView on GitHub
Use for a full App Store Optimization health check or report card on an existing app listing with the `aso` CLI, when the ask is "how healthy is my listing overall" rather than one specific fix. Trigger on "audit my ASO", "how is my app doing", "review my app store listing", "ASO health check", "what's wrong with my listing", or "give me a report card", even if the user is vague about what exactly to check. Grades metadata utilization, keyword coverage and ranks, ratings vs competitors, localization coverage, and conversion assets on an A-F scale, each dimension backed by a number from `aso app`, `aso keywords`, `aso lint`, and `aso search`, never a guess.
12 other projects use a version of this.
Adopted by
Most recently taken up by
- mia-ppp/PMM-Skillstheir own version, first seen Oct 25, 2026
- carbonit2023/claude-skillstheir own version, first seen Oct 20, 2026
- ai-vita/skillstheir own version, first seen Oct 20, 2026
- timruebenach/claude-skillstheir own version, first seen Oct 13, 2026
- trysonar/skillstheir own version, first seen Oct 1, 2026
- Shri-Phnx/claude-skillstheir own version, first seen Sep 3, 2026
Used with
Projects with it also use ab-test-store-listing, app-analytics and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
appeekySkillab-test-store-listing
When the user wants to A/B test App Store product page elements to improve conversion rate. Also use when the user mentions "A/B test", "product page optimization", "test my screenshots", "test my icon", "conversion rate optimization", "CPP", or "custom product pages". For screenshot design, see screenshot-optimization. For metadata optimization, see metadata-optimization.
Also in 3 projects that use this
appeekySkillapp-analytics
When the user wants to set up, interpret, or improve their app analytics and tracking. Also use when the user mentions "analytics", "tracking", "metrics", "KPIs", "App Store Connect analytics", "install tracking", "funnel", "attribution", or "how is my app performing". For A/B testing, see ab-test-store-listing. For retention metrics, see retention-optimization.
Also in 3 projects that use this
- +10 more from appeeky
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- appeeky/aso-skills★ 2.2ksame name
- Eronred/aso-skills★ 2.2ksame name
- Kungfookenny123/aso-skills★ 2same name
- mia-ppp/PMM-Skills★ 2same name
- Shri-Phnx/claude-skills★ 2same name
- ai-vita/skills★ 1same name
- blueskynnn-cloud/claude-skills★ 0same name
- carbonit2023/claude-skills★ 0same name
- excell2024/ClaudeSkills★ 0same name
- timruebenach/claude-skills★ 0same name
2 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 repository7 other files it gives its agents.
- aso-competitorsSkill
- aso-conversionSkill
- aso-keyword-researchSkill
- aso-localizationSkill
- aso-metadataSkill
- asoSkill
- aso-trackingSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
0
Distinctive
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 29
If the project has a fastlane metadata/ tree with multiple locale folders, also run:
“Common” is measured: kept by at least 6 in 10 of the 12 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
ASO Audit
Produce a data-backed report card, not an opinion. Every grade must trace back to a number from the CLI, and every dimension you can't measure gets marked unknown instead of guessed at. Preflight: see the aso router skill.
Iron law
Grade on data, not impressions. "Your keywords look fine" is not an audit finding. A grade needs a metric behind it: a lint score, a rank, a rating count, a character count. If you don't have the metric, the dimension is "unknown," not a guessed grade.
Intake
- App ID (required), primary storefront (default US)
- Additional storefronts to check? (locale coverage dimension needs this)
- 1-3 competitor app IDs for the ratings/rank comparison (ask, or derive via
aso-competitors's Step 1)
Step 1: Gather data
aso app <appId> --lang en-US
aso lint --title "<current title>" --subtitle "<current subtitle>" --keywords "<current keywords>" --locale en-US
aso keywords <current keyword list + shortlist candidates> --app <appId> -c US
aso search "<core keyword>" --limit 20 -c USIf the project has a fastlane metadata/ tree with multiple locale folders, also run:
aso lint --fastlane <metadata dir>Step 2: Set the brand-maturity tier first
Before grading title/subtitle/conversion, place the app in a rough tier (Dominant, Established, or Challenger) by its own ratingCount from aso app and the category norm from the competitor pulls, so a household name's brand-only title isn't penalized as if it were a weak, keyword-empty one. Exact tier signals and grading implications are in references/grading-rubrics.md, open it now.
Step 3: Grade five dimensions (A-F)
Grade each of these against the exact A-F criteria in references/grading-rubrics.md (read it before assigning any letter): metadata utilization (from aso lint's score/issues[], read through the brand-maturity tier), keyword coverage & ranks (from aso keywords --app, excluding brand: true terms), ratings vs competitors (from aso app on you and 1-3 competitors, plus the ratings/reviews practice sub-check), localization coverage (from aso lint --fastlane or a manual locale check), and conversion assets (qualitative, presence and freshness only, using aso-conversion's checklist).
Step 4: Overall grade
Weight roughly: metadata utilization 30%, keyword coverage 30%, ratings vs competitors 15%, localization 15%, conversion assets 10%. Map A=4...F=0, weighted average, then back to a letter.
Mark unknown, don't redistribute weight. If a dimension can't be graded (no competitor IDs, no fastlane tree, nothing to show for conversion assets), mark it "unknown" and say so. Don't quietly drop its weight and rescale the rest, that inflates the grade with an unearned average.
Step 5: Prioritized action items
Sort by impact ÷ effort. Quick wins first (lint-flagged character/byte waste, duplicate words), then keyword gaps (hand off to aso-keyword-research/aso-competitors), then locale expansion (hand off to aso-localization), then conversion-asset fixes (hand off to aso-conversion), then a re-audit date (4 weeks out).
Output: report card
ASO AUDIT: AppName (123456789), US
Brand-maturity tier: Challenger (1.2k ratings, category norm is tens of thousands)
Overall: B (2.9/4.0, all 5 dimensions graded)
Metadata utilization: C (lint score 72/100, keywords field 72/100 bytes)
Keyword coverage & ranks: B (ranked for 8/15 tracked terms, 3 in top 25)
Ratings vs competitors: B (4.6★/1.2k vs Ring 4.7★/48k, rating fine, authority far behind)
Localization coverage: F (only en-US filled)
Conversion assets: B (qualitative; What's New is generic "bug fixes", promo text unused)
Priority 1 (quick wins): fill keywords field to 95+ bytes per aso lint; dedupe "camera" across title/keywords.
Priority 2: close 3 competitor keyword gaps (see aso-competitors), projected +opportunity X.
Priority 3: fill 3-5 additional indexed locales (see aso-localization), biggest single lever, currently untouched.
Priority 4: write a benefit-led What's New and put a live promo for the current push (see aso-conversion).
Re-audit in 4 weeks after changes settle.Limitations, and Google Play (mental model only)
State plainly, don't let the report card imply more certainty than the CLI has: no true search volume (popularity is an Apple Ads proxy), no true conversion rate (no App Store Connect analytics access), no live PPO/CPP results (any such recommendation is a suggestion to test, not a measured outcome), difficulty/opportunity are relative models, not guarantees. aso is Apple-only; if the user also has an Android app, Google Play differs (full description indexing, stricter title rules, cumulative ratings, native store listing experiments), full detail in references/limitations-and-play.md.
Red flags
- Grading without running
aso lintfirst. - Skipping the brand-maturity tier and penalizing a Dominant app's brand-only title as if it were a Challenger's weak one.
- Skipping localization coverage: usually the single biggest missed opportunity.
- Giving a grade with no number behind it.
- Redistributing weight away from a dimension you couldn't measure instead of marking it unknown.
- Treating a good rating as proof ASO is fine: they're independent.
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.

