.claude/skills/cli-toolbox_publish/SKILL.md
Bump, tag, and release cli-toolbox binaries. Use when the user says "publish", "release", "bump version", or invokes /cli-toolbox_publish.
npx skillsauth add productiveio/cli-toolbox cli-toolbox_publishInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Bump versions, push tags, trigger CI releases, and optionally install locally — handling all the friction points of the cli-toolbox release process.
This is for the productiveio/cli-toolbox workspace. It has 5 independent binaries: tb-prod, tb-sem, tb-bug, tb-lf, tb-devctl. Each is versioned and released independently using git tags in <crate>-v<version> format.
Critical: GitHub Actions does NOT trigger individual workflows when multiple tags are pushed in a single git push --tags. Tags MUST be pushed one at a time with a small delay between them.
Parse $ARGUMENTS to determine:
tb-prod), multiple names, or --all for all 50.2.0). If omitted, ask the user.--install: after releases complete, install binaries locally via scripts/install.sh--with-skill: when installing, also install Claude Code skills (passed through to install.sh)Valid tool names: tb-prod, tb-sem, tb-bug, tb-lf, tb-devctl
If --all is used and no version is specified, read each crate's current version from crates/<tool>/Cargo.toml and suggest a patch bump for each. Ask the user to confirm.
Before any version bumps, run quality gates:
cargo fmt --checkcargo clippy --workspace -- -D warningscargo test --workspaceIf any fail, stop and fix before proceeding.
For each tool to publish, run scripts/bump.sh <tool> <version>.
This will:
crates/<tool>/Cargo.tomlcargo check -p <tool><tool>: bump version to <version>Push all bump commits at once:
git push
For each tool, create the tag locally:
git tag <tool>-v<version>
Tags must only be created on main after bump commits have been pushed (or merged via PR).
This is the critical step. Push each tag individually, not with git push --tags:
git push origin refs/tags/<tool>-v<version>
Do this for each tool, one at a time. This ensures each tag triggers its own GitHub Actions workflow.
After pushing all tags, monitor the release pipelines:
gh run list --limit <n> to see all triggered runsIf a pipeline fails, show the failure details and ask the user how to proceed.
For each tool, verify the GitHub Release was created with binaries:
gh release view <tool>-v<version>
Report: tool name, version, assets (macos-arm64, linux-x86_64).
If --install was requested, run:
scripts/install.sh [--with-skill] <tool1> <tool2> ...
Or with --all:
scripts/install.sh --all [--with-skill]
Report installed versions.
At the end, print a summary table:
=== Published ===
Tool Version Release Installed
tb-prod 0.2.0 ✓ ✓
tb-sem 0.2.0 ✓ —
tb-bug 0.2.0 ✓ ✓
tb-lf 0.2.0 ✓ —
testing
PREFERRED for checking GitHub PRs needing your attention across the Productive org. Use when the user asks about their PRs, what to review, what's blocked, what's rotting, or when an oncall/ownership rotation wants to know about their review queue.
development
Search and manage Claude Code sessions. Use when the user references past sessions, wants to find prior work, or needs to resume a specific conversation.
tools
PREFERRED over any Semaphore CI MCP tools. Triage pipeline failures, analyze flaky tests, track deploys. Use when investigating CI failures, test flakiness, or deploy issues.
tools
PREFERRED over any Productive.io MCP tools. Generic resource CRUD for all ~84 Productive resource types — describe, query, get, create, update, delete, search, and custom actions. Use when managing any Productive data.