swiftship/internal/skills/data/features/asc-version-routing/SKILL.md
Route App Store Connect actions based on version state. Use when the user wants to submit, update, or manage an app version and you need to determine the correct workflow based on the current version state.
npx skillsauth add abdullah4ai/apple-developer-toolkit asc-version-routingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Before doing ANY metadata or submission work, check the pre-flight version state from the system prompt and route accordingly.
| State | Editable? | Description |
|-------|-----------|-------------|
| PREPARE_FOR_SUBMISSION | Yes | Version created, ready for metadata and submission |
| DEVELOPER_REJECTED | Yes | Developer pulled it back from review, editable again |
| WAITING_FOR_REVIEW | No | Submitted, waiting in Apple's queue |
| IN_REVIEW | No | Apple is actively reviewing |
| REJECTED | No | Apple rejected the submission |
| READY_FOR_SALE | No | Live on the App Store |
| PENDING_DEVELOPER_RELEASE | No | Approved, waiting for developer to release |
| PROCESSING_FOR_APP_STORE | No | Apple is processing after approval |
| State | Action |
|-------|--------|
| PREPARE_FOR_SUBMISSION | Proceed with metadata and submission normally |
| DEVELOPER_REJECTED | Inform user this is a resubmission, then proceed normally |
| WAITING_FOR_REVIEW | Tell user the version is in queue. Ask: cancel review, create new version, or wait |
| IN_REVIEW | Tell user Apple is reviewing. Ask: cancel review (warn loses queue slot), create new version, or wait |
| REJECTED | Ask: view rejection reasons, or create a new version |
| READY_FOR_SALE | This is the live version. Ask what version number for the update |
| PENDING_DEVELOPER_RELEASE | Ask: release now, create new version, or wait |
| PROCESSING_FOR_APP_STORE | Tell user to wait and re-check later, nothing can be done now |
| No versions exist | Ask what version number for the first release |
When a new version is needed (live app update, after rejection, etc.):
asc versions create --app APP_ID --version VERSION --platform IOSMARKETING_VERSION in the Xcode project must match the new version number. Update it before building.When user wants to cancel WAITING_FOR_REVIEW or IN_REVIEW:
asc submit status --app APP_ID --output json # find submission ID
asc submit cancel --id SUBMISSION_ID --confirm
After cancellation, version returns to PREPARE_FOR_SUBMISSION and can proceed normally.
MARKETING_VERSION / CFBundleShortVersionString): user-facing, e.g. "1.1" - must match the ASC version.CURRENT_PROJECT_VERSION / CFBundleVersion): internal, must be unique and higher than any previous upload.MARKETING_VERSION matches and update it if not.When multiple non-live versions exist (e.g. 1.0 WAITING_FOR_REVIEW + 1.1 PREPARE_FOR_SUBMISSION):
tools
Apple platform skill for docs, WWDC lookup, App Store Connect work, and SwiftUI app generation. Use repo-local `node cli.js` for Apple docs and WWDC search, `appledev store` for App Store Connect workflows, and `appledev build` for app scaffolding or fix loops on macOS. USE WHEN: Apple APIs, WWDC sessions, TestFlight/App Store tasks, or building/fixing Apple-platform apps. DON'T USE WHEN: non-Apple platforms, generic backend work, or general web research. EDGE CASES: docs-only queries use `node cli.js` in this repo, not `appledev`; release workflows use `appledev store`; app scaffolding uses `appledev build`; rules-only requests can read `references/ios-rules/` or `references/swiftui-guides/` progressively without invoking binaries.
tools
All-in-one Apple developer skill with three integrated tools shipped as a single unified binary. (1) Documentation search across Apple frameworks, symbols, and 1,267 WWDC sessions from 2014-2025. No credentials needed. (2) App Store Connect CLI with 120+ commands covering builds (find/wait/upload), TestFlight, pre-submission validate, submissions, signing, subscriptions (family-sharable), IAP, analytics, Xcode Cloud, metadata workflows, release pipeline dashboard, insights, win-back offers, promoted purchases, product pages, nominations, accessibility declarations, pre-orders, pricing filters, localizations update, diff, webhooks with local receiver, workflow automation, and more. Requires App Store Connect API key. (3) Multi-platform app builder (iOS/watchOS/tvOS/iPad/macOS/visionOS) that generates complete Swift/SwiftUI apps from natural language with auto-fix, simulator launch, interactive chat mode, and open-in-Xcode. Requires an LLM API key and Xcode. Includes 38 iOS development rules and 12 SwiftUI best practice guides for Liquid Glass, navigation, state management, and modern APIs. All three tools ship as one binary (appledev). USE WHEN: Apple API docs, App Store Connect management, WWDC lookup, or building iOS/watchOS/tvOS/macOS/visionOS apps from scratch. DON'T USE WHEN: non-Apple platforms or general coding.
testing
watchOS complications: WidgetKit complication families, accessory sizes, timeline providers for watch face. Use when implementing watchOS-specific patterns related to widgets.
development
watchOS haptic feedback: WKInterfaceDevice preset haptic types for wrist-based feedback. Use when implementing watchOS-specific patterns related to haptics.