Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

apply-semantic-versioning应用语义版本控制

Agent Skill

apply-semantic-versioning 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

423

周安装

18

GitHub Stars

12

下载量

148
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/pjt222/development-guides --skill apply-semantic-versioning

简介

用于查找、检索和筛选相关信息。apply-semantic-versioning 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

  • 适合根据关键词快速定位候选结果。
  • 通过 GitHub 安装,需确认权限和维护状态。
  • 可能触发联网或文件读写,建议提前评估风险。
  • 适用于 Codex、Claude、Cursor 和 Gemini CLI。

SKILL.md

Apply Semantic Versioning

Determine and apply the correct semantic version bump by analyzing changes since the last release. This skill reads version files, classifies changes as breaking (major), feature (minor), or fix (patch), computes the new version number, and updates the appropriate files. Follows SemVer 2.0.0 specification.

When to Use

  • Preparing a new release and need to determine the correct version number
  • After merging a set of changes and before tagging a release
  • Evaluating whether a change constitutes a breaking change
  • Adding pre-release identifiers (alpha, beta, rc) to a version
  • Resolving disagreement about what version bump is appropriate

Inputs

  • Required: Project root directory containing a version file (DESCRIPTION, package.json, Cargo.toml, pyproject.toml, or VERSION)
  • Required: Git history since the last release (tag or commit)
  • Optional: Commit convention in use (Conventional Commits, free-form)
  • Optional: Pre-release label to apply (alpha, beta, rc)
  • Optional: Previous version if not readable from files

Procedure

Step 1: Read Current Version

Locate and read the version file in the project root.

# R packages
grep "^Version:" DESCRIPTION

# Node.js
grep '"version"' package.json

# Rust
grep '^version' Cargo.toml

# Python
grep 'version' pyproject.toml

# Plain file
cat VERSION

Parse the current version into major.minor.patch components. If the version contains a pre-release suffix (e.g., 1.2.0-beta.1), note it separately.

Expected: Current version identified as MAJOR.MINOR.PATCH[-PRERELEASE].

On failure: If no version file is found, check for a VERSION file or git tags (git describe --tags --abbrev=0). If no version exists at all, start at 0.1.0 for initial development or 1.0.0 if the project has a stable public API.

Step 2: Analyze Changes Since Last Release

Retrieve the list of changes since the last tagged release.

# Find the last version tag
git describe --tags --abbrev=0

# List commits since that tag
git log --oneline v1.2.3..HEAD

# If using Conventional Commits, filter by type
git log --oneline v1.2.3..HEAD | grep -E "^[a-f0-9]+ (feat|fix|BREAKING)"

If no tags exist, compare against the initial commit or a known baseline.

Expected: A list of commits with messages that can be classified by change type.

On failure: If git history is unavailable or tags are missing, ask the developer to describe the changes manually. Classify based on their description.

Step 3: Classify Changes

Apply the SemVer classification rules:

Change TypeVersion BumpExamples
Breaking (incompatible API change)MAJORRenamed/removed public function, changed return type, removed parameter, changed default behavior
Feature (new backwards-compatible functionality)MINORNew exported function, new parameter with default, new file format support
Fix (backwards-compatible bug fix)PATCHBug fix, documentation correction, performance improvement with same API

Classification rules:

  1. If ANY change is breaking, the bump is MAJOR (resets minor and patch to 0)
  2. If no breaking changes but ANY new features, the bump is MINOR (resets patch to 0)
  3. If only fixes, the bump is PATCH

Special cases:

  • Pre-1.0.0: During initial development (0.x.y), minor bumps may contain breaking changes. Document clearly.
  • Deprecation: Deprecating a function is a MINOR change (it still works). Removing it is MAJOR.
  • Internal changes: Refactoring that does not change the public API is PATCH.

Expected: Each change classified as breaking/feature/fix, and the overall bump level determined.

On failure: If changes are ambiguous, err on the side of a higher bump. A conservative major bump is better than a minor bump that breaks downstream code.

Step 4: Compute New Version

Apply the bump to the current version:

CurrentBumpNew Version
1.2.3MAJOR2.0.0
1.2.3MINOR1.3.0
1.2.3PATCH1.2.4
0.9.5MINOR0.10.0
2.0.0-rc.1(release)2.0.0

If a pre-release label is requested:

  • 1.3.0-alpha.1 for first alpha of upcoming 1.3.0
  • 1.3.0-beta.1 for first beta
  • 1.3.0-rc.1 for first release candidate

Pre-release precedence: alpha < beta < rc < (release).

Expected: New version number computed following SemVer rules.

On failure: If the current version is malformed or non-SemVer, normalize it first. For example, 1.2 becomes 1.2.0.

Step 5: Update Version Files

Write the new version to the appropriate file(s).

# R: Update DESCRIPTION
# Change "Version: 1.2.3" to "Version: 1.3.0"
// Node.js: Update package.json
// Change "version": "1.2.3" to "version": "1.3.0"
// Also update package-lock.json if present
# Rust: Update Cargo.toml
# Change version = "1.2.3" to version = "1.3.0"

If the project has multiple files that reference the version (e.g., _pkgdown.yml, CITATION, codemeta.json), update all of them.

Expected: All version files updated consistently to the new version number.

On failure: If a file update fails, revert all changes to maintain consistency. Never leave version files in a partially updated state.

Step 6: Create Version Tag

After committing the version bump, create a git tag.

# Annotated tag (preferred)
git tag -a v1.3.0 -m "Release v1.3.0"

# Lightweight tag (acceptable)
git tag v1.3.0

Use the project's established tag format:

  • v1.3.0 (most common)
  • 1.3.0 (no prefix)
  • package-name@1.3.0 (monorepo)

Expected: Git tag created matching the new version.

On failure: If the tag already exists, the version was not properly bumped. Check for duplicate tags with git tag -l "v1.3*" and resolve before proceeding.

Validation

  • Current version was read from the correct version file
  • All commits since the last release were analyzed
  • Each change is classified as breaking, feature, or fix
  • The bump level matches the highest-severity change (breaking > feature > fix)
  • New version follows SemVer 2.0.0 format: MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
  • All version files in the project are updated consistently
  • No version was skipped (e.g., 1.2.3 to 1.4.0 without 1.3.0 being released)
  • Git tag matches the new version and project's tag format convention
  • Pre-release suffix, if used, follows correct precedence (alpha < beta < rc)

Common Pitfalls

  • Skipping minor versions: Going from 1.2.3 directly to 1.4.0 because "we added two features." Each release gets one bump; the number of features does not determine the version.
  • Treating deprecation as breaking: Deprecating a function (adding a warning) is a minor change. Only removing it is a breaking change.
  • Forgetting pre-1.0.0 rules: Before 1.0.0, the API is considered unstable. Some projects bump minor for breaking changes during this phase, but it should be documented.
  • Inconsistent version files: Updating package.json but not package-lock.json, or updating DESCRIPTION but not CITATION. All version references must stay in sync.
  • Build metadata confusion: Build metadata (+build.123) does not affect version precedence. 1.0.0+build.1 and 1.0.0+build.2 have the same precedence.
  • Not tagging releases: Without git tags, future version bumps cannot determine the baseline for change analysis.

Related Skills

  • manage-changelog -- Maintain changelog entries that pair with version bumps
  • plan-release-cycle -- Plan release milestones that determine when version bumps occur
  • release-package-version -- R-specific release workflow that includes version bumping
  • commit-changes -- Commit the version bump with a proper message
  • create-github-release -- Create a GitHub release from the version tag

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

32.79%
按下载量换算49

Claude

31.33%
按下载量换算46

Cursor

18.25%
按下载量换算27

Gemini CLI

10.03%
按下载量换算15

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills