Confirm that the current branch is
mainand the worktree is clean. Stop if either condition is not true.Find the latest reachable
v*.*.*tag. Compare it withHEADto prepare./tmp/release-notes.md. If no previous release tag exists, compare from the repository's first commit instead.- Write the notes in English.
- Do not include confidential information.
- Include
What's Changed,Contributors, andFull Changelogsections.
Read the requested version without its
vprefix. If it was not specified, choose it from the release notes using semantic versioning: breaking change → major, feature → minor, fix → patch. Validate that it is a newMAJOR.MINOR.PATCHversion.Run
git pull --ff-only origin main, then createrelease/v<new_version>from the updated branch.Run
pnpm version <new_version> --no-git-tag-versionto updatepackage.json.Run
pnpm cicheckandpnpm build. Fix failures before continuing.Commit the version bump without bypassing hooks and push the release branch.
Open a pull request to
main. Include the associated issue link in its description, as required by this repository. Wait for required checks, then merge the pull request.Update local
mainwithgit pull --ff-only origin main. Create and publish the release with:gh release create "v<new_version>" --target main --title "v<new_version>" --notes-file ./tmp/release-notes.mdPublishing the GitHub Release triggers the
Releaseworkflow. The workflow verifies the tag, version, andmainancestry before publishing through npm Trusted Publishing (OIDC).Monitor the latest
Releaseworkflow withgh run list --workflow=Release --limit 1and wait until it completes successfully. If it fails, report the failure and preserve the release branch for investigation.After a successful publish, switch to
main, delete the mergedrelease/v<new_version>branch, and rungit pull --prune.
Do not run pnpm publish directly for normal releases. Version 0.1.0 was the one-time manual npm
publication used to create the package; do not create a GitHub Release for that already-published
version. Configure npm Trusted Publishing before the next release.