All skills
rshankras avatar

/store-growth-audit

@32566aa

Stage-by-stage audit of an app's App Store growth machinery against a 54-item P0–P9 playbook — every item scored from an App Store Connect MCP call, a codebase check, or an explicit question to the user, then routed to the skill or command that fixes it. Read-only on App Store Connect. Use for a growth audit or scorecard, a pre-launch growth plan, a quarterly re-audit, or "which growth levers am I missing."

Use this Skill: https://skilld.dev/gh/rshankras/claude-code-apple-skills/store-growth-audit

This session only. Nothing lands on disk.

audit-checklist-p5-p9.md

≈3.2k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Audit Checklist P5–P9 — Growth Loops (29 items)

Stanza format, flags, status vocabulary, and new-app: semantics are defined in SKILL.md. Evidence keys (EV.*) are defined in detection-playbook.md. IDs are stable — never renumber.

P5 — Experimentation

P5.1 Product Page Optimization running as a habit — core
  • detect: MCP EV.ppo
  • rule: ✅ a PPO experiment ran in the last 2 quarters or after the last asset change · 🟠 ran once, long ago · 🔴 never (up to 3 treatments on organic traffic, one variable at a time)
  • new-app: defer — activates ~30 days post-launch (needs traffic)
  • fix: generators/product-page-optimization → /apple:experiment
P5.2 Custom Product Pages for distinct audiences
  • detect: MCP EV.cpp
  • rule: ✅ CPPs live, mapped to audiences/campaigns AND search keywords assigned per page (35 slots) · 🟠 pages exist but unkeyed/token · 🔴 none despite distinct audiences · ⚪ genuinely single-audience app
  • new-app: defer
  • fix: generators/custom-product-pages → /apple:experiment
P5.3 Creative Assets: Product Page Header + Search Results visuals
  • detect: HYBRID — Asset Library state isn't exposed via the current MCP tools, so MANUAL ("header/search creative assets submitted in the Asset Library?") with EV.meta/EV.ppo as partial signals
  • rule: ✅ header + search visuals live (pre-approved in the Asset Library, refreshed with campaigns) · 🟠 assets prepared but not submitted · 🔴 still default screenshots everywhere (surfaces render on iOS 27/iPadOS 27)
  • new-app: plan — design header/search assets alongside the screenshot set
  • fix: app-store/screenshot-planner (Creative Assets section) → /apple:screenshots
P5.4 In-app events cadence + badge variety
  • detect: MCP EV.events
  • rule: ✅ ≥1 event per quarter, badges varied by purpose · 🟠 sporadic events · 🔴 never used · applies-if: app has event-worthy moments (else ⚪)
  • new-app: defer
  • fix: generators/in-app-events → /apple:event
  • note: new badge types (Now On Sale, Try Before You Buy) are ⏳ ANNOUNCED (WWDC26) — recheck each audit

P6 — Featuring & free discovery

P6.1 Featuring nominations as a rolling calendar — core, RECURRING
  • detect: MANUAL Q8 + the scorecard's Recurring Calendar
  • rule: ✅ nomination submitted for the current cycle AND next moment scheduled 6–8 weeks ahead · 🟠 submitted once, no calendar · 🔴 never nominated
  • new-app: plan — first nomination at launch (launches are featuring moments)
  • fix: generators/featuring-nomination → ASC manual (calendar maintained by the audit)
P6.2 New-OS APIs adopted at launch
  • detect: HYBRID — EV.code.newapis + MANUAL timing (shipped within the new OS's launch window?)
  • rule: ✅ current-cycle APIs adopted in a launch-window release (the most reliable featuring trigger) · 🟠 adopted late · 🔴 still targeting only old APIs
  • new-app: code — build against the current SDK's new surfaces from day one
  • fix: /apple:modernize — standalone: design/ + apple-intelligence/ adoption skills
P6.3 Secondary category set
  • detect: MCP EV.meta (categories)
  • rule: ✅ secondary category set and deliberately chosen (second chart presence) · 🔴 empty
  • new-app: plan
  • fix: /apple:ship (category step) — standalone: app-store/marketing-strategy (decision-matrix)
P6.4 Checkbox storefronts shipped where sensible
  • detect: HYBRID — EV.code.platforms + EV.territories
  • rule: ✅ viable easy ports shipped (Mac via Catalyst/iPad-on-Mac, visionOS, watchOS, tvOS — tiny catalogs, easy charts and featuring) · 🟠 viable port identified but not shipped · ⚪ no sensible port
  • new-app: plan — check the checkbox platforms at project setup
  • fix: /apple:new-app (platform choice) / /apple:plan — standalone: visionos/, watchos/, ios/ipad-patterns
P6.5 App Intents as an out-of-store discovery channel
  • detect: CODE EV.code.intents + EV.code.spotlight
  • rule: ✅ App Shortcuts + Spotlight indexing shipped (Siri, Spotlight, Shortcuts become discovery surfaces) · 🟠 intents exist but no AppShortcutsProvider/Spotlight · 🔴 none
  • new-app: code
  • fix: apple-intelligence/app-intents + generators/spotlight-indexing → /apple:plan
P6.6 Web presence: apps.apple.com SEO + landing page + Smart App Banner
  • detect: MANUAL Q9 (CODE if a web repo is at hand)
  • rule: ✅ landing page live with Smart App Banner, store page ranks for the app's name queries · 🟠 landing page only · 🔴 no web presence
  • new-app: plan — the store's web page ranks on Google from day one; give it help
  • fix: app-store/web-presence

P7 — Paid & external traffic

P7.1 Apple Ads ladder: discovery → exact-match winners (+ CPP pairing)
  • detect: MANUAL Q4 + EV.cpp (paired pages)
  • rule: ✅ discovery feeding exact-match campaigns, winners paired with matching CPPs · 🟠 ads running unstructured · 🔴/⚪ no ads (⚪ if deliberately organic-only and P1–P6 healthy)
  • new-app: defer — paid comes after the free machinery works
  • fix: app-store/apple-search-ads → /apple:aso if installed
P7.2 Brand term defended
  • detect: MANUAL Q4
  • rule: ✅ brand campaign live (competitors bid on your name; brand CPAs are cheap) · 🟠 unsure · 🔴 brand undefended while competitors bid · applies-if: running ads or brand has search volume
  • new-app: defer
  • fix: app-store/apple-search-ads
P7.3 ASA→organic halo tracked
  • detect: MANUAL
  • rule: ✅ organic rank movement watched on paid keywords (paid conversion lifts organic rank) · 🟠 not tracked · ⚪ no ads
  • new-app: defer
  • fix: app-store/apple-search-ads + growth/store-signals → /apple:learn-from-store
P7.4 Compressed launch spikes
  • detect: MANUAL Q10 / .planning/ launch plan
  • rule: ✅ last major release compressed Product Hunt + press embargo + newsletter into 48h (chart velocity beats volume) · 🟠 channels used but spread out · 🔴 launches go out quietly
  • new-app: plan — write the spike plan before launch week
  • fix: growth/press-media + growth/community-building → /apple:release-notes (assets)
P7.5 Deal-site ecosystem used for price drops
  • detect: MANUAL Q9
  • rule: ✅ price drops timed knowing aggregators auto-scrape them (spike → chart climb → organic tail) · 🟠 price drops happen unannounced · ⚪ free app, no price to drop
  • new-app: defer
  • fix: app-store/web-presence (deal-site section)
P7.6 Pre-orders used (including regionally)
  • detect: MANUAL Q11 + EV.territories
  • rule: ✅ pre-orders used at launch or regionally when entering new storefronts (up to 180 days of accumulated taps) · 🟠 known but unused at last opportunity · ⚪ no upcoming launch/expansion
  • new-app: plan — decide pre-order length before first submission
  • fix: generators/pre-orders → /apple:ship
P7.7 Offer codes distributed
  • detect: MANUAL Q11 + EV.iaps/EV.subs
  • rule: ✅ URL-redeemable codes in use for influencers/communities/conferences · 🟠 configured, never distributed · 🔴 unused despite subs/IAP · applies-if: has subs/IAP
  • new-app: defer
  • fix: generators/offer-codes-setup → /apple:subscription
P7.8 TestFlight public link as a waitlist
  • detect: MANUAL Q11
  • rule: ✅ public link doubled as pre-launch waitlist (up to 10k testers → day-one installers) · 🟠 TestFlight private-only pre-launch · ⚪ already long-launched with no major relaunch coming
  • new-app: plan
  • fix: product/beta-testing → /apple:testflight

P8 — Earnings

P8.1 Paywall + pricing experiments — core
  • detect: HYBRID — EV.code.paywall + MANUAL Q12
  • rule: ✅ paywall variable (trial length, intro offer, layout) tested in the last 2 quarters · 🟠 paywall shipped, never experimented · 🔴 no deliberate paywall · applies-if: monetized
  • new-app: plan (paywall) / defer (experiments)
  • fix: generators/paywall-generator + monetization → /apple:subscription
P8.2 Win-back offers configured
  • detect: MCP EV.subs (offers) — MANUAL fallback
  • rule: ✅ win-back offers live (the App Store surfaces them to lapsed subscribers by itself) · 🔴 not configured · applies-if: subscriptions ≥ minimum eligibility
  • new-app: defer
  • fix: generators/win-back-offers → /apple:subscription
P8.3 Retention Messaging (save offer at cancel)
  • detect: MANUAL Q ("Retention Messaging configured in ASC → Subscriptions?") — EV.subs partial signal
  • rule: ✅ message + retention offer live on the cancel confirmation page, tested in sandbox · 🟠 message-only (no offer — offers reached +5.5pts save-rate lift vs +1.4 average in Apple's data) · 🔴 not configured · applies-if: auto-renewable subscriptions
  • new-app: defer — activates with the first live subscribers
  • note: ASC tier open to all developers; the real-time server API stays access-gated (interest form + sandbox performance test)
  • fix: generators/win-back-offers (Retention Messaging section) → /apple:subscription
P8.4 US web checkout / External Purchase Links — core
  • detect: HYBRID — CODE EV.code.extpurchase + MANUAL Q13
  • rule: ✅ shipped with commission-flip architecture + analytics from day one (currently 0% commission; litigation ongoing — re-verify) · 🟠 planned/considered · 🔴 not considered · applies-if: US storefront + digital goods revenue
  • new-app: plan — architect the flip switch before you need it
  • fix: monetization/external-purchases
P8.5 Cross-developer bundles & suites
  • detect: MANUAL Q14
  • rule: ✅ partnered bundle live or in motion with complementary indie apps · 🟠 explored · ⚪ no sensible partner category
  • new-app: defer
  • fix: monetization/bundles-and-licensing
P8.6 Group Purchases + Volume Purchasing
  • detect: HYBRID — EV.subs (StoreKit 2 subscriptions exist; volume price bands not exposed via current MCP tools) + MANUAL ("volume price bands configured? group value merchandised?")
  • rule: ✅ volume pricing bands set (≤5) and group purchase merchandised where a team/school/family-of-buyers segment exists · 🟠 live-by-default but never configured (every seat sells at full price) · 🔴 institutional demand exists, nothing configured · applies-if: auto-renewable subs on StoreKit 2 + a multi-seat buyer segment
  • note: live for StoreKit 2 subscriptions (WWDC26) — on by default; Family Sharing-enabled subs are opted out by default
  • new-app: plan — decide the seats model with the subscription design
  • fix: monetization/bundles-and-licensing → /apple:subscription
P8.7 Own-app bundles + Family Sharing
  • detect: MCP EV.iaps + EV.subs (familySharable) + MANUAL (bundles)
  • rule: ✅ Family Sharing enabled where it fits AND multi-app developers bundle their own apps · 🟠 either unexamined · ⚪ single free app · applies-if: paid/subs
  • new-app: plan
  • fix: monetization/bundles-and-licensing → /apple:subscription

P9 — Retention loop & ops

P9.1 Retention surfaces shipped
  • detect: CODE — EV.code.onboarding, EV.code.notifications, EV.code.widgets, EV.code.liveactivity
  • rule: ✅ onboarding + notifications + at least one ambient surface (widget/Live Activity) · 🟠 some · 🔴 none (retention feeds both ranking and LTV)
  • new-app: code
  • fix: generators/onboarding-generator, push-notifications, widget-generator, live-activity-generator → /apple:plan
P9.2 Quarterly keyword refresh from ASA search-term reports — core, RECURRING
  • detect: MANUAL Q15 + the scorecard's Recurring Calendar
  • rule: ✅ refresh done within the last quarter with search-term data · 🟠 refreshed without paid-data input · 🔴 keywords untouched for two-plus quarters
  • new-app: defer — first refresh one quarter after launch
  • fix: app-store/keyword-optimizer (advanced-tactics §14) → /apple:metadata
P9.3 Update freshness
  • detect: MCP EV.meta (current version's release recency)
  • rule: ✅ shipped within ~8–12 weeks (each release re-triggers indexing + freshness signals) · 🟠 3–6 months · 🔴 6+ months stale
  • new-app: ⚪ pre-launch
  • fix: /apple:next-version — standalone: growth/store-signals for what to ship
P9.4 The re-run loop is closed — RECURRING
  • detect: the scorecard itself — Recurring Calendar rows have last done within cadence
  • rule: ✅ PPO re-run after last asset change, featuring calendar rolling, benchmarks rechecked · 🟠 calendar exists, rows overdue · 🔴 no calendar
  • new-app: plan — seed the calendar at launch
  • fix: this skill (re-audit) + generators/product-page-optimization + growth/analytics-interpretation

Source: SKILL.md on GitHub

No alerts2mo3 checks · Risk SAFE
  • Gen Agent Trust Hub2mo

    The skill is a comprehensive growth audit utility for App Store applications that evaluates app machinery against a 54-item playbook. It uses specialized MCP tools to access sensitive App Store metadata, sales reports, and analytics, and performs local codebase inspections using grep. The primary security consideration identified is an indirect prompt injection surface created by the ingestion of untrusted user-generated review text from the App Store. The skill operates in a read-only capacity for App Store Connect and writes audit results to a local file.

  • Socket2mo

    No alerts

  • Snyk2mo

    Risk: LOW · No issues

Signed by skilld at 32566aa. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Steadyupdated 3 months ago
What it can do
Reads files Edits files
MCP servers
asc-metadata
last_verified
2026-07-16
review_by
2027-06-22
All 20 allowed tools
ReadWriteGlobGrepAskUserQuestionmcp__asc-metadata__list_appsmcp__asc-metadata__get_metadatamcp__asc-metadata__list_localesmcp__asc-metadata__get_app_pricingmcp__asc-metadata__list_price_pointsmcp__asc-metadata__get_availabilitymcp__asc-metadata__list_iapmcp__asc-metadata__list_subscription_groupsmcp__asc-metadata__list_subscriptionsmcp__asc-metadata__list_app_eventsmcp__asc-metadata__list_experimentsmcp__asc-metadata__list_custom_pagesmcp__asc-metadata__get_analytics_reportmcp__asc-metadata__get_sales_reportmcp__asc-metadata__list_reviews

README badge

README badge for rshankras/claude-code-apple-skills/store-growth-audit