Run a two-phase ASO audit: offline checks against local metadata files, then keyword gap analysis via Astro MCP.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionasc-aso-auditExecute the skills CLI command in your project's root directory to begin installation:
Fetches asc-aso-audit from rudrankriyam/app-store-connect-cli-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate asc-aso-audit. Access via /asc-aso-audit in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
699
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
699
stars
Run a two-phase ASO audit: offline checks against local metadata files, then keyword gap analysis via Astro MCP.
asc metadata pull --app "APP_ID" --version "1.2.3" --dir "./metadata".asc migrate export or asc localizations download, normalize it into the canonical ./metadata layout before running this skill.references/aso_rules.md to understand the rules each check enforces.metadata/version/ (highest semantic version number). Use this for all version-level fields.en-US unless the user specifies otherwise.subtitle): metadata/app-info/{locale}.jsonkeywords, description, whatsNew): metadata/version/{latest-version}/{locale}.jsonname is missing from the app-info JSON, fetch it via asc apps info list or ask the user. Do not flag it as a missing-field error.Run these 5 checks against the local metadata directory. No network calls required.
Tokenize the subtitle field (and name if available). Flag any token that also appears in the keywords field — it is already indexed and wastes keyword budget.
Severity: ⚠️ Warning
Example: "quran" appears in subtitle AND keywords — remove from keywords to free 6 characters
How to check:
metadata/app-info/{locale}.json for subtitle (and name if present)metadata/version/{latest-version}/{locale}.json for keywords、 , , or iterate characters — each character or character-group is a token. Whitespace tokenization does not work for CJK.Flag fields using less than their recommended minimum:
| Field | Minimum | Limit | Rationale |
|---|---|---|---|
| Keywords | 90 chars | 100 | 90%+ usage maximizes indexing |
| Subtitle | 20 chars | 30 | 65%+ usage recommended |
Severity: ⚠️ Warning
Example: keywords is 62/100 characters (62%) — 38 characters of indexing opportunity unused
Flag empty or missing required fields: subtitle, keywords, description, whatsNew.
Note: name may not be in the export — only flag it if the app-info JSON explicitly contains a name key with an empty value.
Severity: ❌ Error
Example: subtitle is empty for locale en-US
Check the keywords field for formatting issues:
quran, recitation)quran;recitation)quran|recitation)Severity: ❌ Error
Example: keywords contain spaces after commas — wastes 3 characters
Compare keywords fields across all available locales. Flag locales where keywords are identical to the primary locale (en-US by default) — this usually means they were not localized.
Severity: ⚠️ Warning
Example: ar keywords identical to en-US — likely not localized for Arabic market
How to check:
Check whether keywords appear naturally in the description field. While Apple does not index descriptions for search, users who see their search terms reflected in the description are more likely to download — this improves conversion rate, which indirectly boosts rankings.
Severity: 💡 Info
Example: 3 of 16 keywords not found in description: namaz, tarteel, adhan
How to check:
keywords and description for each localeIf Astro MCP is available and the app is tracked, run keyword gap analysis. Run this per store/locale, not just for the US store — keyword popularity varies dramatically across markets.
Get current keywords: Call get_app_keywords with the app ID to retrieve tracked keywords and their current rankings.
Ensure multi-store tracking: For each locale with a corresponding App Store territory (e.g., ar-SA → Saudi Arabia, fr-FR → France, tr → Turkey), use add_keywords to add keyword tracking in that store. Without this, search_rankings returns empty for non-US stores.
Extract competitor keywords: Call extract_competitors_keywords with 3-5 top competitor app IDs to find keyword gaps. This is the highest-value Astro tool — it reveals keywords competitors rank for that you don't. Run this per store when possible.
Get suggestions: Call get_keyword_suggestions with the app ID for additional recommendations based on category analysis.
Check current rankings: Call search_rankings to see where the app currently ranks for tracked keywords in each store.
Diff against metadata: Compare suggested and competitor keywords against the tokens present in subtitle, name (if available), and keywords fields from the local metadata.
Surface gaps: Report all gaps ranked by popularity score (highest first). Include the source (competitor analysis vs. suggestion).
When recommending keyword additions, consider how single words combine across indexed fields (title + subtitle + keywords). For example:
Flag high-value combos in recommendations.
mcp__astro__add_app for gap analysis"add_keywords before queryingPresent results as a single audit report. The report covers only the latest version directory.
### ASO Audit Report
**App:** [name] | **Primary Locale:** [locale]
**Metadata source:** [path including version number]
#### Field Utilization
| Field | Value | Length | Limit | Usage |
|-------|-------|--------|-------|-------|
| Name | ... | X | 30 | X% |
| Subtitle | ... | X | 30 | X% |
| Keywords | ... | X | 100 | X% |
| Promotional Text | ... | X | 170 | X% |
| Description | (first 50 chars)... | X | 4000 | X% |
#### Offline Checks
| # | Check | Severity | Field | Locale | Detail |
|---|-------|----------|-------|--------|--------|
| 1 | Keyword waste | ⚠️ | keywords | en-US | "quran" duplicated in subtitle |
**Summary:** X errors, Y warnings across Z locales
#### Keyword Gap Analysis (Astro MCP)
| Keyword | Popularity | In Metadata? | Suggested Action |
|---------|-----------|--------------|-----------------|
| quran recitation | 72 | ❌ | Add to keywords |
#### Recommendations
1. [Highest priority action — errors first]
2. [Next priority — keyword waste]
3. [Utilization improvements]
4. [Keyword gap opportunities]
asc metadata pull to ensure canonical metadata files are current.asc metadata keywords diff --app "APP_ID" --version "1.2.3" --dir "./metadata"asc metadata keywords apply --app "APP_ID" --version "1.2.3" --dir "./metadata" --confirmasc metadata keywords sync --app "APP_ID" --version "1.2.3" --dir "./metadata" --input "./keywords.csv" when importing external keyword researchMake data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
shadcn/improve
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
ailabs-393/ai-labs-claude-skills
Solid pick for teams standardizing on skills: asc-aso-audit is focused, and the summary matches what you get after install.
Solid pick for teams standardizing on skills: asc-aso-audit is focused, and the summary matches what you get after install.
We added asc-aso-audit from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
We added asc-aso-audit from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
asc-aso-audit fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
asc-aso-audit fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
asc-aso-audit is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Keeps context tight: asc-aso-audit is the kind of skill you can hand to a new teammate without a long onboarding doc.
asc-aso-audit fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
asc-aso-audit reduced setup friction for our internal harness; good balance of opinion and flexibility.
showing 1-10 of 40