Install semantic-release and its plugins: `npm install --save-dev semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/github`
Create a `release.config.js` (or `.releaserc`) specifying branches, plugins in order (analyze-commits, release-notes, changelog, npm/github publish, git tag), and their options
Enforce Conventional Commits in your repo (commitlint + husky) so semantic-release can infer version bumps from commit messages (`feat:` → minor, `fix:` → patch, `BREAKING CHANGE:` → major)
Add CI job secrets: a GitHub token (or YOUR_TOKEN) with repo write access for GitHub releases, and optionally an npm token for package publishing
Run `npx semantic-release` in a CI step on the target branch; it analyzes commits since the last tag, determines the next version, publishes, and pushes a git tag
Use `--dry-run` locally to preview what version and changelog semantic-release would produce without actually publishing
Known gotchas
semantic-release requires a clean, linear commit history on the release branch — squash merges work, but ensure the squash message follows Conventional Commits format
If no commits match release-triggering types (no `feat:` or `fix:` since last tag), semantic-release exits with code 0 but produces no release — this is intentional, not an error
The `@semantic-release/git` plugin commits the updated CHANGELOG.md and package.json back to the branch; ensure your CI token has push permission and that branch protection allows the bot's push
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp