jazzyalex / deploy-agent-sessions
Release/deploy workflow for Agent Sessions (Sparkle appcast + GitHub release). Use when asked to "deploy", "ship", "publish", or "prepare a production release" for this repo. Follows the repo’s canonical deploy skill at `.claude/skills/deploy.md` and the runbook at `docs/deployment.md`.
0
SKILL.md3.2 KB
Agent Sessions Deploy
Canonical sources
When working in the Agent Sessions repo, treat these as the single source of truth:
.claude/skills/deploy.mddocs/deployment.md- Unified tool:
tools/release/deploy(start withtools/release/deploy --help)
If this skill conflicts with any of the above, follow the repo docs.
Workspace policy (mandatory)
- Always deploy from the user’s current local repository checkout.
- Do not create temporary clones or alternate worktrees to work around a dirty tree.
- If the local worktree is dirty, stop and advise the user to clean it first (commit, stash, or discard), then continue in the same local repo.
Default workflow (command sequence)
Use the unified deploy tool, following .claude/skills/deploy.md:
tools/release/deploy changelog [FROM_TAG]
tools/release/deploy qa --version <VERSION>
tools/release/deploy bump [patch|minor|major]
git push origin main
tools/release/deploy qa --version <VERSION>
tools/release/deploy release <VERSION> [--dry-run]
tools/release/deploy verify <VERSION>Before running release
- Confirm target version string (
X.Yfor major/minor releases,X.Y.Zonly for patch releases) and whether this is a patch/minor/major bump. Never shipX.Y.0. - Ensure user-visible notes are updated (per
.claude/skills/deploy.md):docs/CHANGELOG.md, monthly summary indocs/summaries/YYYY-MM.md, and any required public copy updates. - Run
tools/release/deploy qa --version <VERSION>on the exact release commit. QA requires a cleanmaincheckout synced withorigin/main;tools/release/deploy releaseandtools/release/deploy resumerequire its fresh QA stamp unless--skip-qa/SKIP_QA=1is explicit. - The QA gate is CI-parity: it verifies the pinned Xcode toolchain, runs the docs guards and localization catalog validation, runs a no-signing Debug build in
.deriveddata-localization, and runs localization extraction-drift validation before writing the QA stamp. A green XCTest run alone is not release-ready. - If user-facing SwiftUI copy changed, update
AgentSessions/Resources/Localizable.xcstringsin the same change. Keep intentional raw paths, commands, and identifiers asText(verbatim:); add validator verbatim exceptions only after review. tools/release/deploy bumprequires the target-version QA stamp before changing release metadata; after pushing the bump commit, rerun exact-commit QA before release. Never use the manual fallback to bypass a failed QA/extraction gate.- Local QA must match
tools/release/ci-xcode-version.txt; CI selects that toolchain on the pinnedmacos-26image. - Expect Release builds to spend several minutes in
swift-frontendduring whole-module optimization; the build helper now prints heartbeats. If interrupted after the notarized DMG is built, prefertools/release/deploy resume, which validates the saved gitHEADbefore continuing.