Token导航 LogoToken导航

Agent Skill · 运维和基础设施

semantic-release(语义释放)

semantic-release 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

semantic-release 是运维和基础设施类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为操作浏览器;许可证为 MIT,第三方扫描有提醒项,按安装量在运维和基础设施类的 2,449 个 Skill 里排第 411。

总安装 5,163周安装 213GitHub Stars 37下载 1,687核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:semantic-release(语义释放)
来源仓库:https://github.com/terrylica/cc-skills
仓库路径:skills/semantic-release
安装命令:
npx skills add https://github.com/terrylica/cc-skills --skill semantic-release
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/terrylica/cc-skills --skill semantic-release

这个 Skill 是做什么的

运维和基础设施类 Skill 处理部署、监控、日志和云资源,多数需要较高的执行权限。

用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。适合在需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库和原始 README 核验具体用法。安装方式:通过 npx skills add 命令从指定 GitHub 仓库添加。

注意权限范围和维护状态,确认是否会触发联网、命令执行或文件读写。

来源仓库内路径:skills/semantic-release

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/terrylica/cc-skills --skill semantic-release;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

semantic-release 怎么安装?

在终端执行 npx skills add https://github.com/terrylica/cc-skills --skill semantic-release。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

semantic-release 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

semantic-release 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

semantic-release 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

semantic-release 用的人多吗?

公开数据是累计安装 5,163 次,近一周安装 213 次,下载 1,687 次,GitHub 37 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

semantic-release 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理运维和基础设施类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

运维和基础设施类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
brainstorming

头脑风暴 · Codex、Claude

3,148,776173,131操作浏览器MIT通过
copywriting

文案写作 · Codex、Claude

1,996,72425,583需要联网MIT通过
openclaw-secure-linux-cloud

OpenClaw secure linux cloud 命令行 · Codex、Claude

1,853,08840接触敏感数据未明确未通过
xget

xget 命令行 · Codex、Claude

1,799,28040执行命令未明确未通过
requesting-code-review

代码审查请求 · Codex、Claude

1,590,144173,103权限未标注MIT通过
semantic-release

语义释放 · 本页

5,16337操作浏览器MIT有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

semantic-release

Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

Overview

Automate semantic versioning and release management using semantic-release v25+ (Node.js) following 2025 best practices. Works with all languages (JavaScript, TypeScript, Python, Rust, Go, C++, etc.) via the @semantic-release/exec plugin. Create shareable configurations for multi-repository setups, initialize individual projects with automated releases, and configure GitHub Actions workflows with OIDC trusted publishing.

Important: This skill uses semantic-release (Node.js) exclusively, NOT python-semantic-release, even for Python projects. Rationale: 23.5x larger community, 100x+ adoption, better future-proofing.

When to Use This Skill

Invoke when:

  • Setting up local releases for a new project (any language)
  • Creating shareable semantic-release configuration for organization-wide use
  • Migrating existing projects to 2025 semantic-release patterns
  • Troubleshooting semantic-release setup or version bumps
  • Setting up Python projects (use Node.js semantic-release, NOT python-semantic-release)
  • Configuring GitHub Actions (optional backup, not recommended as primary due to speed)
  • Rust workspaces using release-plz (see Rust reference)

Why Node.js semantic-release

22,900 GitHub stars - Large, active community 1.9M weekly downloads - Proven adoption 126,000 projects using it - Battle-tested at scale 35+ official plugins - Rich ecosystem Multi-language support - Works with any language via @semantic-release/exec

Do NOT use python-semantic-release. It has a 23.5x smaller community (975 vs 22,900 stars), ~100x less adoption, and is not affiliated with the semantic-release organization.


Release Workflow Philosophy: Local-First

Default approach: Run releases locally, not via GitHub Actions.

Why Local Releases

Primary argument: GitHub Actions is slow

  • ⏱️ GitHub Actions: 2-5 minute wait for release to complete
  • ⚡ Local release: Instant feedback and file updates
  • 🔄 Immediate workflow continuity - no waiting for CI/CD

Additional benefits:

  • ✅ Instant local file sync - package.json, CHANGELOG.md, tags updated immediately
  • ✅ No pull required - Continue working without git pull after release
  • ✅ Dry-run testing - npm run release:dry to preview changes before release
  • ✅ Offline capable - Can release without CI/CD dependency
  • ✅ Faster iteration - Debug release issues immediately, not through CI logs

GitHub Actions: Optional Backup Only

GitHub Actions workflows are provided as optional automation, not the primary method:

  • Use for team consistency if required
  • Backup if local environment unavailable
  • Not recommended as primary workflow due to speed

Authentication Setup

gh auth login
# Browser authentication once
# Credentials stored in keyring
# All future releases: zero manual intervention

This is the minimum manual intervention possible for local semantic-release with GitHub plugin functionality.

Multi-Account Authentication via mise [env]

For multi-account GitHub setups, use mise [env] to set per-directory GH_TOKEN:

# ~/your-project/.mise.toml
[env]
GH_TOKEN = "{{ read_file(path=env.HOME ~ '/.claude/.secrets/gh-token-accountname') | trim }}"
GITHUB_TOKEN = "{{ read_file(path=env.HOME ~ '/.claude/.secrets/gh-token-accountname') | trim }}"

This overrides gh CLI's global authentication, ensuring semantic-release uses the correct account for each directory.

See the mise-configuration skill for complete setup.

mise Task Detection

When .mise.toml has release tasks, prefer mise run over npm run:

PriorityConditionCommand
1.mise.toml has [tasks.release:*]mise run release:version
2package.json has scripts.releasenpm run release
3Global semantic-releasesemantic-release --no-ci

See Python Guide for complete mise workflow example.

GitHub Actions Policy

CRITICAL: No testing or linting in GitHub Actions. See CLAUDE.md for full policy.

ForbiddenAllowed
pytest, npm test, cargo testsemantic-release
ruff, eslint, clippy, prettierCodeQL, npm audit
mypyDeployment, Dependabot

Separation of Concerns (4-Level Architecture)

semantic-release configuration follows a hierarchical, composable pattern:

Level 1: Skill - ${CLAUDE_PLUGIN_ROOT}/skills/semantic-release/ (Generic templates, system-wide tool) Level 2: User Config - ~/semantic-release-config/ (@username/semantic-release-config) Level 3: Organization Config - npm registry (@company/semantic-release-config) Level 4: Project Config - .releaserc.yml in project root

Configuration Precedence

Level 4 (Project) → overrides → Level 3 (Org) → overrides → Level 2 (User) → overrides → Defaults

Conventional Commits Format

semantic-release analyzes commit messages to determine version bumps:

<type>(<scope>): <subject>

Version Bump Rules (Default)

  • feat: → MINOR version bump (0.1.0 → 0.2.0)
  • fix: → PATCH version bump (0.1.0 → 0.1.1)
  • BREAKING CHANGE: or feat!: → MAJOR version bump (0.1.0 → 1.0.0)
  • docs:, chore:, style:, refactor:, perf:, test: → No version bump (by default)

Release Notes Visibility (Important)

Warning: The @semantic-release/release-notes-generator (Angular preset) only includes these types in release notes:

  • feat: → Features section
  • fix: → Bug Fixes section
  • perf: → Performance Improvements section

Other types (docs:, chore:, refactor:, etc.) trigger releases when configured but do NOT appear in release notes.

Recommendation: For documentation changes that should be visible in release notes, use:

fix(docs): description of documentation improvement

This ensures the commit appears in the "Bug Fixes" section while still being semantically accurate (fixing documentation gaps is a fix).

Marketplace Plugin Configuration (Always Bump)

For Claude Code marketplace plugins, every change requires a version bump for users to receive updates.

Option A: Shareable Config (if published)

# .releaserc.yml
extends: "@terryli/semantic-release-config/marketplace"

Option B: Inline Configuration

# .releaserc.yml
plugins:
  - - "@semantic-release/commit-analyzer"
    - releaseRules:
        # Marketplace plugins require version bump for ANY change
        - { type: "docs", release: "patch" }
        - { type: "chore", release: "patch" }
        - { type: "style", release: "patch" }
        - { type: "refactor", release: "patch" }
        - { type: "test", release: "patch" }
        - { type: "build", release: "patch" }
        - { type: "ci", release: "patch" }

Result after configuration:

Commit TypeRelease Type
feat:minor (default)
fix:, perf:, revert:patch (default)
docs:, chore:, style:, refactor:, test:, build:, ci:patch (configured)

Why marketplace plugins need this: Plugin updates are distributed via version tags. Without a version bump, users running /plugin update see no changes even if content was modified.

MANDATORY: Every Release Must Increment Version

Pre-release validation: Before running semantic-release, verify releasable commits exist since last tag. A release without version increment is invalid.

Autonomous check sequence:

  1. List commits since last tag: compare HEAD against latest version tag
  2. Identify commit types: scan for feat:, fix:, or BREAKING CHANGE: prefixes
  3. If NO releasable commits found → STOP - do not proceed with release
  4. Inform user: "No version-bumping commits since last release. Use feat: or fix: prefix for releasable changes."

Commit type selection guidance:

  • Use fix: for any change that improves existing behavior (bug fixes, enhancements, documentation corrections that affect usage)
  • Use feat: for new capabilities or significant additions
  • Reserve chore:, docs:, refactor: for changes that truly don't warrant a release

Why this matters: A release without version increment creates confusion - users cannot distinguish between releases, package managers may cache old versions, and changelog entries become meaningless.

MAJOR Version Breaking Change Confirmation

Trigger: BREAKING CHANGE: footer or feat!: / fix!: prefix in commits.

When MAJOR is detected, this skill runs a 3-phase confirmation workflow:

  1. Detection: Scan commits for breaking change markers
  2. Analysis: Spawn 3 parallel subagents (User Impact, API Compat, Migration)
  3. Confirmation: AskUserQuestion with proceed/downgrade/abort options

See MAJOR Confirmation Workflow for complete details including subagent prompts, decision tree, and example output.

Examples

Feature (MINOR):

feat: add BigQuery data source support

Bug Fix (PATCH):

fix: correct timestamp parsing for UTC offsets

Breaking Change (MAJOR):

feat!: change API to require authentication

BREAKING CHANGE: All API calls now require API key in Authorization header.

Documentation Linking

Auto-include doc changes in release notes. Add to .releaserc.yml:

- - "@semantic-release/exec"
  - generateNotesCmd: "node plugins/itp/skills/semantic-release/scripts/generate-doc-notes.mjs ${lastRelease.gitTag}"

Detects: ADRs, Design Specs, Skills, Plugin READMEs. See Doc Release Linking.

Note: The @semantic-release/exec plugin uses Lodash templates (${var}). This conflicts with bash default syntax (${VAR:-default}) and subshell syntax ($(cmd)). Preferred fix: remove successCmd entirely if your task runner already handles post-release steps. See Troubleshooting: Lodash Template Conflicts.

Quick Start

Prerequisites

CheckCommandFix
gh CLI authenticatedgh auth statusgh auth login
GH_TOKEN for directorygh api user --jq '.login'See Authentication
Git remote is HTTPSgit remote get-url origingit-ssh-to-https
semantic-release globalcommand -v semantic-releaseSee Troubleshooting

Initialize Project

./scripts/init-project.mjs --project   # Initialize current project
./scripts/init-project.mjs --user      # Create user-level shareable config
./scripts/init-project.mjs --help      # See all options

Run Release

PriorityConditionCommands
1.mise.toml has release tasksmise run release:version / mise run release:full
2package.json has scriptsnpm run release:dry (preview) / npm run release
3Global CLIsemantic-release --no-ci

See Local Release Workflow for the complete 4-phase process.

Python Projects

semantic-release handles versioning. For PyPI publishing, see pypi-doppler skill.

Version pattern (importlib.metadata - never hardcode):

from importlib.metadata import PackageNotFoundError, version
try:
    __version__ = version("your-package-name")
except PackageNotFoundError:
    __version__ = "0.0.0+dev"

See Python Projects Guide for complete setup including Rust+Python hybrids.

GitHub Actions (Optional)

Not recommended as primary (2-5 minute delay). Repository Settings → Actions → Workflow permissions → Enable "Read and write permissions".


Reference Documentation

CategoryReferenceDescription
SetupAuthenticationHTTPS-first setup, multi-account patterns
WorkflowLocal Release Workflow4-phase process (PREFLIGHT → RELEASE → POSTFLIGHT)
LanguagesPython ProjectsPython + Rust+Python hybrid patterns
Rust Projectsrelease-plz, cargo-rdme README SSoT
ConfigVersion AlignmentGit tags as SSoT, manifest patterns
Monorepo SupportPolyglot monorepo with Pants + mise, pnpm/npm workspaces
AdvancedMAJOR ConfirmationBreaking change analysis workflow
Doc Release LinkingAuto-link ADRs/specs in release notes
HelpTroubleshootingAll common issues consolidated
Evolution LogSkill change history

Cross-skill references:


Post-Change Checklist

After modifying THIS skill (semantic-release):

  1. SKILL.md and references remain aligned
  2. New references documented in Reference Documentation table
  3. All referenced files in references/ exist
  4. Append changes to evolution-log.md
  5. Validate with bun scripts/validate-plugins.mjs
  6. Run npm run release:dry to verify no regressions

Troubleshooting

IssueCauseSolution
No release createdNo releasable commits since tagUse feat: or fix: prefix for version-bumping commits
Wrong version bumpCommit type mismatchCheck conventional commit format and releaseRules
GitHub release not createdMissing GH_TOKEN or permissionsCheck token is set and has repo scope
CHANGELOG not updatedMissing changelog pluginAdd @semantic-release/changelog to plugins array
"Authentication failed"HTTPS vs SSH remote mismatchConvert to HTTPS: git-ssh-to-https
semantic-release not foundNot installed globallynpm install -g semantic-release
Gatekeeper blocks on macOSUnsigned Node filesSee Troubleshooting
dry-run shows no changesAlready released at HEADMake new commits before running release
Multi-account token conflictWrong GH_TOKEN for directoryConfigure mise [env] per-directory token

Post-Execution Reflection

After this skill completes, check before closing:

  1. Did the command succeed? — If not, fix the instruction or error table that caused the failure.
  2. Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
  3. Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.

Only update if the issue is real and reproducible — not speculative.

平台分布

Claude Code

25.58%
按下载量换算432

OpenCode

25.07%
按下载量换算423

Antigravity

18.93%
按下载量换算319

Gemini CLI

12.14%
按下载量换算205

windsurf

8.02%
按下载量换算135

trae

3.36%
按下载量换算57

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。

继续浏览同类 Skills