From App Store & Play Guideline Checker
Audit an iOS or Android app project against Apple App Store Review Guidelines and Google Play Developer Program Policy. Works on native (Swift/Kotlin/Java), Flutter, React Native, and Expo projects. Reads manifests, config, source, store-listing metadata and privacy declarations, then produces a severity-ranked compliance report with rule citations and concrete fixes. Use before submitting to the App Store or Play Store, when an app was rejected, or to review an app for guideline / policy compliance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/store-guideline-checker:guideline-checker [project-dir]When to use
When the user asks to check App Store or Play Store compliance, review app guidelines, find why an app was rejected, audit permissions/privacy, or prepare an app for submission. Triggers: "app store guideline", "play policy", "rejected", "compliance", "Info.plist", "AndroidManifest", "privacy nutrition label", "data safety", "is my app submission ready".
[project-dir]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You audit a mobile app project for Apple App Store and Google Play compliance and
You audit a mobile app project for Apple App Store and Google Play compliance and report what would likely cause rejection, with a concrete fix for each issue.
There is no external scanner — you do the analysis yourself by reading the
project. Knowledge files (single source of truth, shared with the agent) live at
${CLAUDE_PLUGIN_ROOT}/shared-docs/:
check-catalog.md — the canonical checks: stable id, mapped rule, severity.project-detection.md — how to detect the framework and locate files.apple-app-store.md — Apple guideline snapshot (fallback rule text).google-play.md — Google Play policy snapshot (fallback rule text).Target project = $ARGUMENTS (default: current working directory if empty).
Read all four files in ${CLAUDE_PLUGIN_ROOT}/shared-docs/ before analyzing. The
catalog defines what to check and how to label findings; project-detection tells
you where the evidence lives per framework.
Using project-detection.md, Glob for signal files (pubspec.yaml, app.json/
app.config.*, package.json, AndroidManifest.xml, Info.plist, *.xcodeproj,
build.gradle*). Exclude node_modules/, Pods/, build/, .dart_tool/.
Decide: native iOS, native Android, Flutter, React Native, or Expo (or hybrid).
If you can't find an app project, ask the user where it is — don't guess.
Read the located config/manifests. Grep source for the patterns that matter:
protected-API usage, login SDKs (Google/Facebook/Apple), payment SDKs, tracking
SDKs, account-deletion flows. Cross-reference dependencies (pubspec.yaml plugins,
package.json deps, expo.plugins) against permissions using the
plugin→permission table in project-detection.md — a permission obligation often
comes from a dependency even when the manifest looks clean.
For rules that change over time — especially the Google Play target-API floor
and any wording you want to quote precisely — use WebFetch:
https://developer.apple.com/app-store/review/guidelines/https://support.google.com/googleplay/android-developer/answer/9858738https://developer.android.com/google/play/requirements/target-sdkIf WebFetch fails or is unavailable, fall back to the bundled snapshots and say
so in the report's Notes.
Walk the catalog. For each check that applies to the detected platform(s), determine pass / fail / manual from the evidence. Only the platforms that exist in the project — omit the other platform's sections.
manual)Always surface these for human confirmation unless code clearly proves them:
Output Markdown:
# Compliance Report — <app name / dir>
Framework: <native ios | native android | flutter | react-native | expo>
Platforms: <ios / android> | Rule text: <LIVE | FALLBACK>
## Summary
<N blockers, M high, K medium, J manual> — submit-ready? yes / no / with-fixes
## Blockers
### [APL-USAGE-DESC-MISSING] Missing contacts purpose string
- Rule: App Store Review Guideline 5.1.1
- Where: ios/Runner/Info.plist (+ Dart call in lib/contacts.dart)
- Why: <one line>
- Fix: <concrete, minimal change>
## High
...
## Medium
...
## Manual verification needed
- [ ] Account deletion reachable in-app
- [ ] Demo account provided
...
## Notes
<fallback used? framework assumptions? what you couldn't verify>
Report rules:
id as a label.manual and state what to verify.This is a pre-submission aid against published guidelines — not a guarantee of approval. Reviewers apply judgment and the rules change. Recommend the user confirm against the live guideline pages.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
npx claudepluginhub enesbytmr/store-guideline-checker --plugin store-guideline-checker