app-store-preflight
Skill4 starsChanged 6 months agoMITView on GitHub
Use when preparing an iOS app for App Store review, responding to an Apple rejection, or auditing metadata, subscriptions, privacy manifests, entitlements, age rating, screenshots, TestFlight, IAP, pricing, review info, or design compliance. Runs asc validate commands plus local rejection-rule checks.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- ilan-uzan/app-store-preflighttheir own version, first seen Nov 1, 2026
- beydemirfurkan/appstore-releasetheir own version, first seen Oct 13, 2026
- quiet-build/skillstheir own version, first seen Sep 16, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- ilan-uzan/app-store-preflight★ 5same name
- beydemirfurkan/appstore-release★ 4same name
- quiet-build/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository76 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/components.mdcCursor rule
- .cursor/rules/currency.mdcCursor rule
- .cursor/rules/design-system.mdcCursor rule
- .cursor/rules/file-structure.mdcCursor rule
- .cursor/rules/forbidden-patterns.mdcCursor rule
- .cursor/rules/mvvm-architecture.mdcCursor rule
- .cursor/rules/pricing-display.mdcCursor rule
- .cursor/rules/scope.mdcCursor rule
- .cursor/rules/swift-conventions.mdcCursor rule
- accessibilitySkill
- animationsSkill
- apple-developer-authSkill
- apple-signinSkill
- asc-app-create-uiSkill
- asc-aso-auditSkill
- asc-build-lifecycleSkill
- asc-cli-usageSkill
- asc-crash-triageSkill
- asc-id-resolverSkill
- asc-localize-metadataSkill
- asc-metadata-syncSkill
- asc-metadata-yamlSkill
- asc-notarizationSkill
- asc-ppp-pricingSkill
- asc-release-flowSkill
- asc-revenuecat-catalog-syncSkill
- asc-screenshot-resizeSkill
- asc-shots-pipelineSkill
- asc-signing-setupSkill
- ascSkill
- asc-submission-healthSkill
- asc-subscription-localizationSkill
- asc-testflight-orchestrationSkill
- asc-wall-submitSkill
- asc-whats-new-writerSkill
- asc-workflowSkill
- asc-xcode-buildSkill
- billing-finance-calculatorSkill
- buildSkill
- business-modelSkill
- chartsSkill
- consolidate-errorsSkill
- content-composerSkill
- crashSkill
- debuggingSkill
- feature-directory-structureSkill
- feedback-statesSkill
- fix-errorSkill
- formsSkill
- foundation-modelsSkill
- hapticsSkill
- healthkitSkill
- layoutSkill
- listsSkill
- navigationSkill
- notificationsSkill
- onboarding-questionnaireSkill
- onboardingSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Run a two-layer preflight:
- Distinctive: line 38
Run the canonical readiness checks first:
- Distinctive: line 46
If a TestFlight build is part of the release:
- Distinctive: line 79
Run these local checks in addition to ASC validation:
- Very specific: line 140
After any patch, rerun the affected local rule and the relevant asc validate ...
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
App Store Preflight
Run a two-layer preflight:
- Canonical ASC validation with
asc validate. - Local rejection-risk audit using metadata, entitlements, privacy files, screenshots, subscription copy, and rule references.
This skill produces a ship/no-ship report with an ordered remediation plan.
Inputs
Resolve these from .agents/config/product.md, .asc/, metadata/, the Xcode project, or live asc reads before asking the user:
- App ID
- Bundle ID
- Platform: usually
IOS - Primary locale:
en-US - Version: read from
metadata/version.yaml,project.yml, or the user’s release target - Build ID: resolve with
asc builds list --app <APP_ID> --output jsonif needed
Step 1: Tool Health
asc --version
asc doctor
asc auth statusExpected CLI: asc 1.4.0 or newer. If auth is broken, stop and route to asc-cli-usage or apple-developer-auth.
Step 2: Canonical ASC Validation
Run the canonical readiness checks first:
ASC_TIMEOUT=90s asc validate --app "<APP_ID>" --version "<VERSION>" --platform IOS --output markdown
asc validate subscriptions --app "<APP_ID>" --output markdown
asc validate iap --app "<APP_ID>" --output markdownIf a TestFlight build is part of the release:
asc validate testflight --app "<APP_ID>" --build "<BUILD_ID>" --output markdownFor CI/gating checks, rerun with --strict --output json --pretty and preserve the JSON findings.
Use ASC_TIMEOUT=90s for full app validation because screenshot-set fetches can exceed the default timeout. asc validate checks metadata length limits, required fields/localizations, review details, primary category, attached/processed build, encryption declaration, content rights, pricing/territory availability, screenshot presence and dimensions, subscription review readiness, promotional image guidance, and age rating completeness.
Step 3: Local App Store Rule Audit
Load applicable checklists from references/guidelines/by-app-type/:
| App Type | Checklist |
| Every app | references/guidelines/by-app-type/all_apps.md |
| Subscriptions / IAP | references/guidelines/by-app-type/subscription_iap.md |
| AI / Generative AI | references/guidelines/by-app-type/ai_apps.md if metadata or code mentions AI |
| Health & Fitness | references/guidelines/by-app-type/health_fitness.md if HealthKit appears |
| Social / UGC | references/guidelines/by-app-type/social_ugc.md if user-generated content exists |
| Kids / Games / VPN / Crypto / macOS | Load only if the app actually fits |
Then inspect rule files from:
references/rules/metadata/*.mdreferences/rules/subscription/*.mdreferences/rules/privacy/*.mdreferences/rules/design/*.mdreferences/rules/entitlements/*.md
Step 4: Local Project Checks
Run these local checks in addition to ASC validation:
- Metadata:
metadata/app-info/,metadata/version/,metadata/privacy.yaml,metadata/review-info.yaml,metadata/age-rating.yaml,metadata/encryption.yaml. - Screenshots:
metadata/screenshots.yamland every referenced PNG path undermetadata/screenshots/. - Subscription catalog:
metadata/subscriptions/*.yaml, active product IDs, review screenshots, intro offer disclosure, and archived SKU exclusion. - Paywall compliance: full renewal price, duration, auto-renew language, trial terms, Restore Purchases, Terms, Privacy Policy.
- Privacy: the app's
Info.plist,PrivacyInfo.xcprivacyif present, permission strings, and data collection claims. - Entitlements: project entitlements versus actual feature usage.
- Localization: required
en-USfields, keywords length, missing locale JSON, stale translations. - Build metadata: bundle version/build number consistency across
Info.plist, Xcode project, and latest ASC build.
Step 5: Output Format
Return this shape:
## App Store Preflight
Status: BLOCKED | READY WITH WARNINGS | READY
### ASC Validate
- App version:
- Subscriptions:
- IAP:
- TestFlight:
### Blocking Issues
- [source] issue
- Evidence:
- Fix:
- Recheck:
### Warnings
- [source] issue
### Passed
- check
### Next Command
`asc ...`Order findings by release risk. Treat Apple-visible inaccuracies, missing review info, broken subscription disclosure, missing screenshots, unprocessed builds, privacy mismatch, or auth failures as blockers.
Autofix Policy
Safe to patch:
- Metadata typo/length fixes in local metadata files.
- Missing non-secret placeholder fields when the value is discoverable from config.
- Local screenshot manifest paths when files exist.
- Subscription wording in local metadata when it is mechanically derived from
metadata/subscriptions/.
Do not auto-fix:
- Pricing decisions.
- Privacy claims not proven by code.
- Legal URLs or support URLs not already configured.
- Deleting or recreating ASC products.
- AppTheme or paywall UI changes unless the user explicitly asks.
After any patch, rerun the affected local rule and the relevant asc validate ... command.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

