Production releases are created through GitHub Releases. Publishing a release triggers `.github/workflows/publish.yml`, which tests, builds, and publishes the matching package version to npm with provenance.
Do not backfill a GitHub Release for `0.15.0`: that version was published manually, and publishing a release now would trigger a duplicate npm publish. Start this process with the next version.
## 1. Prepare the release in a PR
The release PR must contain every artifact users will receive:
- the semver bump in `package.json` and `package-lock.json`
A not-found response is expected before publishing. Stop if npm already has the version.
## 3. Publish a GitHub Release
Write concise release notes from the matching changelog entry, then create the release. This command creates the `vX.Y.Z` tag at the selected main commit and publishes the GitHub Release:
Do not use generated notes for the first GitHub Release because the repository has no historical release tags; use the curated changelog entry instead.
## 4. Verify publication
Watch the `Publish` workflow and verify npm after it succeeds:
```bash
gh run list --repo bitbonsai/mcpvault --workflow Publish --limit 1