Agent skill · Audited from source

app-store-connect-cli-skills

skill · rorkai/app-store-connect-cli-skillsMIT licenceAudited 26 Oct 2026 · source dd8203c7bf09

★ 1,103pushed today
✓SAFEGrade B · 89/100 · 26 Oct 2026 · dd8203c
1,103repo stars · whole rorkai/app-store-connect-cli-skills

Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit dd8203c7bf09 and found no filesystem, network or shell access and no hard-coded secrets. What it does: Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside TestFlight, reconciling ad hoc profiles, publishing through…

Ask an AI about this pageGChatGPTCClaudePPerplexityGeGeminiXGrok
More
Cite

Cite this page

ModelsAtlas. “app-store-connect-cli-skills (rorkai/app-store-connect-cli-skills)”. Retrieved 26 Oct 2026. https://modelsatlas.com/skills/rorkai/app-store-connect-cli-skills

Trust audit

Audit 0.4.1 · source read 26 Oct 2026

Trust score89/100✓SAFE B
0 critical0 high0 medium0 low2 info

SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.

What the source does

  • FilesystemNone observedNo reads or writes in the source
  • NetworkNone observedNo outbound calls in the source
  • ShellNone observedNo commands run in the source
  • DependenciesPinnedNothing floats
  • SecretsNone foundNo keys in source

Five audit layers

LayerWhat we checkResultFindings
L0 ProvenanceRepo owner, licence, archive status, activityPASS0
L1 Static sourceSecrets, path traversal, supply chain, hidden codePASS0
L2 InstructionsPrompt injection, authority framing, hidden directivesPASS2
L3 InventoryThe files and declarations match the sourcePASS0
L4 SandboxRun in isolation and watch behaviourSKIPPED why0

Gates applied: no behavioural pass.

Findings (2)

INFOPrompt injectionprompt.authority_framing · skills/asc-app-create-ui/SKILL.md:21
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
- user access (Full Access or Limited Access)
Why
No further detail recorded for this rule.
Fix
—
INFOPrompt injectionprompt.authority_framing · skills/asc-app-create-ui/SKILL.md:76
F-01 Prompt injectionCWE-94 · CWE-1427Layer L2
- Options: `Limited Access` or `Full Access`.
Why
No further detail recorded for this rule.
Fix
—

Audit 0.4.1 · source sha dd8203c7bf09 · 26 Oct 2026Report an issue or request a re-scan

Provenance

Who published it, and what the verdict is pinned to

  • Publisherrorkai GitHub organizationOwner of the repository this skill is read from
  • Source folderrorkai/app-store-connect-cli-skillsThe exact folder we audited
  • LicenceMITAs the repository states it
  • Commit pinned for this verdictdd8203c7bf09A new audit runs when the source changes
  • Repository statusNot archivedPushed today
  • Sandboxed runNot runSkills are read, not executed; layer L4 is skipped

What it tells the agent

Full source on GitHub ↗

Its description: Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside TestFlight, reconciling ad hoc profiles, publishing through…

---
name: asc-ad-hoc-distribution
description: Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside TestFlight, reconciling ad hoc profiles, publishing through caller-owned S3-compatible storage, or diagnosing a resumable private distribution run.
---

# ASC ad hoc distribution

Use the experimental `asc distribute` workflow to turn an existing iOS archive
into a private, verified install link for registered devices. Use TestFlight or
the App Store release skills instead when the build should go through Apple-hosted
distribution.

Confirm the installed contract before acting:

```bash
asc distribute --help
asc distribute plan --help
asc distribute apply --help
asc distribute resume --help
asc distribute status --help
asc distribute verify --help
```

## Choose the workflow

- Use `plan` -> `apply` -> `resume`/`status` -> `verify` for an end-to-end,
  hash-authorized run starting from an `.xcarchive`.
- Use `inspect` -> `prepare` -> `publish` only when the caller already owns the
  ad hoc IPA and wants to operate the lower-level boundaries separately.

## Guardrails

- Treat the distribution spec, devices file, PKCS#12 identity, password file,
  run state, and exact install-link artifact as private. Keep them out of Git and
  require owner-only permissions.
- Never put S3 credentials or presigned URLs in the distribution spec, command
  output, logs, issues, or chat. Use `ASC_S3_ACCESS_KEY_ID`,
  `ASC_S3_SECRET_ACCESS_KEY`, and optional `ASC_S3_SESSION_TOKEN`, or the
  standard AWS SDK credential chain.
- `plan` is read-only and may exit successfully with `ready: false`. Inspect the
  typed blockers and effects before continuing.
- `apply` can register missing devices, create safe App IDs and successor ad hoc
  profiles, write local artifacts, and publish immutable objects. Run it only
  after the user authorizes the exact plan hash and effect inventory.
- The orchestrated workflow supports private access to an existing
  S3-compatible bucket. It does not create buckets, change policies, delete old
  builds, install the app, or launch it.
- Input drift, an immutable-object conflict, expired signing material, or an
  expired private link requires a new plan. Do not force the old run forward.

## Preconditions

- An existing iOS `.xcarchive` with one main app target. Embedded apps,
  extensions, Watch apps, and App Clips make the v1 plan not ready.
- A local iOS distribution PKCS#12 identity and optional protected password file.
- A protected strict-v1 devices file. For example:

```json
{"schemaVersion":1,"devices":[{"name":"Test iPhone","udid":"DEVICE_UDID","platform":"IOS"}]}
```

- App Store Connect authentication with access to devices, Bundle IDs,
  certificates, and profiles.
- An existing S3-compatible bucket and valid credentials.

## 1. Create the private distribution spec

Relative paths resolve from the spec directory. The spec does not interpolate
environment variables or accept credentials. A representative private config is:

```json
{
  "schemaVersion": 1,
  "devicesFile": "devices.json",
  "signing": {
    "identity": {
      "format": "pkcs12",
      "path": "../signing/distribution.p12",
      "passwordFile": "../secrets/distribution-p12-password"
    },
    "minimumValidityDays": 7,
    "maxMutations": 32
  },
  "publication": {
    "endpoint": "https://objects.example.com",
    "downloadEndpoint": "https://downloads.example.com",
    "region": "auto",
    "bucket": "ios-builds",
    "prefix": "team/app",
    "addressingStyle": "path",
    "urlTtl": "24h",
    "downloadGrace": "1h",
    "verifyTimeout": "30s"
  },
  "metadata": {
    "title": "App",
    "channel": "pull-request-42",
    "sourceRevision": "abc123",
    "sourceUrl": "https://example.com/team/app/commit/abc123"
  }
}
```

`passwordFile`, `certificateSha256`, `downloadEndpoint`, and every metadata field
are optional. An omitted password file means the PKCS#12 must use an empty
password. Protect the config and secret inputs before planning:

```bash
chmod 600 ".asc/distribution/config.json" ".asc/distribution/devices.json"
chmod 600 ".asc/signing/distribution.p12" ".asc/secrets/distribution-p12-password"
```

## 2. Plan without mutation

```bash
asc distribute plan \
  --archive-path ".asc/artifacts/App.xcarchive" \
  --config ".asc/distribution/config.json" \
  --plan ".asc/distribution/plan.json" \
  --state-dir ".asc/distribution/runs" \
  --output json
```

Inspect `ready`, `planHash`, signing validity, destination, and the complete
ordered `effects` inventory. Resolve blockers and create a new plan when
`ready` is false. Do not infer readiness from exit code alone.

## 3. Apply the exact authorized plan

After approval of the exact effects, pass the full 64-character hash:

```bash
PLAN_HASH="$(jq -er '.planHash' ".asc/distribution/plan.json")"
asc distribute apply \
  --plan ".asc/distribution/plan.json" \
  --confirm "$PLAN_HASH" \
  --output json
```

Missing, malformed, or unequal confirmation is rejected before side effects.
Success means publication and live fetch verification completed; it does not
mean a device installed or launched the app.

## 4. Inspect, resume, and verify

Use the returned `runId`:

```bash
asc distribute status --run "RUN_ID" --state-dir ".asc/distribution/runs" --output json
asc distribute resume --run "RUN_ID" --state-dir ".asc/distribution/runs" --output json
asc distribute verify --run "RUN_ID" --state-dir ".asc/distribution/runs" --timeout 30s --output json
```

`status` is local-only and succeeds for `running`, `recoverable`, and `blocked`
runs; branch on typed fields rather than prose. `resume` revalidates durable
evidence before retrying and never blindly repeats a remote write. `verify` is
read-only but performs live fetches. Add `--device "DEVICE_SELECTOR"` only when
the user asks to observe the matching installed bundle, version, and build on a
connected device; th

Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.

Install

Pinned to the audited commit dd8203c

Download folder ↗
npx skills add rorkai/app-store-connect-cli-skills
claude plugin install asc@rorkai
npx skills add rorkai/app-store-connect-cli-skills --agent codex
pip install koubou==0.20.0

Commands as the repository documents them: shown, never run by us. Our verdict covers commit dd8203c7bf09 only.

Works in which agents?

What its own text says, not a test

AgentStatusMore
Claude CodeMentioned in its text, not testedSkills for Claude Code · About Claude Code
CodexMentioned in its text, not testedSkills for Codex · About Codex
CursorMentioned in its text, not testedSkills for Cursor · About Cursor
“Mentioned” means the skill’s text names the agent. We have not run it there.

Audit history

Every audit, every source change

  1. ✓SAFE B 89 / 100

    first audit · source dd8203c7bf09

README badge

For maintainers · shows the latest audit

ModelsAtlas: SAFE BMODELSATLASSAFE · B
[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/rorkai/app-store-connect-cli-skills/badge.svg)](https://modelsatlas.com/skills/rorkai/app-store-connect-cli-skills/)

The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.

asc-ppp-pricing✓SAFE

rorkai/app-store-connect-cli-skills

Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands. Use when adjusting prices by country or implementing localized…

★ 1.1kGrade B
asc-release-flow✓SAFE

rorkai/app-store-connect-cli-skills

Orchestrate App Store releases with asc, including staging a version, uploading or building an artifact, publishing, and submitting for review. Use when the user wants to prepare or execute a release. Keep Game Center…

★ 1.1kGrade B
asc-release-flow✓SAFE

rudrankriyam/app-store-connect-cli-skills

Orchestrate App Store releases with asc, including staging a version, uploading or building an artifact, publishing, and submitting for review. Use when the user wants to prepare or execute a release. Keep Game Center…

★ 1.1kGrade B
asc-revenuecat-catalog-sync✓SAFE

rudrankriyam/app-store-connect-cli-skills

Reconcile App Store Connect subscriptions and in-app purchases with RevenueCat products, entitlements, offerings, and packages using asc and RevenueCat MCP. Use when setting up or syncing subscription catalogs across…

★ 1.1kGrade B
asc-notarization✓SAFE

rorkai/app-store-connect-cli-skills

Archive, export, and notarize macOS apps using xcodebuild and asc. Use when you need to prepare a macOS app for distribution outside the App Store with Developer ID signing and Apple notarization.

★ 1.1kGrade B
asc-ppp-pricing✓SAFE

rudrankriyam/app-store-connect-cli-skills

Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands. Use when adjusting prices by country or implementing localized…

★ 1.1kGrade B

Add this badge to your README

[![ModelsAtlas: SAFE B](https://modelsatlas.com/skills/rorkai/app-store-connect-cli-skills/badge.svg)](https://modelsatlas.com/skills/rorkai/app-store-connect-cli-skills/)

Questions about app-store-connect-cli-skills

What does the app-store-connect-cli-skills skill do?
Skills to automate app store deployed and everything related to it using the asc cli
Is app-store-connect-cli-skills safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can app-store-connect-cli-skills access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does app-store-connect-cli-skills work with?
Its documentation mentions claude-code, codex and cursor. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (dd8203c7bf09), read on 2026-10-26. The repository is watched, and a new audit runs when it changes — this is the first audit.

Sources

Spotted something wrong? Report a correction · Methodology

Keep going in your AI

Opens with this page as the source. We add nothing else to the prompt.