<essential_principles>
- •NEVER create git tags manually - GitHub Actions handles tag creation
- •ALWAYS check the current date before updating changelog
- •ALWAYS run typecheck before committing release changes
- •Version bumps follow semantic versioning (major.minor.patch) </essential_principles>
- •Patch (bug fixes) - e.g., 0.25.11 → 0.25.12
- •Minor (new features, backward compatible) - e.g., 0.25.11 → 0.26.0
- •Major (breaking changes) - e.g., 0.25.11 → 1.0.0
Also provide: What changes are being released? (for changelog) </intake>
<process> <step name="verify"> Run typecheck to ensure no TypeScript errors: ```bash bun typecheck ``` If errors exist, fix them before proceeding. </step> <step name="get-current-version"> Check current version: ```bash grep '"version"' package.json | head -1 ``` </step> <step name="get-date"> Get current date for changelog: ```bash date +"%Y-%m-%d" ``` </step> <step name="bump-version"> Update version in package.json based on release type: - Patch: increment last number (0.25.11 → 0.25.12) - Minor: increment middle, reset last (0.25.11 → 0.26.0) - Major: increment first, reset others (0.25.11 → 1.0.0) </step> <step name="update-changelog"> Add entry at TOP of CHANGELOG.md:markdown
## [NEW_VERSION] - YYYY-MM-DD ### Fixed/Added/Changed - Description of changes
Categories to use:
- •Added - new features
- •Changed - changes in existing functionality
- •Fixed - bug fixes
- •Removed - removed features
- •Security - security fixes </step>
GitHub Actions will automatically:
- •Detect the new version
- •Run tests and type checking
- •Build the project
- •Create the git tag
- •Publish to npm
- •Create a GitHub release </step>
<success_criteria>
- •TypeScript passes with no errors
- •Version bumped correctly in package.json
- •CHANGELOG.md updated with correct date and version
- •Changes committed and pushed to main
- •User directed to GitHub Actions to monitor release </success_criteria>