E-commerce
Shopify App Review
shopify-app-review/SKILL.md · updated 2026-06-12
A Claude skill that reviews a Shopify app the way an App Store reviewer would: session auth, GDPR webhooks, billing, scopes and listing, with evidence.
Install in Claude Code
~/.claude/skills/shopify-app-review/$ mkdir -p ~/.claude/skills/shopify-app-review && curl -fsSL https://www.harshrastogi.tech/skills/shopify-app-review.md -o ~/.claude/skills/shopify-app-review/SKILL.mdThen ask Claude Code for the task and the skill is picked up on its own. To scope it to one project, use .claude/skills/ inside your repo instead.
What it checks
6 checks, in the order that matters.
Use it when
- Preparing a Shopify app or major update for App Store submission
- Inheriting a Shopify app codebase and needing a compliance baseline
- A previous submission was rejected and you want to clear everything at once
- 01Authentication & installation
- 02Webhooks (the #1 silent rejection)
- 03Billing
- 04Embedded app quality
- 05Data & scopes
- 06Listing readiness
- Shopify
- Compliance
- App Store
- Code Review
The file
The full SKILL.md
shopify-app-review/SKILL.md60 lines
---
name: shopify-app-review
description: Pre-submission compliance review for Shopify apps. Use when preparing a Shopify app or app update for App Store submission — audits code, OAuth/session handling, webhooks, billing, and the listing against the most common rejection reasons.
---
# Shopify App Pre-Submission Review
You are reviewing a Shopify app the way a Shopify app reviewer would — adversarially, before submission. Work through every section below against the actual codebase. For each item report PASS, FAIL (with file/line evidence), or N/A (with one-line justification). Never mark an item PASS without looking at the code that proves it.
## 1. Authentication & installation
- OAuth flow completes immediately on install — the app must not show a login/signup wall before OAuth. Embedded apps must use session token auth (App Bridge), not cookies.
- Verify HMAC validation on the OAuth callback and on every request that carries query-string HMAC.
- Session tokens are validated server-side (signature + expiry + `dest` claim), not just decoded.
- App works when installed on a development store with no prior data.
## 2. Webhooks (the #1 silent rejection)
- `app/uninstalled` webhook is registered AND handled — all merchant data cleanup happens here.
- Mandatory GDPR webhooks exist and return 200: `customers/data_request`, `customers/redact`, `shop/redact`.
- Every webhook handler verifies the HMAC header before processing the body.
- Handlers respond within 5 seconds — heavy work is queued, not done inline. Look for synchronous external API calls inside webhook handlers and flag them.
## 3. Billing
- All charges go through the Shopify Billing API — flag any Stripe/PayPal checkout for app functionality (allowed only for sales outside app functionality).
- Test charges work on a development store (`test: true` handled properly, never hardcoded for production).
- Upgrade/downgrade paths don't strand the merchant: plan changes cancel the prior subscription.
- Free trial behavior matches what the listing promises.
## 4. Embedded app quality
- App loads inside the Shopify admin iframe without frame-busting; CSP headers include `frame-ancestors` for the shop domain.
- Uses Polaris (or visually consistent equivalent) — flag obviously non-admin-looking UI.
- Navigation works with App Bridge: deep links, the browser back button, and session token refresh after idle.
- No broken states when API scopes are missing — re-auth flow triggers cleanly on 401/403 from Shopify.
## 5. Data & scopes
- Requested scopes are the minimum the app actually uses — list each scope and the code that uses it; flag unused scopes.
- No protected customer data is logged, sent to third-party analytics, or stored beyond need.
- If the app uses AI/LLM processing on shop data, the privacy policy and listing must disclose it.
## 6. Listing readiness
- App name, icon, and screenshots contain no Shopify trademarks misuse ("Shopify" not leading the app name).
- Listing claims match real functionality — flag any feature in the listing copy you cannot find in the code.
- Demo store or screencast URL is provided if the app needs configuration to demonstrate.
## Output format
Produce a single report:
1. **Verdict** — READY / NOT READY with the count of blocking failures.
2. **Blocking failures** — each with evidence (file:line), why Shopify rejects for it, and the minimal fix.
3. **Warnings** — items likely to pass but worth fixing.
4. **Evidence table** — every checklist item with PASS/FAIL/N/A.
Be strict: a false PASS costs a 1–2 week review round-trip. When uncertain, mark FAIL and say what evidence would flip it.
Using a different agent? Skills are plain markdown. Paste the file into any capable AI assistant with your task, or load it as system instructions in your agent framework.
More skills
Full library- AI EngineeringLLM Cost AuditFind where your AI spend leaks: caching wins, model-tier mismatches and token waste. Built from cutting AI infrastructure costs on a production platform.
- AI EngineeringAgentic Error RecoveryHarden AI agents for production with idempotency, loop guards, fallbacks and observability you can actually read.
- AI ProductAI Feature RolloutShip AI features behind flags, guardrails and kill switches instead of big-bang releases. Drawn from moving a production AI platform to continuous delivery.