---
name: semantic-release-beta
description: Set up or update a Node.js release pipeline that uses semantic-release-npm-github-publish with a stable main channel and a prerelease beta channel on a beta branch, including GitHub Actions validation and npm publishing behavior.
license: MIT
allowed-tools: Bash, Read, Write, Edit
compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires a Node.js package repository that uses git and GitHub Actions.
metadata:
  targets: [_source-only]
  author: Oleg Koval
  tags:
    - semantic-release
    - semantic-release-npm-github-publish
    - release
    - beta
    - github-actions
    - npm
---

# semantic-release-beta

Use this skill when a project needs a reusable beta prerelease workflow with:

- `semantic-release`
- `semantic-release-npm-github-publish`
- GitHub Actions
- a stable `main` branch
- a prerelease `beta` branch
- npm publishing with `beta` prerelease versions
- changelog generation, GitHub releases, npm publishing, and release commits through the maintained preset

## Trigger phrases

- add a beta release workflow
- publish prereleases from a `beta` branch
- set up `semantic-release` with `main` and `beta`
- use `semantic-release-npm-github-publish`
- add release validation or dry-run checks in CI

## Workflow

1. Inspect the repository first.
2. Install or update `semantic-release`, `semantic-release-npm-github-publish`, and the peer plugins expected by the preset.
3. Configure the repo-local semantic-release file to extend `semantic-release-npm-github-publish` and set branches explicitly:
   - `main` for stable releases
   - `{ name: "beta", channel: "beta", prerelease: "beta" }` for prereleases
4. Add scripts if missing:
   - `semantic-release`: `semantic-release`
   - `release:dry-run`: `semantic-release --dry-run --no-ci`
5. Update GitHub Actions to test both `main` and `beta`, validate npm auth, and run release dry-run before real releases.
6. Preserve existing package manager and Node version policy unless the repo needs the preset's supported Node range.
7. Use repo-local plugin composition instead of this preset only when the project needs different plugins, different release rules, or full control over plugin upgrade timing.

## References

- `references/preset.md`
- `references/node-semantic-release.md`
- `references/github-actions.md`
- `references/validation.md`
