Loading...
Loading...
Automate the full release lifecycle — version bump, changelog, README update, git tag, GitHub release, and PyPI/npm publishing. Use this skill whenever the user wants to cut a release, bump a version, tag and push, create a GitHub release, generate release notes or a changelog, publish to PyPI or npm, or asks what changed since the last release. Even if the user just says ship it, make a release, or tag this version — this skill should handle it. Don't use for routine commit/push, opening PRs, or publishing to VS Code Marketplace/App Store (use the dedicated skills).
npx skill4agent add luongnv89/skills release-managerMain Agent (orchestrator)
├── Step 1: Pre-flight checks (inline)
├── Step 2: Determine version (inline — needs user input)
│
├── Steps 3-6: Spawn subagents in parallel ──────────────┐
│ ├── version-bumper — scan & propose version changes │
│ ├── changelog-generator — generate changelog from git │
│ └── docs-updater — find & propose doc updates │
│ │
├── Collect results, present to user for confirmation ◄───┘
├── Spawn: release-reviewer — independent quality check
│
├── Step 7: Build (inline — needs user confirmation)
├── Step 8: Commit, tag, push (inline — needs user confirmation)
├── Step 9: GitHub Release (inline — needs user confirmation)
└── Step 10: Publish to registries (inline — needs user confirmation)branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash poporigin# Check for uncommitted changes
git status --porcelain
# Check current branch (usually main or master)
git rev-parse --abbrev-ref HEAD
# Ensure we're up to date
git fetch origin
git status -sb# package.json scripts
grep -E '"(release|version|publish)"' package.json 2>/dev/null
# Config files
ls .releaserc* .changeset/ .versionrc* lerna.json 2>/dev/null<tool># Find the latest tag
git tag --sort=-creatordate | head -10
# Show commits since last tag
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~50")..HEAD --oneline --no-merges
# Count by type for the recommendation
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~50")..HEAD --oneline --no-merges | grep -cE "^[a-f0-9]+ feat" || true
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~50")..HEAD --oneline --no-merges | grep -cE "^[a-f0-9]+ fix" || true
git log $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~50")..HEAD --oneline --no-merges | grep -ciE "^[a-f0-9]+ (BREAKING|!:)" || trueBREAKING:!:feat:fix:docs:chore:refactor:WORKSPACE="/tmp/release-workspace-$(date +%s)"
mkdir -p "$WORKSPACE"/{version-bumper,changelog-generator,docs-updater}agents/version-bumper.mdPROJECT_PATHOLD_VERSIONNEW_VERSIONOUTPUT_DIR$WORKSPACE/version-bumperagents/changelog-generator.mdPROJECT_PATHOLD_VERSIONNEW_VERSIONOUTPUT_DIR$WORKSPACE/changelog-generatoragents/docs-updater.mdPROJECT_PATHOLD_VERSIONNEW_VERSIONCHANGELOG_SUMMARYOUTPUT_DIR$WORKSPACE/docs-updater$WORKSPACE/version-bumper/version-changes.md$WORKSPACE/changelog-generator/changelog-entry.md$WORKSPACE/docs-updater/docs-changes.mdagents/release-reviewer.mdPROJECT_PATHWORKSPACE_DIR$WORKSPACEOLD_VERSIONNEW_VERSIONNEEDS_FIXPASSCHANGELOG.md# ChangelogRELEASE_NOTES.md# Check for build configuration
[ -f package.json ] && grep -q '"build"' package.json && echo "npm run build"
[ -f Makefile ] && grep -q '^build:' Makefile && echo "make build"
[ -f Cargo.toml ] && echo "cargo build --release"
[ -f pyproject.toml ] && echo "python -m build"
[ -f build.gradle ] && echo "./gradlew build"
[ -f pom.xml ] && echo "mvn package"<command>git add <specific files that were changed>
git commit -m "chore(release): vX.Y.Z"git tag -a vX.Y.Z -m "Release vX.Y.Z"<branch>git push origin <branch>
git push origin vX.Y.Zghgh release create vX.Y.Z \
--title "vX.Y.Z" \
--notes-file CHANGELOG.md \
--latest.tar.gz.zip.skillgh release create vX.Y.Z \
--title "vX.Y.Z" \
--notes-file CHANGELOG.md \
--latest \
path/to/artifact1 path/to/artifact2references/publishing.mdRelease v2.4.0 complete.
Version bumped: pyproject.toml, package.json (1.3.1 → 2.4.0)
Changelog: CHANGELOG.md updated (8 commits: 3 features, 4 fixes, 1 breaking change)
Git tag: v2.4.0 (annotated) pushed to origin
GitHub release: https://github.com/owner/repo/releases/tag/v2.4.0
Published: PyPI — https://pypi.org/project/mypackage/2.4.0/
Post-release reminders:
- [ ] Announce on Discord
- [ ] Monitor for install issues (pip install mypackage==2.4.0)feat:fix:BREAKING:git remotepip index versionsnpm viewpyproject.tomlpackage.json__version__CHANGELOG.mdgh◆ [Step Name] ([step N of M] — [context])
··································································
[Check 1]: √ pass
[Check 2]: √ pass (note if relevant)
[Check 3]: × fail — [reason]
[Check 4]: √ pass
[Criteria]: √ N/M met
____________________________
Result: PASS | FAIL | PARTIAL√×—◆ Pre-flight (step 1 of 10 — repo state)
··································································
Branch clean: √ pass
Tests pass: √ pass
Dependencies resolved: √ pass (synced with remote)
____________________________
Result: PASS | FAIL | PARTIAL◆ Version Bump (step 3 of 10 — version consistency)
··································································
Files updated: √ pass (N files changed)
Version consistent: √ pass (all files match vX.Y.Z)
____________________________
Result: PASS | FAIL | PARTIAL◆ Changelog (step 4 of 10 — release notes)
··································································
Changes extracted: √ pass (N commits categorized)
Notes formatted: √ pass (conventional commit format)
____________________________
Result: PASS | FAIL | PARTIAL◆ Build & Publish (step 7-10 of 10 — release delivery)
··································································
Build success: √ pass
Tag created: √ pass (vX.Y.Z annotated tag)
Package published: √ pass (PyPI | npm | skipped)
GitHub release created: √ pass (URL: ...)
____________________________
Result: PASS | FAIL | PARTIALX.Y.Z-devpip install pkg==X.Y.Znpm install pkg@X.Y.Zagents/version-bumper.mdagents/changelog-generator.mdagents/docs-updater.mdagents/release-reviewer.mdreferences/publishing.md