asc-aso-audit
Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP.
Skill by rorkai
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/rorkai-asc-aso-audit
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: security, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/asc-aso-audit
What's inside
- Skill name
asc-aso-audit- Description
- Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP. Use after pulling metadata with `asc metadata pull`.
- License
- MIT
- Instructions
- 244 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- aso_rules.md · references/
SKILL.md (first lines)
# asc ASO audit
Run a two-phase ASO audit: offline checks against local metadata files, then keyword gap analysis via Astro MCP.
When available, include Apple-generated app tags as a discoverability signal.
## Preconditions
- Metadata pulled locally into canonical files via `asc metadata pull --app "APP_ID" --version "1.2.3" --dir "./metadata"`.
- If metadata came from `asc migrate export` or `asc localizations download`, normalize it into the canonical `./metadata` layout before running this skill.
- For Astro gap analysis: app tracked in Astro MCP (optional — offline checks run without it).
- For Apple-generated discoverability tags: `asc app-tags list --app "APP_ID" --output json` works when the API returns tags for the app.
## Before You Start
1. Read `references/aso_rules.md` to understand the rules each check enforces.
2. Identify the **latest version directory** under `metadata/version/` (highest semantic version number). Use this for all version-level fields.
3. The **primary locale** is `en-US` unless the user specifies otherwise.
## Metadata File Paths
- **App-info fields** (`subtitle`): `metadata/app-info/{locale}.json`
- **Version fields** (`keywords`, `description`, `whatsNew`): `metadata/version/{latest-version}/{locale}.json`
- **App name**: May not be present in exported metadata. If `name` 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.
## Phase 1: Offline Checks
Run these 5 checks against the local metadata directory. No network calls required.
### 1. Keyword Waste
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:
1. Read `metadata/app-info/{locale}.json` for `subtitle` (and `name` if present)
2. Read `metadata/version/{latest-version}/{locale}.json` for `keywords`
3. Tokenize subtitle (+ name):
- **Latin/Cyrillic scripts:** split by whitespace, strip leading/trailing punctuation, lowercase
- **Chinese/Japanese/Korean:** split by `、` `,` `,` or iterate characters — each character or character-group is a token. Whitespace tokenization does not work for CJK.
- **Arabic:** split by whitespace, then also generate prefix-stripped variants (remove ال prefix) since Apple likely normalizes definite articles. For example, "القرآن" in subtitle should flag both "القرآن" and "قرآن" in keywords.
4. Split keywords by comma, trim whitespace, lowercase
5. Report intersection (including fuzzy matches from prefix stripping)
### Optional: App Tag Alignment
App tags are Apple-generated labels that can appear in search results and product pages. They are not editable ASO metadata, but they are useful evidence for whether Apple's classification matches the intended positioning.
```bash
asc app-tags list --app "APP_ID" --output json
asc app-tags view --app "APP_ID" --id "TAG_ID" --output json
```
Use tags as context only:
- If visible tags reinforce the subtitle/keyword strategy, note the alignment.
- If tags point to an unintended category or use case, recommend metadata/category changes that may improve future classification.
- Do not promise that changing metadata will immediately change Apple-generated tags.
### Optional: Official Apple Search Plan
When both App Store Connect and Apple Ads credentials are configured, use the
experimental, read-only plan to join the selected metadata with official paid
search evidence:
```bash
asc optimize search plan \
--app "APP_ID" \
--version "1.2.3" \
--ad-account "AD_ACCOUNT_ID" \
--country "US" \
--genre "PRODUCTIVITY_UTILITIES" \
--locale "en-US" \
--out-dir ".asc/optimization/1.2.3" \
--output markdown
```
- Authenticate App Store Connect with `asc auth` and Apple Ads separately with
`asc ads auth login`; the two credential sets are independent.
- Treat the generated CSV and JSON files as review artifacts. The command does
not apply metadata, exact keywords, or negative keywords, and partial Apple
Ads source failures stay visible in the report.
- Keep Apple's popularity, app-specific paid reach, paid search outcomes, and
metadata coverage distinct. Do not infer organic rank or keyword difficulty
from this plan.
### 2. Underutilized Fields
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
```
### 3. Missing Fields
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
```
### 4. Bad Keyword Separators
Check the `keywords` field for formatting issues:
- Spaces after commas (`quran, recitation`)
- Semicolons instead of commas (`quran;recitation`)
- Pipes instead of commas (`quran|recitation`)From rorkai/app-store-connect-cli-skills, MIT.
More from rorkai/app-store-connect-cli-skills
- 0.827score
asc-submission-health
rorkai
Diagnose App Store submission blockers and operate review health with asc, including readiness validation, repair routing, status monitoring, cancellation…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-xcode-build
rorkai
Build, archive, export, and manage Xcode version/build numbers with asc, including portable iOS compilation and packaging.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-release-flow
rorkai
Orchestrate App Store releases with asc, including staging a version, uploading or building an artifact, publishing, and submitting for review.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-metadata-sync
rorkai
Sync, validate, and apply App Store metadata and store assets with asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-cli-usage
rorkai
Guidance for using asc cli in this repo (flags, output formats, pagination, auth, and discovery).
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-crash-triage
rorkai
Triage TestFlight crashes, beta feedback, and performance diagnostics using asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-id-resolver
rorkai
Resolve App Store Connect IDs (apps, builds, app and digital-goods versions, groups, testers) from human-friendly names using asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-shots-pipeline
rorkai
Orchestrate iOS screenshot automation with xcodebuild/simctl for build-run, AXe for UI actions, JSON settings and plan files, Koubou-based framing (`asc…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-subscription-localization
rorkai
Bulk-localize subscription, subscription-group, and in-app purchase display names across App Store locales using asc, including API 4.4.1 version-scoped v2…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-in-app-events
rorkai
Create and localize App Store in-app events, upload event media, and submit or recover event review submissions with asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.818score
asc-workflow
rorkai
Define, validate, run, resume, and audit repo-local multi-step automations with current `asc workflow` and `.asc/workflow.json`, including step outputs and…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.775score
asc-ppp-pricing
rorkai
Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands.
SkillBFreshness: B★ 1.1KClaude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 1,100
- Forks
- 67
- Open issues
- 0
- Last commit (this folder)
- Sep 5, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Website
- asccli.sh
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from rorkai
- 0.827score
asc-submission-health
rorkai
Diagnose App Store submission blockers and operate review health with asc, including readiness validation, repair routing, status monitoring, cancellation…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-release-flow
rorkai
Orchestrate App Store releases with asc, including staging a version, uploading or building an artifact, publishing, and submitting for review.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-metadata-sync
rorkai
Sync, validate, and apply App Store metadata and store assets with asc.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.827score
asc-xcode-build
rorkai
Build, archive, export, and manage Xcode version/build numbers with asc, including portable iOS compilation and packaging.
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-shots-pipeline
rorkai
Orchestrate iOS screenshot automation with xcodebuild/simctl for build-run, AXe for UI actions, JSON settings and plan files, Koubou-based framing (`asc…
SkillAFreshness: A★ 1.1KClaude Code +9 - 0.821score
asc-subscription-localization
rorkai
Bulk-localize subscription, subscription-group, and in-app purchase display names across App Store locales using asc, including API 4.4.1 version-scoped v2…
SkillAFreshness: A★ 1.1KClaude Code +9
Cite this page
asc-aso-audit skill. Agent Mart. https://agentmart.dev/skills/rorkai-asc-aso-audit (last updated 2026-10-24)