Agent skill
release
Create a new release of unityctl. Analyzes changes since last tag, determines version bump type (major/minor/patch), updates version, builds, commits, tags, and creates a draft GitHub release with changelog.
Install this agent skill to your Project
npx add-skill https://github.com/DirtybitGames/unityctl/tree/main/.claude/skills/release
SKILL.md
unityctl Release Workflow
Create a new release of the unityctl project.
Process Overview
- Analyze changes since last version tag to determine release type
- Bump version in
Directory.Build.props - Run
./dev-install.shto build and update artifacts - Commit version bump and build artifacts
- Push commit and version tag
- Create draft GitHub release with changelog
Step 1: Analyze Changes
Get the latest tag and diff to determine version type:
# Get latest version tag
git describe --tags --abbrev=0 --match "v*"
# View commit log since last tag
git log $(git describe --tags --abbrev=0 --match "v*")..HEAD --oneline
# View full diff since last tag
git diff $(git describe --tags --abbrev=0 --match "v*")..HEAD --stat
Version Bump Guidelines
- Major (X.0.0): Breaking API changes, protocol incompatibilities, removed features
- Minor (0.X.0): New features, new commands, significant enhancements
- Patch (0.0.X): Bug fixes, documentation updates, minor improvements
Review the changes and propose a version bump type to the user.
Step 2: Update Version
Edit Directory.Build.props to update the <Version> element:
<Version>X.Y.Z</Version>
Step 3: Build and Install
Run the dev-install script to build the solution and update artifacts:
./dev-install.sh
This will update:
UnityCtl.UnityPackage/Plugins/UnityCtl.Protocol.dllUnityCtl.UnityPackage/package.json(version synced automatically)
Step 4: Commit Changes
Stage and commit the version changes:
git add Directory.Build.props
git add UnityCtl.UnityPackage/Plugins/UnityCtl.Protocol.dll
git add UnityCtl.UnityPackage/package.json
git commit -m "bump X.Y.Z"
Step 5: Push and Tag
git push origin main
git tag vX.Y.Z
git push origin vX.Y.Z
Step 6: Create Draft GitHub Release
Generate a changelog from commits since the last tag and create a draft release:
# Generate changelog
git log $(git describe --tags --abbrev=0 --match "v*" HEAD^)..HEAD --pretty=format:"- %s" --no-merges
# Create draft release
gh release create vX.Y.Z --draft --title "vX.Y.Z" --notes "CHANGELOG_CONTENT"
Changelog Format
Organize the changelog by category:
## What's Changed
### Features
- New feature description
### Improvements
- Enhancement description
### Bug Fixes
- Fix description
### Documentation
- Doc update description
**Full Changelog**: https://github.com/DirtybitGames/unityctl/compare/vPREVIOUS...vX.Y.Z
Interaction Guidelines
- Always show the diff analysis first and propose a version type (major/minor/patch)
- Wait for user approval of the version number before proceeding
- Show the proposed changelog before creating the GitHub release
- Confirm success by showing the release URL at the end
Files Modified
The release process modifies these tracked files:
Directory.Build.props- Version numberUnityCtl.UnityPackage/Plugins/UnityCtl.Protocol.dll- Built protocol assemblyUnityCtl.UnityPackage/package.json- Unity package version (auto-synced)
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
unity-editor
Remote control Unity Editor via CLI using unityctl. Activate when user mentions Unity Editor, play mode, asset compilation, Unity console logs, C# script debugging, Unity tests, scene loading, screenshots, or video recording. Use for launching/stopping editor, entering/exiting play mode, compiling scripts, viewing logs, loading scenes, running tests, capturing screenshots, recording video, or executing arbitrary C# in Unity context.
demo-page
Rebuild and publish the unityctl demo page hosted at https://dirtybitgames.github.io/unityctl/. Use when asked to update the demo, rebuild the demo page, update gh-pages, or refresh the demo screenshots/video.
unity-editor
Remote control Unity Editor via CLI using unityctl. Activate when user mentions Unity Editor, play mode, asset compilation, Unity console logs, C# script debugging, Unity tests, scene loading, screenshots, or video recording. Use for launching/stopping editor, entering/exiting play mode, compiling scripts, viewing logs, loading scenes, running tests, capturing screenshots, recording video, or executing arbitrary C# in Unity context.
unityctl-plugins
Create unityctl plugins. Use when the user wants to create, scaffold, or write a unityctl plugin (script or executable).
ubiquitous-language
Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions "domain model" or "DDD".
every-style-editor
This skill should be used when reviewing or editing copy to ensure adherence to Every's style guide. It provides a systematic line-by-line review process for grammar, punctuation, mechanics, and style guide compliance.
Didn't find tool you were looking for?