Agent skill
release-publishing-workflow
Complete release workflow including version updates, CHANGELOG management, npm publishing, git tagging, and deployment verification. Use when releasing new versions or publishing packages.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/release-publishing-workflow
SKILL.md
Release Publishing Workflow for @j0kz/mcp-agents
Complete workflow for releasing and publishing new versions across the monorepo.
When to Use This Skill
- Releasing new package versions
- Publishing to npm
- Updating version.json and CHANGELOG
- Creating git tags
- Multi-platform deployment verification
- Emergency hotfix releases
Evidence Base
Current State:
- version.json as single source of truth
- 25+ releases documented in CHANGELOG.md
- Multi-package publishing (9 tools + shared + installer)
- Automated version synchronization
- Platform verification (npm, GitHub)
- Emergency rollback procedures
Quick Release Checklist
Pre-release validation:
- All tests passing (
npm test) - Build successful (
npm run build) - Version alignment check (
npm run version:check-shared) - CHANGELOG updated with release notes
- All PRs merged to main
Release steps:
- Update version.json
- Run
npm run version:sync - Update CHANGELOG.md
- Commit changes
- Publish:
npm run publish-all - Create git tag
- Push tag to GitHub
- Verify deployment
For complete checklist: See references/complete-release-checklist.md
version.json (Single Source of Truth)
Location: version.json (root)
Format:
{
"version": "1.0.36",
"sharedVersion": "1.0.36"
}
Update version:
# 1. Edit version.json
{
"version": "1.0.37",
"sharedVersion": "1.0.37"
}
# 2. Sync all package.json files
npm run version:sync
This updates:
- All package.json files (11 packages)
- README badges
- tools.json metadata
CHANGELOG Management
Add release entry:
## [1.0.37] - 2025-10-XX
### 🎉 New Features / 🐛 Bug Fixes
**Key Changes:**
- Feature/Fix 1: Description
- Feature/Fix 2: Description
**Impact:**
- ✅ Benefit 1
- ✅ Benefit 2
**Test Results:**
- ✅ 388/388 tests passing
- ✅ Build successful
**Breaking Changes:** None
---
For CHANGELOG templates: See references/complete-release-checklist.md
Publishing Workflow
1. Pre-Release Validation
# All tests must pass
npm test
# Build must succeed
npm run build
# Version alignment check
npm run version:check-shared
# Update test count if changed
npm run update:test-count
2. Update Version
# Edit version.json
vim version.json
# Change: "version": "1.0.37"
# Sync all packages
npm run version:sync
3. Update CHANGELOG
vim CHANGELOG.md
# Add new release entry at top
4. Commit Version Bump
git add version.json CHANGELOG.md package.json packages/*/package.json tools.json README.md packages/*/README.md
git commit -m "chore: bump version to 1.0.37
Updated:
- version.json
- All package.json files
- CHANGELOG.md with release notes
- README badges
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>"
5. Publish to npm
# Publish all packages at once
npm run publish-all
# Or individually:
npm publish packages/smart-reviewer --access public
npm publish packages/test-generator --access public
# ... etc
Expected output:
+ @j0kz/smart-reviewer-mcp@1.0.37
+ @j0kz/test-generator-mcp@1.0.37
+ @j0kz/orchestrator-mcp@1.0.37
...
✓ 11 packages published successfully
6. Create Git Tag
# Create annotated tag
git tag -a v1.0.37 -m "Release v1.0.37
- Feature 1
- Feature 2
- Bug fix 1
See CHANGELOG.md for full details"
# Push tag to GitHub
git push origin v1.0.37
# Or push all tags
git push --tags
7. Verify Deployment
Check npm:
npm view @j0kz/smart-reviewer-mcp version
# Should show: 1.0.37
npm view @j0kz/orchestrator-mcp version
# Should show: 1.0.37
Check GitHub:
https://github.com/j0kz/mcp-agents/releases
# Tag should appear
Test installation:
npx @j0kz/mcp-agents@latest
# Should install v1.0.37
Emergency Hotfix Release
Quick hotfix for critical bugs:
# 1. Create hotfix branch
git checkout -b hotfix/critical-fix
# 2. Make minimal fix
# ... edit code ...
npm test # Verify fix
# 3. Update version (patch)
# version.json: 1.0.37 → 1.0.38
npm run version:sync
# 4. Update CHANGELOG
# Add hotfix entry
# 5. Commit
git add .
git commit -m "fix: critical security patch"
# 6. Merge to main
git checkout main
git merge hotfix/critical-fix
# 7. Publish immediately
npm run publish-all
# 8. Tag and push
git tag -a v1.0.38 -m "Hotfix: Critical security patch"
git push origin main --tags
For emergency procedures: See references/emergency-rollback-procedures.md
Common Workflows
Standard Feature Release
# 1. Validation
npm test && npm run build
# 2. Version bump
# Edit version.json: 1.0.36 → 1.0.37
npm run version:sync
# 3. CHANGELOG
# Add release entry
# 4. Commit
git add .
git commit -m "chore: bump version to 1.0.37"
# 5. Publish
npm run publish-all
# 6. Tag
git tag -a v1.0.37 -m "Release v1.0.37"
git push origin v1.0.37
# 7. Verify
npm view @j0kz/smart-reviewer-mcp version
Major Version Release (Breaking Changes)
# 1. Update version.json
# 1.0.37 → 2.0.0
# 2. Sync
npm run version:sync
# 3. CHANGELOG with migration guide
## [2.0.0] - 2025-XX-XX
### 💥 Breaking Changes
**Changed API signature:**
- Old: `function(param1, param2)`
- New: `function({ param1, param2 })`
**Migration Guide:**
[Detailed migration steps]
# 4. Commit, publish, tag (same as above)
Troubleshooting Releases
Issue: npm publish fails
Check:
# Verify logged in
npm whoami
# Verify package access
npm owner ls @j0kz/smart-reviewer-mcp
# Verify version not already published
npm view @j0kz/smart-reviewer-mcp versions
For complete troubleshooting: See references/troubleshooting-releases.md
Issue: Version mismatch
# Fix with version sync
npm run version:check-shared
# Shows mismatches
npm run version:sync
# Fixes all versions
Issue: Tag already exists
# Delete local tag
git tag -d v1.0.37
# Delete remote tag
git push origin :refs/tags/v1.0.37
# Recreate tag
git tag -a v1.0.37 -m "Release v1.0.37"
git push origin v1.0.37
Post-Release
After successful release:
-
Update wiki (if user-facing changes)
powershell./publish-wiki.ps1 -
Announce release (optional)
- GitHub Discussions
- Twitter/social media
- Discord/community channels
-
Monitor for issues
- Check GitHub issues
- Monitor npm downloads
- Watch for bug reports
-
Update documentation (if needed)
- README updates
- Wiki pages
- API documentation
Quick Command Reference
# Version management
npm run version:sync # Sync all versions from version.json
npm run version:check-shared # Check for mismatches
# Publishing
npm run publish-all # Publish all packages
npm publish packages/tool --access public # Publish single package
# Validation
npm test # Run all tests
npm run build # Build all packages
npm run update:test-count # Update test count badges
# Git tagging
git tag -a v1.0.37 -m "Message" # Create tag
git push origin v1.0.37 # Push tag
git push --tags # Push all tags
# Verification
npm view @j0kz/package version # Check published version
Best Practices
✅ DO
- Always update version.json first (single source of truth)
- Run version:sync after version changes
- Update CHANGELOG before publishing
- Run full test suite before publishing
- Create annotated tags (not lightweight)
- Verify deployment after publishing
❌ DON'T
- Don't manually edit package.json versions (use version.json)
- Don't skip CHANGELOG updates
- Don't publish without testing
- Don't forget to push tags
- Don't force push tags (coordinate with team)
Related Skills
- git-pr-workflow - Creating PRs before release
- documentation-generation - Updating docs for release
- project-standardization - Version.json usage
References
Detailed Guides:
- Complete Release Checklist - Step-by-step release process
- Emergency Rollback Procedures - Handling failed releases
- Troubleshooting Releases - Common release issues
Project Files:
- version.json - Single source of truth for versions
- CHANGELOG.md - 25+ documented releases
- scripts/version-sync.js - Automated version synchronization
- package.json workspaces - Multi-package setup
Release Principles:
- version.json is the ONLY source of truth
- ALWAYS run version:sync after version changes
- ALWAYS update CHANGELOG before releasing
- ALWAYS test before publishing
- NEVER skip verification steps
- Document breaking changes clearly
- Have rollback plan ready
Didn't find tool you were looking for?