Adds a Claude Code skill that automates the release workflow: parse bump type (major/minor/patch), update Cargo.toml + Cargo.lock, commit, and tag. Intentionally does not auto-push so the user retains control over when releases go to the remote. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.3 KiB
name, description, version, author, category, tags
| name | description | version | author | category | tags | ||||
|---|---|---|---|---|---|---|---|---|---|
| release | Bump version, tag, and prepare for next development cycle | 1.0.0 | Taylor Eernisse | automation |
|
Release
Automate SemVer version bumps for the lore CLI.
Invocation
/release <type>
Where <type> is one of:
- major — breaking changes (0.5.0 -> 1.0.0)
- minor — new features (0.5.0 -> 0.6.0)
- patch / hotfix — bug fixes (0.5.0 -> 0.5.1)
If no type is provided, ask the user.
Procedure
Follow these steps exactly. Do NOT skip any step.
1. Determine bump type
Parse the argument. Accept these aliases:
major,breaking-> MAJORminor,feature,feat-> MINORpatch,hotfix,fix-> PATCH
If the argument doesn't match, ask the user to clarify.
2. Read current version
Read Cargo.toml and extract the version = "X.Y.Z" line. Parse into major, minor, patch integers.
3. Compute new version
- MAJOR:
(major+1).0.0 - MINOR:
major.(minor+1).0 - PATCH:
major.minor.(patch+1)
4. Check preconditions
Run git status and git log --oneline -5. Show the user:
- Current version: X.Y.Z
- New version: A.B.C
- Bump type: major/minor/patch
- Working tree status (clean or dirty)
- Last 5 commits (so they can confirm scope)
If the working tree is dirty, warn: "You have uncommitted changes. They will NOT be included in the release tag. Continue?"
Ask the user to confirm before proceeding.
5. Update Cargo.toml
Edit the version = "..." line in Cargo.toml to the new version.
6. Update Cargo.lock
Run cargo check to update Cargo.lock with the new version. This also verifies the project compiles.
7. Commit the version bump
git add Cargo.toml Cargo.lock
git commit -m "release: v{NEW_VERSION}"
8. Tag the release
git tag v{NEW_VERSION}
9. Report
Print a summary:
Release v{NEW_VERSION} created.
Previous: v{OLD_VERSION}
Bump: {type}
Tag: v{NEW_VERSION}
Commit: {short hash}
To push: git push && git push --tags
Do NOT push automatically. The user decides when to push.
Examples
/release minor -> 0.5.0 -> 0.6.0
/release hotfix -> 0.5.0 -> 0.5.1
/release patch -> 0.5.0 -> 0.5.1
/release major -> 0.5.0 -> 1.0.0