End-to-end pipeline for releasing an iOS / watchOS app to TestFlight and the App Store. Use when the user wants to publish, ship, or release an iOS/watchOS app, get a build onto TestFlight, archive and upload via xcodebuild, deploy a CloudKit schema to Production, set App Privacy or export compliance, mint a Distribution certificate, or work through App Store Connect / Apple Developer portal steps. Triggers on 'continue publishing', 'ship the app to TestFlight', 'release the iOS app', 'upload a build', 'deploy CloudKit to production', 'App Privacy labels', 'distribution signing', or any cryptic Apple upload error (cloud signing, 90057 missing CFBundleShortVersionString, 90474 orientation). macOS and Xcode only.
npx skills add https://github.com/glebis/claude-skills --skill app-release
Drive an iOS/watchOS app from "production path unstarted" to a Distribution-signed
build processing in TestFlight. The hard part is not any single step — it is that
the release path spans three disconnected web portals (Apple Developer, App Store
Connect, CloudKit Dashboard) plus CLI signing arcana, and **each gate hides a silent
failure discoverable only after the previous one passes.** Treat the whole thing as
an airlock checklist: each gate must verifiably seal before the next opens.
Releasing/publishing/shipping an iOS or watchOS app; getting a build to TestFlight;
archiving + uploading; deploying CloudKit schema to Production; filling App Privacy
or export compliance; distribution signing; or debugging an Apple upload rejection.
Track every gate in the project's issue tracker. Do not assume a gate is closed
because a portal shows green — verify the underlying artifact.
from the steps below). Distinguish gates that block TestFlight from gates that
block App Store submission — they are different.
types do not exist in Production until an explicit *Deploy Schema Changes*.
Deploy via the dashboard and verify the record type appears in the Production
environment. One-way action — confirm with the user first.
ITSAppUsesNonExemptEncryption: false into everyshippable target (the app *and* the watch app), in the source of truth (e.g.
XcodeGen project.yml info.properties), so TestFlight never prompts per build.
networking first. If the developer cannot access user data (e.g. data lives only
in the user's private CloudKit), the honest label is Data Not Collected. Set
it in App Store Connect. Leave Publish for submission time.
an EU/German operator also needs an Impressum. Add pages to the product site,
deploy, paste the privacy URL into App Store Connect.
App Store profiles at archive/export — no manual portal work. Confirm the team
id and CODE_SIGN_STYLE: Automatic.
xcodebuild archive the iPhone scheme that *embeds* the Watch app,-allowProvisioningUpdates. (Archive signs with Apple Development; the
Distribution cert is minted at the export step.)
xcodebuild -exportArchive with methodapp-store-connect, automatic signing, and an App Store Connect API key.
The key must be Admin role — a Developer-role key cannot cloud-sign and fails
with "Cloud signing permission error / no iOS Distribution cert found."
processed build, exercise the real feature loop on Production) is a human
on-device step. Do not claim it as done.
**Read references/pipeline.md for the exact commands,
ExportOptions.plist, and verification one-liners for every gate above.**
**When any step fails with a cryptic Apple error, read
references/gotchas.md first** — it catalogs the silent
failures from real releases (corrupted SwiftPM checkout, Developer-role API key,
missing CFBundleShortVersionString, iPad-orientation 90474) with the exact fix.
App Privacy *Publish*. They affect shipped users / the public product page.
.p8 keys in ~/.appstoreconnect/; cleanup any temp copies after use.
trash, never rm.Ask the user to log in once in the automation browser.
to the human.**
branch WIP into a release commit.
through a persistent logged-in browser (e.g. the browser-mate skill) so the user
logs in once and the session persists.
xcodebuild), not GUIclicking — the CLI gives real error output instead of a progress bar. Reserve
computer-use/GUI for steps that genuinely need it.
xcodebuild steps in the background and poll for ARCHIVE SUCCEEDED /EXPORT SUCCEEDED / Upload succeeded markers.
Assess Kubernetes workloads and cluster configuration for AKS Automatic compatibility. Identifies incompatibilities, generates fixes, and guides migration from AKS Standard to AKS Automatic. WHEN: migrate to AKS Automatic, check AKS Automatic readiness, validate manifests for Automatic, assess cluster for Automatic compatibility, fix deployment for Automatic compatibility, identify AKS Automatic migration blockers, is my cluster ready for AKS Automatic.
Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.
Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).
Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent/create), project creation (use project/create).
Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).
This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.
Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
Take glebis/app-release from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.