// Automate version updates and releases for any project type (Node.js, Python, Rust, Unity, Unreal, etc.). Detect project type, update version files, generate CHANGELOG, and handle git operations with cross-platform support.
| name | auto-release-manager |
| description | Automate version updates and releases for any project type (Node.js, Python, Rust, Unity, Unreal, etc.). Detect project type, update version files, generate CHANGELOG, and handle git operations with cross-platform support. |
| allowed-tools | Bash, Read, Write |
Automate the entire release workflow for any project type with intelligent project detection and cross-platform support.
This skill streamlines version management across different project types by:
Use this skill when:
Example user requests:
Start by running the project detection script to identify the project type and version files:
python -X utf8 scripts/detect_project.py .
The script returns JSON with:
{
"project_type": "unity",
"version_files": [
"version.json",
"ProjectSettings/ProjectSettings.asset"
],
"detected_version": "1.2.3"
}
Supported project types:
nodejs - Node.js (package.json)python - Python (pyproject.toml, setup.py)rust - Rust (Cargo.toml)go - Go (VERSION file)unity - Unity (version.json + ProjectSettings.asset)unreal - Unreal Engine (.uproject)claude-plugin - Claude Code Plugin (plugin.json)generic - Generic project (VERSION file)Calculate the new version based on update type:
Semantic Versioning (MAJOR.MINOR.PATCH):
Examples:
If user specifies version directly (e.g., "v2.1.0"), use that version.
Use the universal version updater to update all detected files:
python -X utf8 scripts/update_version.py <file1> <file2> ... <new_version>
Example for Node.js:
python -X utf8 scripts/update_version.py package.json 1.3.0
Example for Unity (multiple files):
python -X utf8 scripts/update_version.py version.json ProjectSettings/ProjectSettings.asset 1.3.0
Unity-specific: After updating version.json, sync to ProjectSettings.asset:
python -X utf8 scripts/sync_unity_version.py
This ensures version.json is the single source of truth.
If user wants CHANGELOG updates or it's part of the workflow:
python -X utf8 scripts/changelog_generator.py <new_version> [since_tag] [changelog_path]
Examples:
# Generate from last tag to HEAD
python -X utf8 scripts/changelog_generator.py 1.3.0 v1.2.3
# Generate from all commits
python -X utf8 scripts/changelog_generator.py 1.3.0
# Custom CHANGELOG path
python -X utf8 scripts/changelog_generator.py 1.3.0 v1.2.3 CHANGELOG.ko.md
The script parses Conventional Commits and groups by type:
feat: → Addedfix: → Fixedrefactor: → Changeddocs: → DocumentationAsk user which git operations to perform using AskUserQuestion tool:
Tool constraints:
Options:
"커밋만" (label: 2 words ✅)
"커밋+태그" (label: 2 words ✅)
"전체" (label: 1 word ✅)
Based on user selection:
Commit:
python -X utf8 scripts/git_operations.py commit "chore: bump version to <VERSION>
Version updates:
- Updated <files> to <VERSION>
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>"
Create Tag:
python -X utf8 scripts/git_operations.py tag v<VERSION> "Release v<VERSION>"
Push (branch + tags):
python -X utf8 scripts/git_operations.py push
python -X utf8 scripts/git_operations.py push-tags
If user wants GitHub release, use gh CLI:
gh release create v<VERSION> \
--title "v<VERSION> - <Title>" \
--notes "<Release notes from CHANGELOG>"
Unity projects require special handling due to dual-file approach:
Reference: references/unity-guide.md for detailed Unity workflow.
Unreal projects use .uproject JSON file:
Reference: references/unreal-guide.md for detailed Unreal workflow.
Standard workflow for web/backend projects:
Handle common errors:
Project not detected:
Version file not found:
Git errors:
Script errors:
All scripts are in scripts/ directory and work cross-platform (Windows, macOS, Linux):
Detailed guides in references/ directory:
Load these as needed for detailed information.
Templates in assets/ directory:
Use these when creating new version files.
v prefix (e.g., v1.2.3)