ClickUp CLI Release Process
krodak/clickup-cli
Walks through releasing a new version of clickup-cli: pre-release checks, version bump, tagging, CI watch, release notes and the Homebrew update.
Prepare, publish, recover, and verify Squad insider, preview, and stable releases
$ npx skills add bradygaster/squad --skill release-process -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bradygaster/squad release-process --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/bradygaster/squad.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.squad-templates/skills/release-process .claude/skills/release-process && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "release-process" agent skill from https://github.com/bradygaster/squad/tree/dev/.squad-templates/skills/release-process into .claude/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/bradygaster/squad/tree/dev/.squad-templates/skills/release-processType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add bradygaster/squad --skill release-process -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bradygaster/squad release-process --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bradygaster/squad.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.squad-templates/skills/release-process .agents/skills/release-process && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-process" agent skill from https://github.com/bradygaster/squad/tree/dev/.squad-templates/skills/release-process into .agents/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bradygaster/squad --skill release-process -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bradygaster/squad release-process --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bradygaster/squad.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.squad-templates/skills/release-process .cursor/skills/release-process && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release-process" agent skill from https://github.com/bradygaster/squad/tree/dev/.squad-templates/skills/release-process into .cursor/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/bradygaster/squad.git --path .squad-templates/skills/release-process--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add bradygaster/squad --skill release-process -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bradygaster/squad release-process --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bradygaster/squad.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.squad-templates/skills/release-process .gemini/skills/release-process && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release-process" agent skill from https://github.com/bradygaster/squad/tree/dev/.squad-templates/skills/release-process into .gemini/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install bradygaster/squad release-processInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add bradygaster/squad --skill release-process -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bradygaster/squad.git skills-src && mkdir -p .github/skills && cp -r skills-src/.squad-templates/skills/release-process .github/skills/release-process && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release-process" agent skill from https://github.com/bradygaster/squad/tree/dev/.squad-templates/skills/release-process into .github/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bradygaster/squad --skill release-process -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bradygaster/squad release-process --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bradygaster/squad.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.squad-templates/skills/release-process .opencode/skills/release-process && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release-process" agent skill from https://github.com/bradygaster/squad/tree/dev/.squad-templates/skills/release-process into .opencode/skills/release-process/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-process", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release-processPrepare, publish, recover, and verify Squad insider, preview, and stable releases
Release Process is an agent skill from bradygaster/squad. Prepare, publish, recover, and verify Squad insider, preview, and stable releases
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Deployment. It works with GitHub, Homebrew and npm. The repository describes itself as: Squad: AI agent teams for any project. The licence is MIT.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d2364df. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghnpmgitnodenpxbrewwingetFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, npm, git and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
NPM_TOKENHOMEBREW_TAP_TOKENWINGET_CREATE_GITHUB_TOKENGITHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release Process loads about 2.4k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 973 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from bradygaster/squad at commit d2364df, republished under its MIT licence (© bradygaster). 973 words, ~2,401 tokens.
.claude/skills/release-process/SKILL.md (or your agent's skills folder).This is the canonical Squad release runbook. Squad has three release channels and two long-lived branches:
| Source | Version | GitHub | npm | Standalone | Homebrew/WinGet |
|---|---|---|---|---|---|
Insider dispatch from dev | Generated X.Y.Z-insider.N | Prerelease | insider | Yes | Yes |
Release dispatch from dev | X.Y.Z-preview.N | Prerelease | preview | Yes | Yes |
Push to main by promotion workflow | X.Y.Z | Stable/latest | latest | Yes | Yes |
The repository does not use a staging preview branch. Preview is a release
channel, not a branch.
squad-release.yml
creates both.0.14.0-preview.1 and stable
0.14.0 are separate immutable releases.>=VERSION; prerelease workspaces do
not match an older stable range.## [VERSION] entry to CHANGELOG.md.dev and wait for CI before dispatching.Configure these GitHub Actions secrets:
NPM_TOKEN: an automation-capable npm publish token that does not require an
interactive OTP.HOMEBREW_TAP_TOKEN: a classic GitHub PAT with public_repo, owned by an
account that has write access to bradygaster/homebrew-squad.WINGET_CREATE_GITHUB_TOKEN: a classic GitHub PAT with public_repo, owned
by the account that maintains tamirdresher/winget-pkgs.Agents may prepare versions, run validation, and recommend exact commands, but
agents must never execute or dispatch live publication, promotion, or recovery
workflows. Only a human executes the real trigger for these live workflows:
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: the
workflow still has actions: write and contents: write, checks out dev
with the workflow token, installs dependencies, and runs the release build and
tests. Do not describe any GitHub Actions release workflow as agent-safe once
it has write-capable credentials or a dispatch path. Stop with verified
commands and evidence for a human to run; human approval alone does not
authorize an agent to fire the trigger.
Verify dev and main share ancestry before changing versions:
git fetch origin dev main
git merge-base origin/dev origin/mainIf that command returns no commit, stop and repair ancestry in a separate PR.
Choose a unique SemVer version and update all package manifests:
VERSION=0.14.0-preview.1
npm version "$VERSION" --workspaces --include-workspace-root --no-git-tag-version
npm pkg set "dependencies.@bradygaster/squad-sdk=>=$VERSION" \
--workspace @bradygaster/squad-cli
npm install --package-lock-onlyThis updates the root package, both workspaces, and the lockfile. Confirm:
node -p "require('semver').valid('$VERSION')"
grep '"version"' package.json packages/squad-sdk/package.json packages/squad-cli/package.json
grep -F "## [$VERSION]" CHANGELOG.md
SKIP_BUILD_BUMP=1 npm run build
npx vitest runThe 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.
Release preparation lands through a normal PR to dev. Do not push directly to
main.
Preview versions must contain a prerelease suffix, for example
0.14.0-preview.1.
After the release-preparation PR is merged and dev CI is green:
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 watchThe workflow:
dev.X.Y.Z version.v$VERSION and a GitHub prerelease.--tag preview.SHA256SUMS.txt.squad-preview Homebrew cask and
bradygaster.Squad.Preview WinGet package.Install the resulting preview:
npm install -g @bradygaster/squad-cli@previewThe same preview is available through brew install --cask squad-preview and
winget install --id bradygaster.Squad.Preview --exact.
Start an on-demand snapshot from dev:
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 watchThe workflow computes the next immutable X.Y.Z-insider.N version, publishes
npm insider, creates a GitHub prerelease, uploads standalone bundles, updates
the squad-insider Homebrew cask, and opens or reuses the
bradygaster.Squad.Insider WinGet PR.
Stable versions must be exactly X.Y.Z. Prepare and merge the stable version
to dev, then human-only validate the sanitized merge without changing
main:
gh workflow run squad-promote.yml --ref dev -f dry_run=true
gh run watchDo not treat this as an agent-safe command. It still checks out dev with
workflow credentials and runs repository build/test logic. Only a human should
fire it. Start the real promotion:
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 watchsquad-promote.yml:
origin/dev directly into main..ai-team/, .squad/, .ai-team-templates/, team-docs/, and
docs/proposals/ from the release tree.main and explicitly dispatches squad-release.yml.The explicit dispatch is required because GitHub suppresses push-triggered
workflow runs for commits authenticated with GITHUB_TOKEN. The release
workflow creates the stable tag and GitHub Release, publishes npm latest,
uploads standalone archives, updates Homebrew, and opens or reuses the WinGet
PR.
Use insider, preview, or latest for DIST_TAG:
VERSION=0.14.0
DIST_TAG=latest
npm view @bradygaster/squad-sdk "dist-tags.$DIST_TAG"
npm view @bradygaster/squad-cli "dist-tags.$DIST_TAG"
gh release view "v$VERSION"The npm values must equal VERSION. The GitHub Release must contain:
squad-linux-x64.tar.gz
squad-linux-arm64.tar.gz
squad-darwin-x64.tar.gz
squad-darwin-arm64.tar.gz
squad-win32-x64.zip
squad-win32-arm64.zip
SHA256SUMS.txtFor every release, also verify the channel's Homebrew cask (squad,
squad-preview, or squad-insider) and WinGet identifier
(bradygaster.Squad, .Preview, or .Insider) reference the new version.
The top-level release workflow intentionally does not republish after its tag already exists. Rerun the failed child job, or dispatch the reusable workflow from the branch that owns that release channel while building from the immutable tag.
Stable recovery:
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
gh workflow run squad-npm-publish.yml --ref main \
-f version="$VERSION" -f source_ref="v$VERSION"
gh workflow run squad-standalone-release.yml --ref main \
-f upload=true -f release_tag="v$VERSION" -f source_ref="v$VERSION"Preview recovery:
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-npm-publish.yml --ref dev \
-f version="$VERSION" -f source_ref="v$VERSION"
gh workflow run squad-standalone-release.yml --ref dev \
-f upload=true -f release_tag="v$VERSION" -f source_ref="v$VERSION"Publication is idempotent. Existing package versions and release assets are
verified rather than overwritten. npm publication fails instead of silently
moving latest or preview away from an existing version.
Prepare the next development version in a normal PR to dev:
NEXT_VERSION=0.15.0-preview.1
npm version "$NEXT_VERSION" --workspaces --include-workspace-root --no-git-tag-version
npm pkg set "dependencies.@bradygaster/squad-sdk=>=$NEXT_VERSION" \
--workspace @bradygaster/squad-cli
npm install --package-lock-onlyDo not merge main back into dev; the promotion commit already has dev as
its parent, while the stripped internal state intentionally remains only on
dev.
© bradygaster, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .squad-templates/skills/release-process of bradygaster/squad.
Open the folder on GitHubat commit d2364df
Release Process next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release Process this skillbradygaster/squad | 3.3k | — | ~2.4k | Automated safety check: Pass | MIT | |
| ClickUp CLI Release Processkrodak/clickup-cli | 120 | — | ~906 | Automated safety check: Warn | MIT | |
| Reflexo ReleaseMyriad-Dreamin/typst.ts | 1.2k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Release Flowromankurnovskii/BrewMate | 301 | — | ~976 | Automated safety check: Pass | MIT | |
| Release Allpaperboytm/spool | 592 | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| Mecatl Release Cuttingstacklok/mecatl | 218 | — | ~4k | Automated safety check: Pass | Apache-2.0 |
krodak/clickup-cli
Walks through releasing a new version of clickup-cli: pre-release checks, version bump, tagging, CI watch, release notes and the Homebrew update.
Myriad-Dreamin/typst.ts
Guide Reflexo/typst.ts release preparation and operator handoffs.
romankurnovskii/BrewMate
Automate the full application release flow for BrewMate, including committing local changes, bumping version, waiting for GitHub Actions release build, and pushing the in-repo cask update…
paperboytm/spool
Publish the complete Spool CLI release train: synchronized versions, npm packages, the GitHub release, and the matching production web deployment.
stacklok/mecatl
Cuts a tagged mecatl release by dispatching the release-PR workflow, merging the bot's pull request and verifying the tag, images, Helm chart, signed archives and Homebrew formula.
paperclipai/paperclip
Coordinate a full Paperclip release across engineering verification, npm, GitHub, smoke testing, and announcement follow-up.
bradygaster/squad
Review and validate claims using counter-hypothesis testing.
bradygaster/squad
How to review PRs for architectural quality — module boundaries, dependency direction, export surface, pattern consistency
bradygaster/squad
Preserve content when moving entries between tracked Squad state files
bradygaster/squad
Defensive CI/CD patterns: semver validation, token checks, retry logic, and draft detection
bradygaster/squad
Checklist and patterns for wiring new CLI commands into cli-entry.ts
bradygaster/squad
Enables squad agents on different machines to share work via git-based task queuing
Categories
Prepare, publish, recover, and verify Squad insider, preview, and stable releases. Release Process is an agent skill from bradygaster/squad.
Release Process fits situations like: tasks that involve Deployment.
Run `npx skills add bradygaster/squad --skill release-process -a claude-code`. Or copy the skill folder (.squad-templates/skills/release-process in bradygaster/squad) into .claude/skills/release-process in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bradygaster/squad --skill release-process -a codex`. Or copy the skill folder (.squad-templates/skills/release-process in bradygaster/squad) into .agents/skills/release-process in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bradygaster/squad --skill release-process -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-process, .gemini/skills/release-process, .github/skills/release-process and .opencode/skills/release-process in your project.
Going by SKILL.md and its folder, Release Process needs the command-line tools its instructions call (gh, npm, git, node, npx and brew) and credentials named NPM_TOKEN, HOMEBREW_TAP_TOKEN, WINGET_CREATE_GITHUB_TOKEN and GITHUB_TOKEN. Our summary lists: Node.js; A credential in NPM_TOKEN; A credential in HOMEBREW_TAP_TOKEN.
SKILL.md contains no URLs. Its commands use gh, npm, git and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Release Process is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Release Process: ClickUp CLI Release Process (krodak/clickup-cli, 120 stars), Reflexo Release (Myriad-Dreamin/typst.ts, 1.2k stars), Release Flow (romankurnovskii/BrewMate, 301 stars) and Release All (paperboytm/spool, 592 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bradygaster (a GitHub user) maintains it in bradygaster/squad, which has 3,256 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 6, 2026.
Source: bradygaster/squad on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.