Store review
The store-review skill: what it judges, what bun run doctor --store checks for it, and how to run it from Claude Code or Cursor
Hey - this is the one skill in the tree that reads policy instead of code. It reviews your app against the App Store Review Guidelines and the Google Play Developer Program Policies before you submit, and every line it writes cites the guideline it comes from.
Where it lives
In a Pro tree:
.agents/skills/store-review/
SKILL.md the procedure and the report format
references/apple-review.md App Store guidelines 1-5, distilled, dated, linked
references/play-policy.md Play policies by group, distilled, dated, linkedThe references carry a Last reviewed: date and the canonical URLs. The skill warns when that
date is more than a quarter old, so an agent never trusts a stale checklist silently. Starter
trees do not ship the folder; bun run doctor --store there prints that the check is part of
Pro.
What doctor --store covers, what the skill judges
Two halves, on purpose. The mechanical half is code in scripts/lib/store-check.ts and runs
without an agent:
bun run doctor --storeIt checks the things a file can prove: a usage string for every permission-bearing dependency,
ITSAppUsesNonExemptEncryption, App Tracking Transparency when analytics or ads are selected,
privacy and terms URLs set and linked from the paywall and sign-in screens, a Restore Purchases
action and a price on the paywall, an account-deletion route when any auth option is on, Sign
in with Apple next to other social logins, every Android permission justified by a dependency,
the target SDK, and a Data safety draft table built from the selected modules. Each finding has
an id, a guideline citation, a file:line and a fix. Details are in
Doctor.
The skill does what code cannot:
- Runs
doctor --storeand copies its findings into the report verbatim. - Reads
readynative.config.ts,app.config.ts,.readynative.json, every route undersrc/app/and the paywall, onboarding, auth and settings screens. - Walks both reference checklists and marks each item likely rejection, fix before submit or fine, with the guideline id and the exact line.
- Optionally screenshots the paywall and permission prompts on the iOS Simulator and judges the copy: price, period and renewal terms visible; Restore present; nothing called "free" that charges; purpose strings that read as reasons.
- Writes the report - a table of severity, guideline, where, what, fix - followed by the metadata checklist: screenshots per device class, age rating, export compliance, a demo account for the reviewer, Data safety answers, live privacy and support URLs.
Running it
Claude Code reads .agents/skills/ on its own. Ask in plain words:
Run the store-review skill and give me the report.Or with a scope, after a change:
I added Google sign-in. Run store-review on the auth screens only.Cursor and other agents that load .agents/skills/*/SKILL.md work the same way; if yours does
not, paste the path .agents/skills/store-review/SKILL.md into the prompt and it will read the
references from there.
The skill never edits the app. Ask for the fixes as a second step, then run it again.
No guarantee
The skill flags; it does not approve. A clean report means the predictable rejections are
handled - it does not mean a reviewer will not find something else, and the references are a
snapshot that needs a human re-read once a quarter. The rules in SKILL.md forbid the agent
from claiming otherwise.
The buyer-facing walkthrough is Pass App Review.