Kanvibe Release Deploy
rookedsysc/kanvibe
A skill your agent uses whenever releasing or deploying KanVibe desktop from a clean, up-to-date dev checkout: ask only for the target version and release-note approval, then let the AI update…
Cut a new SlackCLI release end to end — survey commits since the last tag, recommend a SemVer bump, open the release issue, prepare the version bump and CHANGELOG promotion on a branch, open the…
$ npx skills add shaharia-lab/slackcli --skill release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install shaharia-lab/slackcli release --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/shaharia-lab/slackcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release .claude/skills/release && 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" agent skill from https://github.com/shaharia-lab/slackcli/tree/main/.claude/skills/release into .claude/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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/shaharia-lab/slackcli/tree/main/.claude/skills/releaseType 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 shaharia-lab/slackcli --skill release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install shaharia-lab/slackcli release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shaharia-lab/slackcli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/release .agents/skills/release && 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" agent skill from https://github.com/shaharia-lab/slackcli/tree/main/.claude/skills/release into .agents/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 shaharia-lab/slackcli --skill release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install shaharia-lab/slackcli release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shaharia-lab/slackcli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/release .cursor/skills/release && 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" agent skill from https://github.com/shaharia-lab/slackcli/tree/main/.claude/skills/release into .cursor/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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/shaharia-lab/slackcli.git --path .claude/skills/release--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 shaharia-lab/slackcli --skill release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install shaharia-lab/slackcli release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shaharia-lab/slackcli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/release .gemini/skills/release && 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" agent skill from https://github.com/shaharia-lab/slackcli/tree/main/.claude/skills/release into .gemini/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 shaharia-lab/slackcli releaseInstalls 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 shaharia-lab/slackcli --skill release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/shaharia-lab/slackcli.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/release .github/skills/release && 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" agent skill from https://github.com/shaharia-lab/slackcli/tree/main/.claude/skills/release into .github/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 shaharia-lab/slackcli --skill release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install shaharia-lab/slackcli release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shaharia-lab/slackcli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/release .opencode/skills/release && 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" agent skill from https://github.com/shaharia-lab/slackcli/tree/main/.claude/skills/release into .opencode/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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.
releaseCut a new SlackCLI release end to end — survey commits since the last tag, recommend a SemVer bump, open the release issue, prepare the version bump and CHANGELOG promotion on a branch, open the…
Release is an agent skill from shaharia-lab/slackcli. Cut a new SlackCLI release end to end — survey commits since the last tag, recommend a SemVer bump, open the release issue, prepare the version bump and CHANGELOG promotion on a branch, open the linked PR, and after merge push the annotated tag that publishes binaries and updates the Homebrew tap. Use when asked to create/cut/prepare a release, bump the version, or ship what is on main.
Its SKILL.md is about 1.9k 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 Development, covering Changelog and release notes. It works with Homebrew, Slack and TypeScript. The repository describes itself as: Slack CLI for humans and AI agents. Read, send, search and reply across one or many Slack workspaces from the terminal. No Slack app needed. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0cf656d. 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:
gitghbunFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release loads about 1.9k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 889 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 shaharia-lab/slackcli at commit 0cf656d, republished under its MIT licence (© shaharia-lab). 889 words, ~1,866 tokens.
.claude/skills/release/SKILL.md (or your agent's skills folder).A release is two separate things, in this order:
main that bumps package.json and promotes the CHANGELOG. Reversible.release.yml builds and publishes public binaries, and force-updates the Homebrew tap at shaharia-lab/homebrew-tap.Never do step 2 without explicit human confirmation. See Gate before tagging.
These are the ways a release goes wrong. Check them, don't rediscover them.
release.yml fails when the tag disagrees with package.json (#82). The bump must be merged into main before the tag is pushed. Fixing it after the fact means bumping main and then deleting and re-pushing the tag.main requires signed commits, with no bypass actors — an unsigned commit makes the PR unmergeable for anyone, including admins. Verify the release commit carries a signature.CLAUDE.md applies to the release PR too: it needs a linked GitHub issue carrying ready-for-pr before the PR is opened. pr-linked-issue.yml enforces the link as a required check.main requires one approving review, and an agent cannot approve its own PR. So gh pr merge reports BLOCKED / REVIEW_REQUIRED even when every check is green. Unblocking it is the maintainer's decision, taken one of two ways — a review, or an explicit instruction to merge with --admin. Never pick --admin on your own initiative; surface the block and let the maintainer choose. dismiss_stale_reviews_on_push is on, so any push after an approval discards it — get the branch final before asking for review.main. Always work on a branch.CHANGELOG entry. Reconcile commits against [Unreleased] yourself — the mrkdwn fix in #96 landed with no entry and had to be backfilled at v0.9.0.bun may not be on PATH in a non-interactive shell. If bun is not found, use export PATH="$HOME/.bun/bin:$PATH".git describe --tags --abbrev=0 # last released tag
git log <last-tag>..HEAD --pretty=format:'%h %ad %s' --date=short
git diff <last-tag>..HEAD --statSeparate user-facing commits (feat, fix, perf, anything changing CLI behaviour) from non-shipping ones (ci, chore, docs, dependency bumps). Only the first group justifies a release or drives the version.
Read the bodies of the user-facing commits — they carry the WHAT/WHY the changelog needs:
git show <sha> --pretty=format:'%B' --statFollow SemVer against the pre-1.0 convention this repo already uses:
0.8.0 → 0.9.0)0.8.0 → 0.8.1)State the recommendation and the reasoning before acting on it. A behaviour change that only alters already-broken output is still a fix, not a breaking change.
Compare the user-facing commits from step 1 against the [Unreleased] section. Anything shipped but undocumented gets an entry written now, in the voice of the surrounding file: what changed, and why the user cares. Note deliberate behaviour changes explicitly.
Required before the PR. Mirror the WHAT / WHY / HOW structure the repo uses (see #101, #111):
package.json from A to B.main that are not yet in a published build, each with its issue/PR number; the SemVer reasoning; the release.yml tag/version constraint (#82).ready-for-pr issues deliberately deferred, so the omission reads as a decision.gh issue create --title "Release vX.Y.Z" --body-file <file> --label ready-for-prgit checkout -b chore/release-vX.Y.Zpackage.json: bump version.CHANGELOG.md: insert a ## [X.Y.Z] - YYYY-MM-DD heading below ## [Unreleased], leaving [Unreleased] in place and empty, so the existing entries fall under the new version.Verify before committing:
bun run type-check
bun testBoth must be clean. Commit with Closes #<issue> in the body, then confirm the signature is present:
git cat-file -p HEAD | grep -q gpgsig && echo signedgit log --show-signature may report the signature as unverified purely because gpg.ssh.allowedSignersFile is unset locally; that is a local verification gap, not an unsigned commit. GitHub is the authority — check-signatures on the PR reports the truth.
gh pr create --base main --head chore/release-vX.Y.Z --title "chore: release vX.Y.Z" --body-file <file>The body should carry: summary and the release.yml constraint, Included since <last-tag> listing the user-facing changes, Changes in this PR, the check results, the post-merge release steps, and Closes #<issue>.
Then wait for checks — gh pr checks <pr>. Check linked open issue, check-signatures, test, unit-tests and integration-tests must pass.
Stop here and ask the human to confirm the merge and tag. Everything up to this point is reversible; the tag is not — it publishes public binaries and rewrites the Homebrew formula.
The maintainer has to unblock the PR regardless — the branch ruleset requires a review the PR's own author cannot supply — so this gate costs nothing extra.
Once the maintainer has approved, or has explicitly asked for --admin:
gh pr merge <pr> --squash # add --admin only when explicitly instructed
git checkout main && git pull
git tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin vX.Y.ZThe tag must point at the merged bump commit. Tagging a commit where package.json still holds the old version fails verify-version immediately.
gh run list --workflow=release.yml --limit 3
gh release view vX.Y.ZConfirm all five binaries plus checksums.txt are attached (slackcli-linux, slackcli-linux-arm64, slackcli-macos, slackcli-macos-arm64, slackcli-windows.exe), and that update-homebrew succeeded. Then check the last job, announce-discord: it posts the release to the Shaharia Lab Discord and is non-blocking, so the run is green even when it failed — read the job's own result (gh run view <run-id> --json jobs --jq '.jobs[] | "\(.name): \(.conclusion) (\(.databaseId))"'). If it failed, re-run that job alone (gh run rerun --job <databaseId>, the id that query prints) or tell the maintainer the announcement is missing; it is skipped by design for a pre-release tag. Report the release URL.
© shaharia-lab, 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 .claude/skills/release of shaharia-lab/slackcli.
Open the folder on GitHubat commit 0cf656d
Release 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 this skillshaharia-lab/slackcli | 231 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Kanvibe Release Deployrookedsysc/kanvibe | 143 | — | ~12k | Automated safety check: Notes | AGPL-3.0 | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Generate Release Notesteambit/bit | 18k | — | ~2.2k | Automated safety check: Pass | Custom licence | |
| Release Roundethereumjs/ethereumjs-monorepo | 2.8k | — | ~2k | Automated safety check: Pass | None | |
| Releaseeugene1g/agent-safehouse | 2.1k | — | ~3.5k | Automated safety check: Pass | Apache-2.0 |
rookedsysc/kanvibe
A skill your agent uses whenever releasing or deploying KanVibe desktop from a clean, up-to-date dev checkout: ask only for the target version and release-note approval, then let the AI update…
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
teambit/bit
Generate comprehensive release notes for Bit from git commits and pull requests.
ethereumjs/ethereumjs-monorepo
Runs a coordinated EthereumJS npm release round in six human-gated phases — intent and readiness, CHANGELOG, version bump, publish (human executes), post-publish verification, and announcements.
eugene1g/agent-safehouse
Run the local Agent Safehouse release flow: inspect commits since the last published release, propose the next SemVer version and changelog, present a dry-run for confirmation, then update…
Kiln-AI/Kiln
Post a "what's changed since the last release" recap to the release Slack channel for final QA.
shaharia-lab/slackcli
Read, send, search, and manage Slack workspaces with the slackcli binary.
Works with
Categories
Cut a new SlackCLI release end to end — survey commits since the last tag, recommend a SemVer bump, open the release issue, prepare the version bump and CHANGELOG promotion on a branch, open the…. Release is an agent skill from shaharia-lab/slackcli. Cut a new SlackCLI release end to end — survey commits since the last tag, recommend a SemVer bump, open the release issue, prepare the version bump and CHANGELOG promotion on a branch, open the linked PR, and after merge push the annotated tag that publishes binaries and updates the Homebrew tap.
Release fits situations like: asked to create/cut/prepare a release; bump the version; ship what is on main.
Run `npx skills add shaharia-lab/slackcli --skill release -a claude-code`. Or copy the skill folder (.claude/skills/release in shaharia-lab/slackcli) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add shaharia-lab/slackcli --skill release -a codex`. Or copy the skill folder (.claude/skills/release in shaharia-lab/slackcli) into .agents/skills/release 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 shaharia-lab/slackcli --skill release -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, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.
Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, gh and bun).
SKILL.md contains no URLs. Its commands use git and gh, 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 is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k 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: Kanvibe Release Deploy (rookedsysc/kanvibe, 143 stars), Mole CLI Release Flow (tw93/Mole, 70k stars), Generate Release Notes (teambit/bit, 18k stars) and Release Round (ethereumjs/ethereumjs-monorepo, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
shaharia-lab (a GitHub organization) maintains it in shaharia-lab/slackcli, which has 231 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 9, 2026.
Source: shaharia-lab/slackcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.