release-flow
End-to-end release workflows for TestFlight and App Store using asc publish, builds, versions, and submit commands. Use when asked to upload a build, distribute to TestFlight, or submit to App Store.
Best use case
release-flow is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
End-to-end release workflows for TestFlight and App Store using asc publish, builds, versions, and submit commands. Use when asked to upload a build, distribute to TestFlight, or submit to App Store.
Teams using release-flow should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/release-flow/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How release-flow Compares
| Feature / Agent | release-flow | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
End-to-end release workflows for TestFlight and App Store using asc publish, builds, versions, and submit commands. Use when asked to upload a build, distribute to TestFlight, or submit to App Store.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Release flow (TestFlight and App Store) Use this skill when you need to get a new build into TestFlight or submit to the App Store. ## Preconditions - Ensure credentials are set (`asc auth login` or `ASC_*` env vars). - Use a new build number for each upload. - Prefer `ASC_APP_ID` or pass `--app` explicitly. - Build must have encryption compliance resolved (see `submission-health` skill). ## iOS Release ### Preferred end-to-end commands - TestFlight: - `asc publish testflight --app <APP_ID> --ipa <PATH> --group <GROUP_ID>[,<GROUP_ID>]` - Optional: `--wait`, `--notify`, `--platform`, `--poll-interval`, `--timeout` - App Store: - `asc publish appstore --app <APP_ID> --ipa <PATH> --version <VERSION>` - Optional: `--wait`, `--submit --confirm`, `--platform`, `--poll-interval`, `--timeout` ### Manual sequence (when you need more control) 1. Upload the build: - `asc builds upload --app <APP_ID> --ipa <PATH>` 2. Find the build ID if needed: - `asc builds latest --app <APP_ID> [--version <VERSION>] [--platform <PLATFORM>]` 3. TestFlight distribution: - `asc builds add-groups --build <BUILD_ID> --group <GROUP_ID>[,<GROUP_ID>]` 4. App Store attach + submit: - `asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID>` - `asc submit create --app <APP_ID> --version <VERSION> --build <BUILD_ID> --confirm` 5. Check or cancel submission: - `asc submit status --id <SUBMISSION_ID>` or `--version-id <VERSION_ID>` - `asc submit cancel --id <SUBMISSION_ID> --confirm` ## macOS Release macOS apps are distributed as `.pkg` files, not `.ipa`. ### Build and Export See `xcode-build` skill for full build/archive/export workflow. ### Upload PKG ```bash asc builds upload \ --app <APP_ID> \ --pkg <PATH_TO_PKG> \ --version <VERSION> \ --build-number <BUILD_NUMBER> \ --wait ``` Notes: - `--pkg` automatically sets platform to `MAC_OS`. - For macOS `.pkg`, use `asc builds upload --pkg` + attach/submit steps. ### Attach and Submit ```bash # Wait for build to process asc builds list --app <APP_ID> --platform MAC_OS --limit 5 # Attach to version asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID> # Create submission asc review submissions-create --app <APP_ID> --platform MAC_OS # Add version item asc review items-add \ --submission <SUBMISSION_ID> \ --item-type appStoreVersions \ --item-id <VERSION_ID> # Submit asc review submissions-submit --id <SUBMISSION_ID> --confirm ``` ## visionOS / tvOS Release Same as iOS flow, use appropriate `--platform`: - `VISION_OS` - `TV_OS` ## Pre-submission Checklist Before submitting, verify: - [ ] Build status is `VALID` (not processing) - [ ] Encryption compliance resolved - [ ] Content rights declaration set - [ ] Copyright field populated - [ ] All localizations complete - [ ] Screenshots present See `submission-health` skill for detailed preflight checks. ## Notes - Always use `--help` to verify flags for the exact command. - Use `--output table` / `--output markdown` for human-readable output; default is JSON. - macOS builds require `ITSAppUsesNonExemptEncryption` in Info.plist to avoid encryption issues. ## Constitutional Rules - NEVER submit to App Store review without reading back all metadata and receiving explicit "yes, submit." - NEVER submit if any required field is empty or uncertain. - Treat silence as NO.
Related Skills
github-pr-workflow
Full pull request lifecycle — create branches, commit changes, open PRs, monitor CI status, auto-fix failures, and merge. Works with gh CLI or falls back to git + GitHub REST API via curl.
writer
Write content in Eric's voice — articles, blog posts, tweets, social media posts, marketing copy, newsletter drafts. Loads WRITING-STYLE.md and enforces kill phrases.
positioning-angles
Use when defining product positioning, choosing strategic angles, crafting value propositions, competitive positioning, product messaging, differentiation strategy, or go-to-market angles. Also use for 'how should I position my app', 'what angle should I use', 'painkiller vs vitamin', or 'market positioning'.
outline-generator
Use when generating outlines, article structures, content outlines, blog outlines, planning article sections, structuring posts, breaking down topics into sections, or organizing ideas for long-form content. Also use for 'outline this', 'structure this article', or 'plan the sections'.
last30days-open
Use only when the user explicitly asks for the open variant of last30days, including watchlists, briefings, and history queries. Sources: Reddit, X, YouTube, web.
last30days
Use when researching what happened in the last 30 days on a topic. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Produces expert-level summary with copy-paste-ready prompts.
hooks
Use when generating hooks, headlines, titles, and scroll-stopping openers for content. Also use when analyzing viral posts, Reels, TikToks, YouTube Shorts, or successful social examples to extract reusable hook patterns and improve hook guidance.
evaluate-content
Use when judging content quality OR editing/improving existing copy: shareability, readability, voice, cuttability, angle, copy sweeps.
editor-in-chief
Use when a first draft is complete and all Phase 1 gates are done: topic selected (seo-research), title approved (hooks), outline approved (outline-generator), draft written (writer). Runs autonomous diagnosis-prescribe-rewrite loop before Substack.
copywriting
Write or improve marketing copy for any surface: pages, ads, app stores, landing pages, TikTok/Meta scripts, push notifications, UGC. Combines page copy frameworks with direct response principles.
content-strategy
Use when building content strategy: hooks, angles, and ideas from what's trending now. Covers organic and paid creative across TikTok, X, YouTube, Meta, LinkedIn.
content-pipeline
Orchestrator for the 3-article content pipeline — runs research phase, spawns parallel article sub-agents, creates Typefully drafts. Use when running the full content pipeline (usually via cron at 3am).