swift-release-flowlisted
Install: claude install-skill chsistrying/swift-ship-skills
# Swift Release Flow
## Overview
Ship a macOS/Swift app release from a clean `main` to a published GitHub
release, in order. Do not skip steps. Stop and report if any preflight check
fails — never force through a red signal.
## Approval boundaries
This skill changes things outside the working tree: it pushes commits and
tags, publishes a GitHub release, and (only when recovering from a bad cut)
deletes a release or tag. Those operations sit behind three gates. At each
gate, stop, print the exact commands about to run with their real arguments,
and wait for an explicit "yes" from the user in the conversation. The original
"cut a release" request, a green preflight, or approval at an earlier gate is
never approval for a later gate.
- **Gate 1 — publish commits.** Immediately before the first `git push`
(Step 3).
- **Gate 2 — tag and release.** Immediately before pushing the tag and
running `gh release create` (Step 5), once the artifact path, size, and
prerelease flag are known and can be shown.
- **Gate 3 — delete or re-cut.** Immediately before any `gh release delete`,
`git tag -d`, or `git push origin :refs/tags/...` (Edge cases). Gate 3 is
always a separate confirmation from Gates 1 and 2, even in the same session.
If the user declines at any gate, stop there and report what was and was not
done. Nothing in this skill force-pushes, rewrites history, edits branch
protection, or works around a rejected push.
### Protected branches and PR-based releases
Befor