---
name: release-new-version
description: Release a new version of this Obsidian plugin by bumping the npm/package version, syncing `manifest.json` and `versions.json`, and pushing the resulting git tag. Use when the user asks to cut a release, bump the version, publish a new version, or push a release tag.
---

# Release New Version

Use this skill for this repo's release flow.

## Quick flow

1. Make sure the user wants an actual release, not just a local version bump.
2. Check git status and stop if there are unrelated uncommitted changes unless the user explicitly wants to proceed.
3. Ask which version bump to make: `patch`, `minor`, `major`, or an explicit version like `1.3.6`.
4. Run one of:
   - `npm version patch`
   - `npm version minor`
   - `npm version major`
   - `npm version 1.3.6`
5. Push the branch and tag together:
   - `git push origin HEAD --follow-tags`

## What `npm version` does here

- Updates `package.json`.
- Runs the repo's `version` script.
- The `version` script runs `node version-bump.mjs`.
- That script syncs `manifest.json` and `versions.json` to the new version.
- `npm version` also creates a git commit and git tag by default.

## Verify before pushing

- Confirm the new version appears in `package.json` and `manifest.json`.
- Confirm `versions.json` has the new version key.
- Confirm the new commit and tag exist locally.

## Release result

Pushing the tag triggers `.github/workflows/release.yml`, which:

- builds the plugin
- attaches `main.js`, `manifest.json`, `styles.css`, and a zip asset
- creates the GitHub release automatically

## Notes

- Prefer `git push origin HEAD --follow-tags` over pushing the tag separately.
- If the working tree is dirty, ask the user how to proceed before running `npm version`.
