agentleFS
GitHubKnown publishergithub/squad/.copilot/skills/release-process/SKILL.md

release-process

Skill3.4k starsChanged 2 months agoMITView on GitHub

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

  • Reads credentials

14 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 0 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 14 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read .squad/skills/release-process/SKILL.md for the canonical runbook and recovery commands.

    line 11
  2. Very specific:

    After a PR sets an immutable prerelease version on dev and CI passes:

    line 57
  3. Very specific:

    After a PR replaces the preview version with X.Y.Z on dev and CI passes:

    line 89
  4. Very specific:

    When a validated sanitized promotion branch already exists in the upstream repository, a human may instead have github-actions[bot] open …

    line 105
  5. Very specific:

    Use the tag for the channel being released.

    line 138
  6. Very specific:

    Do not recreate or overwrite the tag.

    line 144
  7. Very specific:

    After a stable release, prepare the next X.Y.Z-preview.1 version in a normal PR to dev.

    line 149

“Common” is measured: kept by at least 6 in 10 of the 14 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Squad Release Process

Read .squad/skills/release-process/SKILL.md for the canonical runbook and recovery commands. The operational model is:

ReleaseTriggerRequired versionResult
InsiderManual squad-insider-publish.yml dispatch from devGenerated X.Y.Z-insider.NGitHub prerelease, npm insider, standalone archives, Homebrew, WinGet
PreviewManual squad-release.yml dispatch from devX.Y.Z-preview.NGitHub prerelease, npm preview, standalone archives, Homebrew, WinGet
StableManual squad-promote.yml dispatch from devX.Y.ZSanitized promotion PR or legacy main push, then 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:

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.

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.

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.

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.

gh workflow run squad-promote.yml --ref dev -f dry_run=false
gh run watch

When a validated sanitized promotion branch already exists in the upstream repository, a human may instead have github-actions[bot] open the protected main PR:

gh workflow run squad-promote.yml --ref dev \
  -f dry_run=false \
  -f promotion_branch=chore/promote-X.Y.Z

The workflow revalidates the branch, builds it, runs the release-gate tests, and opens the PR with GITHUB_TOKEN. GitHub may hold the resulting pull_request workflow runs for maintainer approval; a maintainer with write access must approve those runs, approve the PR, and merge it. The human merge pushes main, which starts squad-release.yml normally.

Without promotion_branch, the legacy path 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

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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.