Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 104% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -11% | 0% |
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:
bashasc workflow --help asc workflow validate --help asc workflow list --help asc workflow run --help
.asc/workflow.json.bashasc workflow validate
bashasc workflow list asc workflow list --all
bashasc workflow run --dry-run beta BUILD_ID:123456789 GROUP_ID:abcdef
bashasc workflow run beta BUILD_ID:123456789 GROUP_ID:abcdef
bashasc 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:
text${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:
bashasc 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:
textdefinition.env < workflow.env < CLI params
Sub-workflow call with with:
textsub-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.
json{ "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" } ] } } }
bashasc 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.Other measured skills in the registry, with their headline benchmark lift.