OpenAIDevOps・インフラ⭐ リポ 1品質スコア 68/100
semver
Semantic Versioning 2.0.0(semver.org)のルールを適用します。リリースのバージョンアップ種別の選択、バージョン文字列の検証、リリースのタグ付け、プレリリースやビルドメタデータの処理、非推奨機能の管理、またはバージョンの優先順位に関するアドバイスが必要な場合に利用できます。
description の原文を見る
Enforces Semantic Versioning 2.0.0 (semver.org) rules. Use when choosing a version bump type for a release, validating version strings, tagging releases, handling pre-release or build metadata, managing deprecations, or advising on version precedence.
SKILL.md 本文
セマンティック バージョニング 2.0.0
参考: https://semver.org/spec/v2.0.0.html
バージョン形式
MAJOR.MINOR.PATCH[-pre-release][+build]
| セグメント | インクリメントするタイミング | リセットルール |
|---|---|---|
| MAJOR (X) | 後方互換性のない API 変更 | MINOR と PATCH を 0 にリセット |
| MINOR (Y) | 新しい後方互換機能の追加またはディプリケーション通知 | PATCH を 0 にリセット |
| PATCH (Z) | 後方互換性のあるバグ修正のみ | — |
規範的ルール
- 公開 API は必ず宣言されなければなりません(コードまたはドキュメントで)。
- バージョンは
X.Y.Zの形式でなければなりません — 負でない整数、先頭ゼロなし、各々は数値的に増加する必要があります。 - バージョンが一度リリースされたら、その内容を変更してはいけません。変更がある場合は新しいバージョンをリリースしなければなりません。
0.y.zは初期開発用です — 何でも変わる可能性があり、公開 API は安定していると見なされるべきではありません。1.0.0は最初の安定した公開 API を定義します。- PATCH は後方互換性のあるバグ修正に対してのみインクリメントされなければなりません。
- MINOR は新しい後方互換機能が導入された場合、または公開 API が廃止予定になった場合にインクリメントされなければなりません。パッチレベルの変更を含めることができます。
- MAJOR は後方互換性のない変更に対してインクリメントされなければなりません。マイナーおよびパッチレベルの変更を含めることができます。
- リリースされたバージョンは変更してはいけません — バグを修正する場合でも。代わりに新しいバージョンをリリースしなければなりません。
プレリリースバージョン
- ハイフンとドット区切り識別子を追加します:
1.0.0-alpha,1.0.0-alpha.1,1.0.0-0.3.7 - 識別子は
[0-9A-Za-z-]のみを使用しなければなりません。空にしてはいけません。数字のみの識別子は先頭ゼロを持つことはできません。 - プレリリースは関連する通常バージョンより低い優先順位を持ちます:
1.0.0-alpha < 1.0.0
ビルドメタデータ
+とドット区切り識別子を追加します:1.0.0+20130313,1.0.0-beta+exp.sha.5114f85- ビルドメタデータは優先順位の判定時に無視されなければなりません。
優先順位
識別子を左から右へ比較します: MAJOR → MINOR → PATCH → プレリリース (ビルドメタデータは無視)。
プレリリース優先順位の例:
1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
プレリリース識別子比較ルール:
- 数字のみの識別子は数値で比較されます。
- 英数字の識別子は ASCII 順で字句的に比較されます。
- 数字のみの識別子は英数字の識別子より低い優先順位を持ちます。
- 先行する識別子がすべて等しい場合、プレリリースフィールドのセットが大きいほど優先順位が高くなります。
ディプリケーションワークフロー
- 機能を廃止予定としてマークする新しい MINOR リリースを発行します(ドキュメント更新を含む)。
- 後続の MAJOR リリースで機能を削除します。
- ディプリケーション通知を含む前の MINOR リリースなしに、廃止予定機能を削除しないでください。
よくある落とし穴
| 落とし穴 | 正しい動作 |
|---|---|
v1.2.3 は SemVer 文字列ではない | SemVer 文字列は 1.2.3 です。v プレフィックスはタグ命名規則であり、仕様の一部ではありません |
| リリース済みバージョンを変更する | やってはいけません — 新しいバージョンをリリースしてください |
先頭ゼロ (01.2.3, 1.02.3) | 数字の識別子に現れてはいけません |
| すべてのディプリケーションで MAJOR をバンプする | ディプリケーションは MINOR バンプを必要とします。削除は MAJOR バンプを必要とします |
| ディプリケーション MINOR リリースをスキップする | 削除に先立つ少なくとも 1 つの MINOR リリースにディプリケーション通知が含まれなければなりません |
初期開発ガイダンス
0.1.0から開始し、後続のリリースごとに MINOR をインクリメントします。0.y.z範囲内の後方互換性のあるバグ修正に対して PATCH をインクリメントします。- ソフトウェアが本番環境で使用されている、またはユーザーが依存する安定した API を持つ場合、
1.0.0に昇格させます。
バリデーションの正規表現
名前付きグループ (PCRE / Python / Go):
^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
番号付きグループ (ECMAScript / JavaScript):
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
チェックリスト
新しいバージョンをリリースする際に、以下を確認してください:
- 変更タイプが正しく特定されている (バグ修正 → PATCH、新機能/ディプリケーション → MINOR、破壊的変更 → MAJOR)
- バージョン文字列に先頭ゼロが含まれていない
- 以前にリリースされたバージョンの内容が変更されていない
- ディプリケーション時、今後の MAJOR 削除の前に MINOR リリースが行われている
- Git タグは
vX.Y.Z規則を使用している (例:git tag v1.2.3) 一方、SemVer 文字列自体は1.2.3である - CHANGELOG またはリリースノートで変更内容が記載されている
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- kayaman
- リポジトリ
- kayaman/agentskills
- ライセンス
- Apache-2.0
- 最終更新
- 2026/4/29
Source: https://github.com/kayaman/agentskills / ライセンス: Apache-2.0