ai/ios-skills/ios-asc-app-create-ui/SKILL.md
Create a new App Store Connect app record via browser automation. Use when there is no public API for app creation and you need an agent to drive the New App form.
npx skillsauth add kurko/dotfiles asc-app-create-uiInstall 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.
Use this skill to create a new App Store Connect app by driving the web UI. This is opt-in, local-only automation that requires the user to be signed in.
# Register the bundle ID via public API (if not already registered)
asc bundle-ids create --identifier "com.example.app" --name "My App" --platform IOS
# Confirm no app record exists yet
asc apps list --bundle-id "com.example.app" --output json
Navigate to https://appstoreconnect.apple.com/apps and ensure the user is signed in.
The "New App" button (blue "+" icon) opens a dropdown menu, not a dialog directly.
The platforms are checkboxes (not radio buttons). Click the checkbox for the desired platform(s):
NamePrimary Languageselect_option or equivalent with the language label (e.g., "English (U.S.)").Bundle ID<select> dropdown. The options load asynchronously after platform selection."My App - com.example.app"SKULimited Access or Full Access.<span> overlays.<span>.scrollIntoView on the radio element first, then click the radio ref directly. This bypasses the overlay interception./apps/<APP_ID>/...).asc apps get --id "APP_ID" --output json --pretty
# or
asc apps list --bundle-id "com.example.app" --output json
asc app-setup info set --app "APP_ID" --primary-locale "en-US"
asc app-setup categories set --app "APP_ID" --primary GAMES
asc app-setup availability set --app "APP_ID" --territory "USA,GBR" --available true
The first click opens a menu with "New App" and "New App Bundle". You must click the menu item, not just the button.
Apple's custom radio buttons wrap the <input type="radio"> in styled <span> elements. Direct ref-based clicks may fail with "click target intercepted". The fix is:
scrollIntoView).After selecting a platform, the Bundle ID dropdown shows "Loading..." and is disabled. Wait for it to become enabled and populated before selecting.
Apple's Ember.js forms use custom change handlers. browser_fill (atomic set) may not trigger validation. If the Create button stays disabled after filling all fields:
tools
Create a GitHub pull request from the current branch. Use when user asks to create a PR, open a PR, submit a PR, push and create PR, or similar pull request workflows. Activates for phrases like "create a PR", "open a pull request", "submit PR", "push and PR", "make a PR for this", "open a draft PR".
data-ai
Merge the current worktree branch into main and sync main back. Use when the user says "merge to main", "ship it", "merge and continue", or after completing a task in a worktree and wanting to continue with the next one.
tools
Synchronize AI agent skills, commands, configs, permissions, hooks, and instructions across Claude Code, Codex CLI, and other Agent Skills-compatible tools. Use when the user asks to pull skills from Claude into Codex, sync Codex work back to Claude, migrate agent commands, reconcile frontmatter, update permissions, or keep agent setup files in parity.
testing
Write or update UI-independent use cases for QA. Use when the user says "write use cases", "add use cases", "QA use cases", "update use cases", "compose use cases", or when starting implementation of a new feature (after plan approval). Also activates for "what should we test", "regression cases", or "use cases for QA".