<< All versions

Skill v1.0.0

currentLLM-judged scan90/100
keijiro/dotfiles/upm-release-workflow
──Details
PublishedOctober 22, 2026 at 01:25 PM
Content Hashsha256:82e742ad99b32750...
Git SHA4cc01233b104
──Files
Files (1 file, 3.2 KB)
SKILL.md3.2 KBactive
SKILL.md · 62 lines · 3.2 KB

version: "1.0.0" name: upm-release-workflow description: Maintain and release a Unity UPM package repository that follows the Packages/jp.keijiro.* layout. Use when updating the Unreleased section in CHANGELOG.md, preparing a new package release, generating package.json _upm.changelog metadata, syncing root/package documentation files, packing a signed tarball with upm, creating a GitHub release, or checking release readiness. Keep npm publishing as a manual user step.


UPM Release Workflow

Use this skill for routine maintenance and release work on a Unity UPM package repository.

Start Here

  • Find the package directory with scripts/detect_package_dir.sh.
  • Confirm the repository root contains README.md, CHANGELOG.md, and LICENSE.
  • Confirm the package directory contains synchronized copies of those files.
  • Read references/workflow.md before changing release metadata or creating a GitHub release.

Route the Request

Use one of these paths.

Update the changelog

  • Review commits since the previous release.
  • Update or create the Unreleased section in the root CHANGELOG.md.
  • Preserve any manual notes that are still accurate.
  • Sync the package copy of CHANGELOG.md.

Prepare a package release

  • Bump the package version in Packages/.../package.json.
  • Rename the Unreleased heading in CHANGELOG.md to the new version and today's date.
  • Generate _upm.changelog from the newest released changelog section with scripts/render_upm_changelog.py.
  • Sync README.md, CHANGELOG.md, and LICENSE into the package directory with scripts/sync_package_docs.sh.
  • Commit the changes and create a git tag for the version.

Release the package

  • Pack the package tarball into the repository root with scripts/pack_package.sh.
  • The script reads UPM_SERVICE_ACCOUNT_KEY_ID, UPM_SERVICE_ACCOUNT_KEY_SECRET, and UPM_SERVICE_ACCOUNT_ORG_ID from macOS Keychain and invokes upm pack.
  • Confirm the generated [package-name]-[version].tgz tarball exists in the repository root.
  • Push commits and tags before creating the GitHub release.
  • Build release notes from the latest CHANGELOG.md version section, omitting the section heading.
  • Confirm the release title with the user in the form [version]: [title].
  • Create the GitHub release with gh.
  • Instruct the user to run npm publish manually after the GitHub release is ready.

Guardrails

  • Keep root/package copies of README.md, CHANGELOG.md, and LICENSE synchronized.
  • Do not invent release notes. Derive them from CHANGELOG.md and commit history.
  • Do not publish to npm from the agent.
  • Stop for user input when Keychain credentials are missing, upm pack fails, or a release title is required.

Resources

  • references/workflow.md: Detailed workflow rules and release expectations.
  • scripts/detect_package_dir.sh: Print the package directory under Packages/jp.keijiro.*.
  • scripts/pack_package.sh: Pack the package tarball with upm using macOS Keychain credentials.
  • scripts/render_upm_changelog.py: Convert the newest released changelog section into Unity Rich Text for _upm.changelog.
  • scripts/sync_package_docs.sh: Copy root documentation files into the package directory.
All versions