← ClaudeAtlas

releaselisted

Cut a Token Tab release end-to-end — bump versions, tag, drive the draft release, build+notarize locally, publish npm, bump the Homebrew cask. Use when asked to "cut a release", "release vX.Y.Z", "ship a new version", or "publish the app".
YiftachCohen/token-tab · ★ 2 · AI & Automation · score 66
Install: claude install-skill YiftachCohen/token-tab
# Cutting a Token Tab release The full process is `RELEASING.md`; this skill is the executable version with the gotchas baked in. Two artifacts ship per tag: the notarized app zip (built LOCALLY — the signing key never enters CI) and the npm tarball `@ycstudios/token-tab`. ## 0. Preflight - Working tree clean, `main` up to date, CI green on `main`. - Pick the version (SemVer; 0.x minor bumps may change behavior). - Run the local gate before touching versions — a release should never be where you discover red: ```sh node --test swift test --package-path app bash .github/scripts/trust-audit.sh node .github/scripts/rates-parity.mjs bash .github/scripts/design-lint.sh ``` ## 1. Bump the version — three places, or the tag fails CI 1. `package.json` → `"version"`. 2. `app/Bundle/Info.plist` → `CFBundleShortVersionString` (leave `CFBundleVersion` alone — it's a build number, not the release version). 3. `CHANGELOG.md` → retitle `## [Unreleased]` to `## [x.y.z] — YYYY-MM-DD`, and start a fresh empty `## [Unreleased]` above it. **Call out any trust-surface change explicitly** (entitlements, parsed fields, rate table, network posture) — that honesty is the product. Land this on `main` through the normal PR flow. ## 2. Tag → draft release ```sh git tag vX.Y.Z && git push origin vX.Y.Z ``` Watch the `Release` workflow (`gh run watch`): it re-checks version stamps, re-runs the trust audit and both engines' tests, proves the app assembles, and opens a **dr