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.

Stars 10
Forks 2

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

  1. Analyze changes since last version tag to determine release type
  2. Bump version in Directory.Build.props
  3. Run ./dev-install.sh to build and update artifacts
  4. Commit version bump and build artifacts
  5. Push commit and version tag
  6. Create draft GitHub release with changelog

Step 1: Analyze Changes

Get the latest tag and diff to determine version type:

bash
# 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:

xml
<Version>X.Y.Z</Version>

Step 3: Build and Install

Run the dev-install script to build the solution and update artifacts:

bash
./dev-install.sh

This will update:

  • UnityCtl.UnityPackage/Plugins/UnityCtl.Protocol.dll
  • UnityCtl.UnityPackage/package.json (version synced automatically)

Step 4: Commit Changes

Stage and commit the version changes:

bash
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

bash
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:

bash
# 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:

markdown
## 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

  1. Always show the diff analysis first and propose a version type (major/minor/patch)
  2. Wait for user approval of the version number before proceeding
  3. Show the proposed changelog before creating the GitHub release
  4. Confirm success by showing the release URL at the end

Files Modified

The release process modifies these tracked files:

  • Directory.Build.props - Version number
  • UnityCtl.UnityPackage/Plugins/UnityCtl.Protocol.dll - Built protocol assembly
  • UnityCtl.UnityPackage/package.json - Unity package version (auto-synced)

Expand your agent's capabilities with these related and highly-rated skills.

DirtybitGames/unityctl

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.

10 2
Explore
DirtybitGames/unityctl

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.

10 2
Explore
DirtybitGames/unityctl

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.

10 2
Explore
DirtybitGames/unityctl

unityctl-plugins

Create unityctl plugins. Use when the user wants to create, scaffold, or write a unityctl plugin (script or executable).

10 2
Explore
petekp/claude-code-setup

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".

20 6
Explore
petekp/claude-code-setup

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.

20 6
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results