asc-workflow
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.
By rorkai · 6,096 installs
npx skills add rorkai/app-store-connect-cli-skills --skill asc-workflow
Source repository · Upstream listing
asc workflow
Use this skill when you need lane style automation inside the CLI using:
asc workflow validate
asc workflow list
asc workflow run
Workflows are repo local automation files. They run trusted shell commands, stream step output to stderr, and keep stdout as machine readable JSON.
Command discovery
Always verify flags with:
End to end flow
1. Author .asc/workflow.json .
2. Validate structure and references:
3. Discover public workflows:
4. Preview execution:
5. Execute:
6. If a recoverable run fails, resume with the run ID from the JSON result:
Do not pass extra KEY:VALUE params with resume ; the saved workflow file, params, and persisted outputs are reused.
File location and format
Default path: .asc/workflow.json
Override path: asc workflow run file ./path/to/workflow.json <name
JSONC comments are supported.
Top level hooks: before all , after all , error
Workflow keys: description , private , env , steps
Step forms:
string shorthand: "echo hello"
run shell command
workflow sub workflow call
name label
if conditional var name
with env overrides for workflow call steps
outputs map for JSON stdout extraction from named run steps
retry fixed delay retry policy for a run step
timeout positive per attempt duration for a run step
Outputs
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:
Rules:
A step that declares outputs must have a reference safe name .
Outputs are allowed on run steps, not workflow call steps.
Output producing names must be unique across workflows that can execute together in the same run graph.
Persisted outputs are stored in workflow run state, so do not map secrets into outputs.
Bounded retry and timeout
Add retry only to commands you have determined are safe to repeat. The runner does not classify commands or retry mutations on its own.
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.
Runtime params
asc workflow run <name [KEY:VALUE ...] supports both separators:
Repeated keys are last write wins. In shell commands, reference params through shell expansion like $VERSION .
Env precedence
Main workflow run:
Sub workflow call with with :
Conditionals
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.
Example workflow
Useful invocations
Safety rules
Treat .asc/workflow.json like code; only run trusted workflow files.
Avoid running workflows from untrusted PRs with secrets.
Keep workflow files in version control.
Validate first, dry run next, then run.
Use explicit IDs and confirm for mutating steps.
Use asc validate , asc release stage , asc review submit , and asc publish appstore ; do not use removed submission commands.