| name | swpm-release |
| id | swpm-release |
| version | 1.0.0 |
| tags | ["swpm","release","version","changelog","automation"] |
| description | Automated release bash script for SWPM. Updates version in package.json, moves `[Unreleased]` entries to new version section in CHANGELOG.md, and follows SemVer and Keep a Changelog standards. Analyzes commits to suggest version bump or accepts manual version argument. |
| arguments | ["version"] |
| disable-model-invocation | true |
| user-invocable | false |
SWPM Release Automation
Use this skill when preparing a new release. The skill provides an executable bash script that automates version bumping and CHANGELOG updates.
When to Use
- Developer wants to prepare a new release
- Need to update version in
package.json
- Need to move
[Unreleased] entries to a new version section
- Questions about release process automation
- Do not use for manual versioning decisions (use
swpm-semver instead)
What This Skill Does
The executable script scripts/release.sh automates:
- Reads current version from
package.json
- Analyzes commits in branch vs main/master to suggest version bump (major/minor/patch)
- Updates version in
package.json
- Reads
[Unreleased] section from CHANGELOG.md
- Creates new version section with current date in proper format
- Moves entries from
[Unreleased] to new version section
- Preserves comparison links at the bottom of CHANGELOG.md
Usage
How to Invoke
Make it executable and run:
chmod +x .agents/skills/swpm-release/scripts/release.sh
./agents/skills/swpm-release/scripts/release.sh
Or run directly with bash:
bash .agents/skills/swpm-release/scripts/release.sh
What the Script Does
The script will:
- Analyze commits in current branch vs main/master
- Suggest version bump based on commit types (feat → minor, fix → patch, breaking → major)
- Show current version and calculated new version
- Ask for confirmation
- Update
package.json
- Move
[Unreleased] entries to new version section in CHANGELOG.md
- Update comparison links at bottom of CHANGELOG.md
- Display the tag and CHANGELOG content for the new version (ready to copy/paste)
Example Session
Current version: 2.6.0
Analyzing 1 commits in branch...
- feat(agents): add comprehensive agent skills for SWPM
Suggested version bump: minor
New version would be: 2.7.0
Proceed with this version? (y/N): y
Updating package.json to 2.7.0...
Moving [Unreleased] entries to [2.7.0] - 2026-05-01...
Updating comparison links...
=== COPY BELOW FOR COMMIT ===
Tag: v2.7.0
--- CHANGELOG CONTENT FOR v2.7.0 ---
- Added new feature X
- Fixed bug Y
--- END ---
Next steps:
1. Review CHANGELOG.md
2. Copy the tag and content above
3. Commit: git add . && git commit -m "Release v2.7.0"
4. Create tag manually: git tag v2.7.0
5. Push tag: git push origin v2.7.0
Prerequisites
- Bash shell
- Git repository with main or master branch
package.json with current version
CHANGELOG.md with [Unreleased] section at the top
Script Location
.agents/skills/swpm-release/
├── SKILL.md
└── scripts/
└── release.sh
Example Questions
Q: "How do I prepare a new release?"
A: Run bash .agents/skills/swpm-release/scripts/release.sh and follow the prompts.
Q: "What does the release script do?"
A: It analyzes commits to suggest a version bump, updates package.json, and moves [Unreleased] entries to a new version section in CHANGELOG.md.
Q: "Can I run the script multiple times?"
A: Yes, but it will overwrite the [Unreleased] section each time. Make sure to commit changes between releases.
Observations
Before running the release script:
- Ensure
[Unreleased] section in CHANGELOG.md has entries
- Verify the version bump type (check
swpm-semver skill for guidance)
- Review the changes after running the script
- Commit with message like
Release vX.Y.Z
- Create git tag manually:
git tag vX.Y.Z (you control the publish hook)
- Push:
git push origin vX.Y.Z
Reference