packages/forge/src/skills/soleri-release/SKILL.md
Triggers: "release", "bump version", "publish packages", "cut a release", "version bump", "npm publish". Bumps monorepo versions, commits, tags, pushes to trigger CI release. Use deliver-and-ship for quality gates.
npx skillsauth add adrozdenko/soleri soleri-releaseInstall 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 all monorepo package versions in lockstep, commit, tag, and push to trigger the CI/CD release pipeline. This skill handles the mechanical release process — it does NOT run quality gates (use deliver-and-ship for that).
deliver-and-shipdeliver-and-ship first if unsureSearch the vault for release-related anti-patterns before proceeding. Known issues (like npm publish skip patterns swallowing auth errors) should inform the release.
YOUR_AGENT_core op:search_intelligent
params: { query: "release publish npm version bump anti-pattern", mode: "scan", limit: 5 }
Read the root package.json to get the current version. Verify all packages are in sync.
grep '"version"' package.json packages/*/package.json
If any package version is out of sync, stop and flag it to the user before proceeding.
Ask the user if not specified. Follow semver:
| Type | When | Example |
| ------- | --------------------------------------------------- | ------------------- |
| patch | Bug fixes, minor improvements, non-breaking changes | 9.18.2 → 9.18.3 |
| minor | New features, backward-compatible additions | 9.18.2 → 9.19.0 |
| major | Breaking changes | 9.18.2 → 10.0.0 |
Default to patch if the user just says "bump" or "release" without specifying.
Before bumping, verify:
git fetch origin main and compare. If behind, warn.git tag -l "vX.Y.Z". If it exists, stop.Update every package.json in the monorepo to the new version:
for f in package.json packages/*/package.json; do
sed -i '' "s/\"version\": \"OLD\"/\"version\": \"NEW\"/" "$f"
done
Verify the bump succeeded by grepping all package.json files for the new version. Every package must show the new version — if any are mismatched, fix before continuing.
Create a conventional commit with the version bump:
git add package.json packages/*/package.json
git commit -m "chore: bump version to X.Y.Z"
Do NOT include AI attribution in the commit message.
Create an annotated tag matching the release workflow trigger pattern:
git tag vX.Y.Z
Push the commit and tag together. This triggers the Release GitHub Actions workflow.
git push origin main --follow-tags
If the tag did not push with --follow-tags, push it explicitly:
git push origin vX.Y.Z
Check that the Release workflow started:
gh run list --limit 3
Report the workflow run status to the user. If it failed to trigger, check:
git ls-remote --tags origin | grep vX.Y.Z)v* tags? (check .github/workflows/release.yml)Only capture if something unexpected occurred during the release — a new gotcha, a process change, or a failure mode worth remembering.
YOUR_AGENT_core op:capture_knowledge
params: {
title: "<what was learned>",
description: "<details>",
type: "anti-pattern",
domain: "tooling",
tags: ["release", "npm", "publish"]
}
Do NOT capture routine successful releases — that is noise.
The Release GitHub Actions workflow (.github/workflows/release.yml) runs on v* tag pushes and executes:
Each publish step handles "already published" gracefully — if a version already exists on npm, it skips without failing.
--follow-tags only pushes annotated tags that are reachable; if it does not push, use explicit git push origin vX.Y.Z| Op | When to Use |
| -------------------- | ----------------------------------------------------------------- |
| search_intelligent | Check vault for release anti-patterns before starting |
| capture_knowledge | Persist new release gotchas (only when something unusual happens) |
testing
Triggers: "terse mode", "be brief", "less tokens", "fewer tokens", "compress output", "caveman", or invokes /terse. Token-efficient responses with full technical accuracy.
tools
Triggers: "compress this file", "compress CLAUDE.md", "compress memory", "shrink this", "reduce tokens in file", or invokes /compress. Compresses natural language files to save input tokens.
development
Triggers: "implement X", "build Y", "fix Z", "add feature", or any work task needing planning + execution. Full orchestration loop: plan, execute, complete with vault context and brain recs.
tools
Triggers: "start a loop", "run until done", "iterate until X", "loop status", "cancel loop". Iterative execution until condition met or grade threshold reached.