releaselisted
Install: claude install-skill jaemk/mind
# release
Cut a tagged release of `mind`. The version in `Cargo.toml` is the single source
of truth: `make release` tags `v<version>` and pushes it, and that tag push
triggers `.github/workflows/release.yml`, which builds the per-platform binaries,
publishes the GitHub Release with the tarballs, and regenerates the Homebrew
formula.
Releases are SemVer. Pick the bump from what landed since the last tag: a new
verb/flag or other backward-compatible feature is a minor bump; a bug-fix-only
batch is a patch; a breaking change to the CLI, config, on-disk layout, or
`mind.toml` schema is a major bump.
## Steps
### 1. Confirm a clean, green starting point
Work from `main` with everything merged and pushed.
```bash
git switch main && git pull
test -z "$(git status --porcelain)" || echo "tree is dirty; commit or stash first"
make ci # fmt-check + clippy (-D warnings) + test; must pass
```
### 2. Pick the version and survey the changes
```bash
git describe --tags --abbrev=0 # the previous release tag
git log "$(git describe --tags --abbrev=0)..HEAD" --format='%s'
```
Decide the new `X.Y.Z` from that list (see the SemVer note above).
### 3. Bump the version
Between releases `main` carries a pre-release version (`X.Y.Z-dev`) so a build
from `main` is distinguishable from the released binary. Drop the suffix here:
edit `Cargo.toml` `[package].version` to the new `X.Y.Z`, then sync the lockfile
so `Cargo.lock`'s `mind` entry matches (the release build uses `--locked`