appstore-workflow-runner — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited appstore-workflow-runner (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use asc workflow for lane-style repo-local automation. Workflows run trusted shell commands, stream step output to stderr, and keep stdout machine-readable JSON.
Verify flags first:
asc workflow --help
asc workflow validate --help
asc workflow list --help
asc workflow run --helpRun flow:
asc workflow validate
asc workflow list
asc workflow list --all
asc workflow run --dry-run beta BUILD_ID:123 GROUP_ID:abc
asc workflow run beta BUILD_ID:123 GROUP_ID:abc
asc workflow run release --resume "release-20260312T120000Z-deadbeef"Do not pass new KEY:VALUE params with --resume; saved workflow, params, and outputs are reused.
.asc/workflow.json; override with --file.before_all, after_all, error.description, private, env, steps.run, workflow, name, if, with, outputs.KEY:VALUE and KEY=VALUE; repeated keys are last-write-wins.definition.env < workflow.env < CLI params; for sub-workflows: sub env < caller env/params < step with.1, true, yes, y, on.Outputs:
run steps that declare outputs must emit JSON stdout, have unique reference-safe name, and should call asc ... --output json.${steps.step_name.OUTPUT_NAME}.{
"env": { "APP_ID": "123", "VERSION": "1.0.0", "GROUP_ID": "" },
"before_all": "asc auth status",
"workflows": {
"beta": {
"description": "Resolve latest build and distribute to TestFlight",
"steps": [
{
"name": "resolve_build",
"run": "asc builds info --app $APP_ID --latest --platform IOS --output json",
"outputs": { "BUILD_ID": "$.data.id" }
},
{ "name": "groups", "run": "asc testflight groups list --app $APP_ID --limit 20 --output json" },
{ "name": "add", "if": "GROUP_ID", "run": "asc builds add-groups --build-id ${steps.resolve_build.BUILD_ID} --group $GROUP_ID" }
]
},
"release": {
"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" }
]
}
}
}private: true for helper workflows not meant for direct listing.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.