| name | tty-assert-release |
| description | Prepares an npm release for tty-assert: edits CHANGELOG.md and package.json, verifies lint/test/build, commits, tags vX.Y.Z, and pushes branch plus tag to trigger GitHub Actions Release. Use when the user asks to release, publish to npm, ship a version, cut a tag, or bump the package version for tty-assert. |
tty-assert: cut an npm release
Human-oriented detail: docs/release.md.
Preconditions
- Default release branch is
main unless the user specifies another branch.
- Working tree should be clean before committing; resolve or stash unrelated changes first.
- If the target version is unclear, ask for
X.Y.Z (semver) before editing files.
Steps (execute in order)
-
CHANGELOG — In CHANGELOG.md, insert a new section immediately after # Changelog:
## [X.Y.Z] - YYYY-MM-DD
- Concise bullets: what changed for users or integrators.
Use today’s date in ISO form (YYYY-MM-DD). The heading must be exactly ## [X.Y.Z] (no v); this string is what .github/workflows/release.yml greps for.
-
Version — Set "version": "X.Y.Z" in package.json to match.
-
Verify — From repo root, run (use nix develop -c before these if the user’s environment requires it):
pnpm lint && pnpm test && pnpm build
Fix any failures before committing.
-
Commit — Stage at least CHANGELOG.md and package.json:
git add CHANGELOG.md package.json
git commit -m "chore: release vX.Y.Z"
-
Tag — Create an annotated or lightweight tag vX.Y.Z on that commit:
git tag vX.Y.Z
-
Push — Push the branch first, then the tag (replace main if needed):
git push origin main
git push origin vX.Y.Z
-
Handoff — Tell the user to watch GitHub → Actions → Release for the run triggered by vX.Y.Z. Remind them that Trusted Publishing must already link this repo to npm (see docs/release.md).
Do not
- Push a tag without the matching
## [X.Y.Z] block in CHANGELOG.md (CI will fail).
- Skip
pnpm lint, pnpm test, or pnpm build before the release commit unless the user explicitly accepts that risk.