always-on-guidance
Always-on rule-oriented guidance for claude-plugin agents. Use to align behavior, tool usage,…
Handles version bumps and npm releases for the swarm-tools monorepo (opencode-swarm-plugin, claude-code-swarm-plugin, swarm-mail, swarm-queue). Use when: creating changesets, bumping versions, preparing releases, checking release status, debugging publish failures, verifying npm
$ npx -y skills add joelhooks/swarm-tools --skill release --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/releaseContext preview
The summary Claude sees to decide when to auto-load this skill.
Handles version bumps and npm releases for the swarm-tools monorepo (opencode-swarm-plugin, claude-code-swarm-plugin, swarm-mail, swarm-queue). Use when: creating changesets, bumping versions, preparing releases, checking release status, debugging publish failures, verifying npm
name: release description: | Handles version bumps and npm releases for the swarm-tools monorepo (opencode-swarm-plugin, claude-code-swarm-plugin, swarm-mail, swarm-queue). Use when: creating changesets, bumping versions, preparing releases, checking release status, debugging publish failures, verifying npm packages, or merging release PRs. Triggers: "release", "publish", "changeset", "bump version", "ship it", "new version", "create a release", "check npm", "verify publish", "/release"
All releases go through changesets → CI → npm. Never publish manually unless CI is broken.
cat > .changeset/<descriptive-name>.md << 'EOF' --- "opencode-swarm-plugin": patch --- fix: description of what changed and why EOF
**Bump levels**: `patch` (bug fixes), `minor` (features), `major` (breaking changes).
**Which packages to include** — only packages with actual changes:
**Use pdf-brain for commit quotes:**
pdf-brain search "<relevant topic>" --limit 1 --expand 500
git add .changeset/<name>.md <changed-files> git commit -m "feat: description" git push origin main
CI (`publish.yml`) runs on push to main: 1. Detects changesets → runs `changeset version` + `bun update` 2. Syncs `plugin.json` versions (lifecycle hook at `.changeset/config.json`) 3. Opens/updates PR on `changeset-release/main` branch 4. AI generates PR title via `vercel/ai-action`
gh pr merge <number> --squash --delete-branch
CI then: 1. Builds all packages 2. Verifies tarballs contain expected artifacts 3. Runs `scripts/ci-publish.sh` — packs with `bun pm pack` (resolves `workspace:*`), publishes via `npm publish` 4. Tags releases 5. Generates and posts release tweet to @swarmtoolsai
npm view opencode-swarm-plugin@latest dependencies npm view claude-code-swarm-plugin@latest version
**Critical check**: Verify no `workspace:*` in published deps. If found, the publish script's safety net failed — see Troubleshooting.
CI handles all of these via changesets. For manual bumps, ALL must be updated:
| Package | Files | |---------|-------| | opencode-swarm-plugin | `packages/opencode-swarm-plugin/package.json`, `claude-plugin/.claude-plugin/plugin.json` | | claude-code-swarm-plugin | `packages/claude-code-swarm-plugin/package.json`, `.claude-plugin/plugin.json` | | swarm-mail | `packages/swarm-mail/package.json` | | swarm-queue | `packages/swarm-queue/package.json` |
Manual bump script: `./scripts/bump-version.sh <version>`
The `scripts/ci-publish.sh` uses `bun pm pack` (resolves workspace protocol) + a python3 safety net that rewrites any remaining `workspace:*` to actual versions. If this still fails:
1. Check bun version — `packageManager` in root `package.json` must be >= 1.3.5 2. Verify safety net ran — CI logs should show "resolving from monorepo" if workspace deps leaked 3. Nuclear option: bump the broken package (patch changeset), push, merge release PR
Already-published version. Normal when re-running publish — `|| true` catches it. Only a problem if the VERSION wasn't bumped (changeset not applied).
CI lifecycle hook should sync these. If not, manually:
VERSION=$(jq -r .version packages/opencode-swarm-plugin/package.json) jq ".version = \"$VERSION\"" packages/opencode-swarm-plugin/claude-plugin/.claude-plugin/plugin.json > /tmp/p.json mv /tmp/p.json packages/opencode-swarm-plugin/claude-plugin/.claude-plugin/plugin.json
Changesets action only runs when `.changeset/*.md` files exist (excluding README.md). If no changesets, it skips version PR creation and goes straight to publish (for any packages with unpublished versions).
Multi-agent coordination that survives context death. Break big tasks into small ones. Spawn agents to work in parallel. Learn from what works. swarmtools.ai · Documentation
Repo: joelhooks/swarm-tools
Always-on rule-oriented guidance for claude-plugin agents. Use to align behavior, tool usage,…
Send messages, system events, and agent notifications through the openclaw CLI. Use when an…
Multi-agent coordination patterns for OpenCode swarm workflows. Use when work benefits from…
Ralph loop pattern - Claude supervises while Codex (gpt-5.3-codex) executes implementation…
Swarm CLI commands for workers - hivemind memory, hive tasks, swarmmail coordination. Use…