plugins/versioning/skills/version-init/SKILL.md
Bootstrap versioning for a project - detect project type, initialize git-cliff config, and generate initial CHANGELOG.md using semantic versioning
npx skillsauth add jason-hchsieh/marketplace version-initInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are bootstrapping semantic version management for a project. This skill helps initialize version management following Semantic Versioning principles (MAJOR.MINOR.PATCH).
This skill supports multiple version management approaches. git-cliff is optional.
Ask the user how they want to manage versions:
CHANGELOG + git-cliff (Recommended) - Automatic changelog generation from conventional commits
CHANGELOG only - Manual version tracking in changelog
Git tags only - Use git tags for version tracking
Custom approach - User specifies their own method
Based on their choice, proceed with the appropriate workflow.
If git-cliff selected: Check that git-cliff is installed:
git-cliff --version
If not installed, offer to install:
brew install git-cliffcargo install git-cliffapt-get install git-cliff or package managerLook for existing project files to determine the project type:
package.json → Node.js / JavaScript / TypeScriptCargo.toml → Rustpyproject.toml / setup.cfg / setup.py → Pythongo.mod → Gopom.xml / build.gradle / build.gradle.kts → Java / Kotlinmix.exs → Elixirpubspec.yaml → Dart / FlutterCMakeLists.txt → C / C++Chart.yaml → Helm chart.claude-plugin/plugin.json → Claude Code pluginReport what was detected.
For each detected project file, read and extract the current version (if any). Report what was found:
Detected project type: Node.js
Existing versions found:
- package.json: 0.3.1
- .claude-plugin/plugin.json: 1.0.0
If existing version files have versions, use the highest one as the starting version.
If no versions exist, ask the user for an initial version. Suggest:
0.1.0 for new/early projects1.0.0 for production-ready projectsIf CHANGELOG + git-cliff selected:
Check if cliff.toml already exists. If not, create one:
git-cliff --init keepachangelog
This creates a cliff.toml with the Keep a Changelog format, which produces well-structured changelogs with categories:
If the user prefers a different style, offer alternatives:
git-cliff --init → Default git-cliff stylegit-cliff --init minimal → Minimal styleIf CHANGELOG only selected:
Create a minimal CHANGELOG.md template with the current version.
If Git tags only selected:
No configuration files needed - versions are tracked via git tags.
If Custom selected:
Ask user what configuration/process they want to set up.
If CHANGELOG + git-cliff selected:
Generate the initial changelog from existing git history:
git-cliff --output CHANGELOG.md
Show the user the generated changelog.
If CHANGELOG only selected:
Create initial CHANGELOG.md with the starting version and instructions for manual updates.
If Git tags only selected:
Skip changelog creation (unless user wants one anyway).
If no git tags exist yet, offer to create an initial tag:
git tag v<version>
Only do this if the user agrees.
If multiple version files were found with different versions, offer to sync them all to the same version using the Edit tool.
## Version Init Complete
### Project Type
- Detected: [type]
### Configuration
- cliff.toml: Created (keepachangelog style)
- CHANGELOG.md: Generated from git history
### Version Files
| File | Previous | Current |
|------|----------|---------|
| package.json | 0.3.1 | 0.3.1 (unchanged) |
| plugin.json | 1.0.0 | 1.0.0 (unchanged) |
### Next Steps
- Use `/bump` to increment versions
- Use `/changelog` to update CHANGELOG.md before releases
- Use `/version-check` to validate consistency
development
Validate version consistency across all project files, check semver format, git tag alignment, and changelog synchronization per https://semver.org/
tools
Generate or update CHANGELOG.md using git-cliff from conventional commit history - see https://git-cliff.org/docs/category/usage
tools
Bump the project version following semver, update all version files per https://semver.org/
tools
Enable or disable a registered runbook by name - disabled runbooks skip automatic trigger execution