asc-ad-hoc-distributio…
Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside…
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 -y skills add rudrankriyam/asc-skills --skill asc-workflow --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/asc-workflowContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
name: asc-workflow description: 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.
Use this skill when you need lane-style automation inside the CLI using:
Workflows 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
1. Author `.asc/workflow.json`. 2. Validate structure and references:
asc workflow validate
3. Discover public workflows:
asc workflow list asc workflow list --all
4. Preview execution:
asc workflow run --dry-run beta BUILD_ID:123456789 GROUP_ID:abcdef
5. Execute:
asc workflow run beta BUILD_ID:123456789 GROUP_ID:abcdef
6. If a recoverable run fails, resume with the run ID from the JSON result:
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.
Run 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:
Add retry only to commands you have determined are safe to repeat. The runner does not classify commands or retry mutations on its own.
{
"name": "resolve_build",
"run": "asc builds info --app $APP_ID --latest --platform IOS --output json",
"retry": {
"max_attempts": 3,
"delay": "5s"
},
"timeout": "2m"
}`retry.max_attempts` counts the first attempt and must be between 2 and 100. Retry delays and timeouts must be positive durations no longer than 24 hours. Both fields work only on `run` steps, not workflow calls or lifecycle hooks.
A timeout without retry is terminal because the command may have completed remotely. Pairing retry and timeout is the explicit signal that another attempt is safe. Resume requires either a successful checkpoint or a retry-enabled failed step; output-extraction failures cannot be resumed.
`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-id $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-id $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 $VA collection of Agent Skills for shipping with the asc cli (asc). These skills help agents run builds, TestFlight, metadata, submissions, signing, and Apple Ads workflows. This is a community-maintained, unofficial skill pack and is not affiliated with Apple.
Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside…
Collect, download, and verify App Store Connect Analytics reports with asc. Use when users need to discover analytics report requests, select report instances…
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…
Use when managing Apple Ads with asc, including OAuth profiles, ad-account discovery, Platform API v1 campaigns and targeting, reports, assets,…
Run an offline ASO audit on canonical App Store metadata under `./metadata` and surface keyword gaps using Astro MCP. Use after pulling metadata with `asc…
Track build processing, find latest builds, and clean up old builds with asc. Use when managing build retention or waiting on processing.