release
Release workflow for kasoa monorepo. Commit changes, create changeset, push, merge Version PR, verify npm publish.
When & Why to Use This Skill
This Claude skill automates the end-to-end release workflow for monorepos using Changesets and npm. It streamlines the complex process of version management, changelog generation, and package publishing across both CI/CD pipelines and local environments, ensuring a standardized and error-free deployment cycle.
Use Cases
- Automating versioning and changelog creation for multiple packages within a monorepo based on conventional commit history.
- Streamlining secure npm publishing via CI/CD workflows using OIDC authentication and automated GitHub PR management.
- Handling manual local releases including version bumping, building, and publishing with integrated OTP support and git tag synchronization.
- Verifying successful package deployments and troubleshooting failed CI runs directly through the agent interface.
| name | release |
|---|---|
| description | Release workflow for kasoa monorepo. Supports both CI and local publishing. |
Release Workflow
Changesets + npm publishing. CI uses OIDC; local requires npm login + OTP.
Workflow
1. Commit code changes
Use conventional commits: fix(pkg), feat(pkg), chore:
2. Create changeset
Write .changeset/<name>.md:
---
"@kasoa/package-name": patch
---
Brief description
Semver (pre-1.0): patch for fixes/tweaks, minor for features/breaking.
3. Commit changeset
git add .changeset/<name>.md && git commit -m "chore: add changeset"
4. Publish
Via CI (recommended):
git pull --rebase && git push origin main
Wait for CI, then merge the Version PR:
gh pr merge <number> --rebase
Via local:
Requires: npm whoami (must be logged in)
pnpm changeset version # versions + auto-commits
pnpm release # builds + publishes (enter OTP when prompted)
git push origin main --follow-tags
5. Verify
npm view <package-name> version
Edge Cases
Multiple packages: List all in one changeset file.
Push rejected: git pull --rebase && git push origin main
CI fails: gh run view <run-id> --log-failed