From capacitor-deployment
Audits Capacitor apps for Apple App Store compliance before submission or after rejection, reviewing guidelines, metadata, iOS projects, privacy manifests, entitlements, and rejection patterns.
How this skill is triggered — by the user, by Claude, or both
Slash command
/capacitor-deployment:capacitor-apple-review-preflightThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Run a pre-submission or post-rejection Apple review audit for a Capacitor app.
metadata.jsonreferences/guidelines/README.mdreferences/guidelines/by-app-type/ai_apps.mdreferences/guidelines/by-app-type/all_apps.mdreferences/guidelines/by-app-type/crypto_finance.mdreferences/guidelines/by-app-type/games.mdreferences/guidelines/by-app-type/health_fitness.mdreferences/guidelines/by-app-type/kids.mdreferences/guidelines/by-app-type/macos.mdreferences/guidelines/by-app-type/social_ugc.mdreferences/guidelines/by-app-type/subscription_iap.mdreferences/guidelines/by-app-type/vpn.mdreferences/rules/design/minimum_functionality.mdreferences/rules/design/sign_in_with_apple.mdreferences/rules/entitlements/unused_entitlements.mdreferences/rules/metadata/accurate_metadata.mdreferences/rules/metadata/apple_trademark.mdreferences/rules/metadata/china_storefront.mdreferences/rules/metadata/competitor_terms.mdreferences/rules/metadata/subscription_metadata.mdRun a pre-submission or post-rejection Apple review audit for a Capacitor app.
This skill adapts the Apple guideline and rejection-rule corpus from truongduy2611/app-store-preflight-skills and narrows the workflow to Capacitor-specific project inspection.
Detected Capacitor, auth, subscription, analytics, and privacy-related packages:
!node -e "const fs=require('fs');if(!fs.existsSync('package.json'))process.exit(0);const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const sections=['dependencies','devDependencies'];const out=[];for(const section of sections){for(const [name,version] of Object.entries(pkg[section]||{})){if(name.startsWith('@capacitor/')||name.startsWith('@capgo/')||name.includes('firebase')||name.includes('sentry')||name.includes('revenuecat')||name.includes('purchase')||name.includes('subscription')||name.includes('auth')||name.includes('analytics')||name.includes('segment')||name.includes('amplitude')||name.includes('mixpanel'))out.push(section+'.'+name+'='+version)}}console.log(out.sort().join('\n'))"
Relevant Apple review file paths:
!find . -maxdepth 6 \( -name 'package.json' -o -name 'capacitor.config.json' -o -name 'capacitor.config.ts' -o -name 'capacitor.config.js' -o -name 'Info.plist' -o -name '*.entitlements' -o -name 'PrivacyInfo.xcprivacy' -o -name 'project.pbxproj' -o -path './ios' -o -path './fastlane/metadata' -o -path './metadata' \)
Use this skill for Apple-facing review work, not for generic publishing.
If the task is mostly about screenshots, release setup, or store upload mechanics, combine this skill with capacitor-app-store.
Always read:
references/guidelines/by-app-type/all_apps.mdThen add the checklist that matches the app:
subscription_iap.md for subscriptions or IAPsocial_ugc.md for UGC or moderation-heavy appskids.md for Kids Categoryhealth_fitness.md for health, fitness, or medical claimsgames.md for gamesai_apps.md for AI or LLM featurescrypto_finance.md for crypto, trading, or financial workflowsvpn.md for VPN and networking appsmacos.md only when the submission also targets macOSUse references/guidelines/README.md for the full guideline index when a rejection cites a specific section.
Start from the injected snapshot above, then inspect:
package.json for Capacitor, auth, analytics, subscription, and SDK dependenciescapacitor.config.* for app identifiers, app name, web asset config, and live update settingsios/App/App/Info.plist or the project-specific Info.plist*.entitlements filesPrivacyInfo.xcprivacy if presentfastlane/metadata or other local metadata directories if they existPay special attention to Capacitor-specific Apple review risks:
Use the upstream rule files as the source of truth:
references/rules/metadata/*.mdreferences/rules/subscription/*.mdreferences/rules/privacy/*.mdreferences/rules/design/*.mdreferences/rules/entitlements/*.mdMap them onto the Capacitor app:
Info.plist, privacy manifests, SDK usage, and data collection flowsIf App Store metadata is not stored locally and asc is available, pull it with asc metadata pull --output-dir ./metadata. If not, audit local metadata sources and state what remains unverified.
Use this format:
## Apple Review Preflight
### Rejections Found
- [GUIDELINE X.X.X] Issue summary
- Evidence: file or metadata location
- Why it matters for this Capacitor app
- Fix: exact remediation
### Warnings
- [GUIDELINE X.X.X] Potential issue
### Passed
- [Category] Checks that looked clean
### Missing Inputs
- Metadata or review assets that were not available locally
Order findings by severity and make each fix concrete.
When relevant, draft reviewer notes for:
asc is not configured, continue with the code and project audit and clearly mark metadata checks as partial.PrivacyInfo.xcprivacy before assuming privacy compliance.npx claudepluginhub cap-go/capgo-skills --plugin capacitor-deploymentAudits iOS/iPadOS/macOS app projects against App Store Review Guidelines before submission. Supports Swift/ObjC, Flutter, React Native, Expo, Kotlin Multiplatform, .NET MAUI, Cordova/Ionic, Unity.
Simulates an Apple App Store review by inspecting iOS/macOS source code, entitlements, privacy manifests, and metadata for guideline violations. Trigger with "review my app".
Guides publishing Capacitor apps to Apple App Store and Google Play Store with checklists, configurations, screenshots, metadata, and submission steps.