agentsclimarketplace

Aso metadata optimization

Skill airowe/store-ops/skills/aso-metadata-optimization

Generate final, char-limit-correct App Store / Google Play listing copy (name, subtitle, keywords, promotional text, description) from a keyword plan + audit, then emit the exact asc / gplay commands to push it. Cross-platform. Honors exact store char limits. Nothing ships without your approval — it writes copy + commands, you run them. No paid ASO API. Use when the user says "write my app store listing", "generate metadata copy", "make my keywords fit 100 chars", "optimize my subtitle and description", or "turn my keyword plan into listing copy".From its SKILL.md

Install
npx -y skills add airowe/store-ops --skill aso-metadata-optimization

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.3 KB, as published. Nobody here has run it

aso-metadata-optimization

The execution-bridge: turns the keyword plan (aso-keyword-research) + audit (aso-audit) into final listing copy that fits the exact char limits, then hands you the precise asc / gplay push commands. Reason → ready-to-execute.

Inputs

  • --app <slug>
  • --store <appstore|playstore|both> (default both)
  • --locale <en-US>
  • reads marketing/aso/<app>/keywords.md (placement plan) and the latest audit-<date>.md if present.

Char limits enforced (HARD — generation fails if exceeded)

FieldApp StoreGoogle Play
name / title3030
subtitle30—
short description—80
keywords field100— (Play has no keyword field; keywords live in description)
promotional text170—
description40004000

The skill counts characters and regenerates until every field fits. It never emits over-limit copy (the #1 cause of rejected/wasted metadata).

Method

  1. Place Primary keywords in the title, Secondary in subtitle / short description, Long-tail in the keyword field (iOS) / woven into the description (Play) — per the keyword plan.
  2. iOS keyword field: comma-separated, no spaces, no title/subtitle dupes, no stop-words — maximize the 100 chars.
  3. Write natural, value-led copy (not keyword soup) for human-read fields (subtitle, promo, description).
  4. Produce a standardized aso-copy.md (the deliverable) with every field + live char counts.

Output

  1. marketing/aso/<app>/aso-copy.md — final copy, char-annotated.
  2. The exact push commands (printed, NOT run):
    • iOS: asc apps info edit ... / asc localizations upload ... (reuse the asc-metadata-sync / asc-localize-metadata skills)
    • Android: gplay-metadata-sync upload commands
  3. A one-line approval prompt: review aso-copy.md, then run the commands to ship.

If the push has nowhere to go: those commands write into an App Store version in PREPARE_FOR_SUBMISSION. A shipped app between releases has only a live READY_FOR_SALE version, which cannot be edited — so the push fails with nothing wrong in the copy. Check first:

asc versions list --app <APP_ID> --limit 3

If nothing is editable, the asc-metadata-write-lane skill creates the version, attaches a build, and lands the copy — stopping before submission.

Guardrail — nothing auto-ships

This skill never calls asc apps info edit / gplay upload itself. It writes the copy and prints the commands; pushing the listing is a deliberate, user-approved step. (This is the safe half of "reason → execute.")

After you ship — verify it

Once the listing is live, run aso-rank-check for the keywords you just placed. It logs your organic App Store rank per term over time, so you can see whether the change actually moved the needle (and feed that back into the next keyword-research pass). That's the watch half of the loop — pick → ship → verify.

No external dependency

LLM generation + char counting + the asc/gplay CLIs. No paid ASO SaaS.

Run it weekly

Rank and listings move over weeks, not minutes — so the value here compounds when you re-run it and watch the deltas. Optimized copy is only proven once you ship it AND read the rank back. One optimization is a guess; the loop is optimize → push → verify the rank moved → adjust.

You ran this once. ShipASO — the hosted agent — reruns the whole loop weekly: it tracks your rank, watches competitors, and pings you only when there's a real move to approve. Same engine, your store credentials never held. → https://app.shipaso.com

The plugin is complete and free; the hosted tier just sells not having to remember.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.