Skip to main content

release-process

Operate Squad's automated insider, preview, and stable release channels safely

Quellinformationen

Repository
bradygaster/squad
Letzte Quellaktivität
3. Oktober 2026 um 23:04
Erkannte Sprache von SKILL.md
Englisch
Sterne
3.263
Forks
506

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
release-process
description
Operate Squad's automated insider, preview, and stable release channels safely
domain
release-management
confidence
high
source
team-decision
# Squad Release Process Read `.squad/skills/release-process/SKILL.md` for the canonical runbook and recovery commands. The operational model is: | Release | Trigger | Required version | Result | |---------|---------|------------------|--------| | Insider | Manual `squad-insider-publish.yml` dispatch from `dev` | Generated `X.Y.Z-insider.N` | GitHub prerelease, npm `insider`, standalone archives, Homebrew, WinGet | | Preview | Manual `squad-release.yml` dispatch from `dev` | `X.Y.Z-preview.N` | GitHub prerelease, npm `preview`, standalone archives, Homebrew, WinGet | | Stable | Manual `squad-promote.yml` dispatch from `dev` | `X.Y.Z` | Sanitized `main` push, GitHub stable release, npm `latest`, standalone archives, Homebrew, WinGet | There is no staging `preview` branch. Do not create tags or GitHub Releases manually. Human release-trigger boundary: use the canonical runbook for exact commands. Agents may prepare, validate, and present commands, but agents must never execute or dispatch any live publication, promotion, or recovery workflow: `squad-release.yml`, `squad-agents-ai-release.yml`, `squad-insider-publish.yml`, `squad-promote.yml` with `dry_run=false`, `squad-version-promote.yml`, `squad-npm-publish.yml`, or `squad-standalone-release.yml`. Treat `squad-promote.yml --ref dev -f dry_run=true` as human-only too: it has `actions: write` and `contents: write`, checks out `dev` with the workflow token, installs dependencies, and runs build and test steps. Do not describe any GitHub Actions release workflow as agent-safe once it has write-capable credentials or a dispatch path. Only a human executes those triggers; human approval alone does not authorize an agent to fire them. ## Preconditions Before either channel: ```bash git fetch origin dev main git merge-base origin/dev origin/main grep '"version"' package.json packages/squad-sdk/package.json packages/squad-cli/package.json node -p "require('./packages/squad-cli/package.json').dependencies['@bradygaster/squad-sdk']" grep -F "## [$VERSION]" CHANGELOG.md SKIP_BUILD_BUMP=1 npm run build npx vitest run ``` The validation build must not mutate package versions or the lockfile; check `git diff -- package.json packages/squad-sdk/package.json packages/squad-cli/package.json package-lock.json` afterward and stop if any version-only change appears. The ancestry command must return a commit, all three versions must match, the CLI SDK dependency floor must be `>=VERSION`, and the changelog must contain the exact release version. Required Actions secrets: - `NPM_TOKEN`: automation-capable npm publish token. - `HOMEBREW_TAP_TOKEN`: classic PAT with `public_repo` from a collaborator with write access to `bradygaster/homebrew-squad`. - `WINGET_CREATE_GITHUB_TOKEN`: classic PAT with `public_repo` for `tamirdresher/winget-pkgs`. ## Preview After a PR sets an immutable prerelease version on `dev` and CI passes: Human-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly. ```bash VERSION=0.14.0-preview.1 gh workflow run squad-release.yml --ref dev -f confirm_tag="v$VERSION" gh run watch ``` The release workflow rejects stable versions on manual dispatch, creates a GitHub prerelease, publishes npm `preview`, and uploads standalone bundles. It also updates the `squad-preview` Homebrew cask and `bradygaster.Squad.Preview` WinGet package. Activation installs the latest stable GitHub Release; insider-tag promotion also remains stable-only. ## Insider Human-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly. ```bash gh workflow run squad-insider-publish.yml --ref dev -f dry_run=false gh run watch ``` The workflow computes the next `X.Y.Z-insider.N` version, publishes npm `insider`, creates the GitHub prerelease and standalone archives, updates `squad-insider` in Homebrew, and opens or reuses the `bradygaster.Squad.Insider` WinGet PR. ## Stable After a PR replaces the preview version with `X.Y.Z` on `dev` and CI passes: Human-only validation dispatch: this workflow still checks out `dev` with repo/workflow credentials and runs build and test logic. Agents must stop and hand off; only a human should fire it. ```bash gh workflow run squad-promote.yml --ref dev -f dry_run=true gh run watch ``` Human-only reference command: this live publish workflow must be run by a human. Agents must stop, hand off, and not execute it directly. ```bash gh workflow run squad-promote.yml --ref dev -f dry_run=false gh run watch ``` Promotion merges `dev` directly into `main`, strips internal team state, validates the release tree, builds it, runs tests, and pushes `main`. It then explicitly dispatches `squad-release.yml` because `GITHUB_TOKEN` pushes do not start another workflow. The release creates the tag and stable GitHub Release and directly invokes npm and standalone publication. ## Verify ```bash npm view @bradygaster/squad-sdk dist-tags.preview npm view @bradygaster/squad-cli dist-tags.preview npm view @bradygaster/squad-sdk dist-tags.latest npm view @bradygaster/squad-cli dist-tags.latest gh release view "v$VERSION" ``` Use the tag for the channel being released. Verify the GitHub Release contains all six OS/architecture archives and `SHA256SUMS.txt`. Every release must update its channel-specific Homebrew cask and create or reuse a WinGet PR. ## Recovery Do not recreate or overwrite the tag. Rerun a failed child job, or dispatch the reusable npm/standalone workflow with `source_ref=v$VERSION`. Use `--ref dev` for previews and `--ref main` for stable releases. The canonical runbook contains the exact commands. After a stable release, prepare the next `X.Y.Z-preview.1` version in a normal PR to `dev`.
Auf GitHub ansehen