skills/asc-workflow/SKILL.md
Define, validate, run, resume, and audit repo-local multi-step automations with current `asc workflow` and `.asc/workflow.json`, including step outputs and safe release/TestFlight workflows.
npx skillsauth add rudrankriyam/app-store-connect-cli-skills asc-workflowInstall 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 when you need lane-style automation inside the CLI using:
asc workflow validateasc workflow listasc workflow runWorkflows are repo-local automation files. They run trusted shell commands, stream step output to stderr, and keep stdout as machine-readable JSON.
Always verify flags with:
asc workflow --help
asc workflow validate --help
asc workflow list --help
asc workflow run --help
.asc/workflow.json.asc workflow validate
asc workflow list
asc workflow list --all
asc workflow run --dry-run beta BUILD_ID:123456789 GROUP_ID:abcdef
asc workflow run beta BUILD_ID:123456789 GROUP_ID:abcdef
asc workflow run release --resume "release-20260312T120000Z-deadbeef"
Do not pass extra KEY:VALUE params with --resume; the saved workflow file, params, and persisted outputs are reused.
.asc/workflow.jsonasc workflow run --file ./path/to/workflow.json <name>before_all, after_all, errordescription, private, env, steps"echo hello"run shell commandworkflow sub-workflow callname labelif conditional var namewith env overrides for workflow-call stepsoutputs map for JSON stdout extraction from named run stepsRun steps can declare outputs. The command must emit JSON on stdout, so pass --output json for asc commands that produce outputs.
Output references use:
${steps.step_name.OUTPUT_NAME}
Rules:
outputs must have a reference-safe name.run steps, not workflow-call steps.asc workflow run <name> [KEY:VALUE ...] supports both separators:
asc workflow run beta VERSION:2.1.0
asc workflow run beta VERSION=2.1.0
Repeated keys are last-write-wins. In shell commands, reference params through shell expansion like $VERSION.
Main workflow run:
definition.env < workflow.env < CLI params
Sub-workflow call with with:
sub-workflow env < caller env and params < step with
Add "if": "VAR_NAME" to a step. Truthy values are 1, true, yes, y, and on, case-insensitive. Lookup checks merged workflow env/params first, then process environment.
{
"env": {
"APP_ID": "123456789",
"VERSION": "1.0.0",
"GROUP_ID": ""
},
"before_all": "asc auth status",
"after_all": "echo workflow_done",
"error": "echo workflow_failed",
"workflows": {
"beta": {
"description": "Resolve the latest build and distribute it to TestFlight",
"steps": [
{
"name": "resolve_build",
"run": "asc builds info --app $APP_ID --latest --platform IOS --output json",
"outputs": {
"BUILD_ID": "$.data.id"
}
},
{
"name": "list_groups",
"run": "asc testflight groups list --app $APP_ID --limit 20 --output json"
},
{
"name": "add_build_to_group",
"if": "GROUP_ID",
"run": "asc builds add-groups --build-id ${steps.resolve_build.BUILD_ID} --group $GROUP_ID"
}
]
},
"release": {
"description": "Validate, stage, and submit an App Store version",
"steps": [
{
"name": "validate",
"run": "asc validate --app $APP_ID --version $VERSION --platform IOS --output json"
},
{
"name": "stage",
"run": "asc release stage --app $APP_ID --version $VERSION --build $BUILD_ID --metadata-dir ./metadata/version/$VERSION --confirm --output json"
},
{
"name": "submit",
"if": "SUBMIT_FOR_REVIEW",
"run": "asc review submit --app $APP_ID --version $VERSION --build $BUILD_ID --confirm --output json"
}
]
},
"publish-appstore": {
"description": "High-level upload plus App Store review submission",
"steps": [
{
"name": "publish",
"run": "asc publish appstore --app $APP_ID --ipa ./build/MyApp.ipa --version $VERSION --wait --submit --confirm --output json"
}
]
}
}
}
asc workflow validate | jq -e '.valid == true'
asc workflow list --pretty
asc workflow list --all --pretty
asc workflow run --dry-run beta BUILD_ID:123 GROUP_ID:grp_abc
asc workflow run beta BUILD_ID:123 GROUP_ID:grp_abc | jq -e '.status == "ok"'
asc workflow run release BUILD_ID:123 SUBMIT_FOR_REVIEW:true
asc workflow run release --resume "release-20260312T120000Z-deadbeef"
.asc/workflow.json like code; only run trusted workflow files.--confirm for mutating steps.asc validate, asc release stage, asc review submit, and asc publish appstore; do not use removed submission commands.development
Use when managing Apple Ads with asc, including auth, org lookup, campaigns, ad groups, ads, keywords, reports, raw API calls, and safe live testing.
tools
Set up bundle IDs, capabilities, signing certificates, provisioning profiles, and encrypted signing sync with the asc cli. Use when onboarding a new app, rotating signing assets, or sharing them across a team.
tools
Guidance for using asc cli in this repo (flags, output formats, pagination, auth, and discovery). Use when asked to run or design asc commands or interact with App Store Connect via the CLI.
testing
Validate App Store submission readiness, submit prepared versions, and monitor review status with current asc commands. Use when shipping or troubleshooting review submissions.