version-update について
version-updateは、Node、Rust、Pythonのプロジェクトファイル間でセマンティックバージョンを同期するスキルです。バージョン記載ファイルを検出して更新し、差分を確認します。Git操作は依頼がある場合のみ実行します。
主な機能
- 01Node、Rust、Pythonのスタック検出
- 02バージョンファイルとコード内マーカーの検索
- 03セマンティックバージョンの加算または指定
- 04検出したバージョンファイルの同期
- 05依頼に応じたヘルパースクリプト経由のコミットとプッシュ
活用シーン
- 01対応スタックをまたぐバージョン更新
- 02複数のマニフェストへの同一バージョン設定
- 03コミット前のバージョン変更確認
- 04明示的なコミット依頼後のプッシュ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alpoxdev/ hypercore --skill version-updateインストール後、Claude Code で/version-updateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
SKILL.ko.mdassets/evals/version-update-cases.jsonlscripts/git-commit.shgit-push.shstack-detect.shversion-apply.shversion-bump.shversion-current.shversion-find.sh詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
バージョン更新スキル
node/rust/python 間でセマンティックバージョンを更新します。必要に応じて直接 git 操作を行います。
<output_language>
ユーザー向けの成果物、保存されるアーティファクト、レポート、計画、生成ドキュメント、要約、調整メモ、コミット/メッセージの草案、検証メモは、このスキルの正規ファイルが英語で書かれていても、すべて韓国語をデフォルトにします。
ソースコードの識別子、CLI コマンド、ファイルパス、スキーマキー、JSON/YAML のフィールド名、API 名、パッケージ名、固有名詞、引用されたソースの抜粋は、必要な言語または原文の言語のままにします。
ユーザーが明示的に別の言語を求めた場合、既存の対象アーティファクトの一貫性を保つため別の言語を維持する必要がある場合、または機械可読な契約で英語のトークンが正確に要求される場合に限り、別の言語を使用します。ローカライズされたテンプレートや参照資料(たとえば *.ko.md や *.ko.json)がある場合は、ユーザー向けアーティファクトに優先して使用します。
</output_language>
- node、rust、python のバージョンを含むファイル間で、セマンティックバージョンを1つ更新します。
- 検出されたマニフェストファイルとインラインのバージョンマーカーを同期します。
- コミットやプッシュを依頼された場合は、このスキルの直接 git ヘルパーを使用します。
<instruction_contract>
| フィールド | 契約 |
|---|---|
| Intent | 対応するプロジェクトファイル間で同期されたセマンティックバージョンを更新します。 |
| Trigger | バージョンの引き上げ/設定の依頼で有効化します。特に、ユーザーがバージョン更新と、任意でコミットを求めている場合に有効化します。 |
| Scope | スタックの検出、バージョンファイルの特定、目標バージョンの計算、バージョンの適用、差分の確認、依頼された git 操作を担当します。 |
| Authority | ユーザーとプロジェクトの指示はこのスキルより優先されます。検出されたバージョンファイル、セマンティックバージョニングのルール、スクリプトの出力、差分は根拠となります。 |
| Evidence | Bun MJS ヘルパー、目標引数の解析、git 書き込み前の git diff を使用します。 |
| Tools | bun scripts/*.mjs ヘルパーとローカルファイルの編集を使用します。依頼された場合に限り、このスキルの直接 git ヘルパーを使用します。 |
| Loop | ありません。依頼ごとに1回実行します。スタックの検出、バージョンファイルの特定、現在のバージョンの確認、目標の計算、適用、差分の確認を行い、その後停止します。別のバージョン変更をユーザーから求められた場合にのみ再実行します。 |
| Output | 現在のバージョン、目標バージョン、変更したファイル、コミット/プッシュの状況、注意事項を韓国語で報告します。 |
| Verification | 目的のバージョンファイルすべてが一貫して変更されたことを確認し、差分を確認します。任意の git 手順は、依頼された場合に限り実行します。 |
| Stop condition | バージョンファイルの更新と確認が完了したとき、または依頼された git 手順が完了したとき、あるいは根拠を示して実行できないと判断したときに停止します。 |
</instruction_contract>
<trigger_conditions>
| ユーザーの意図 | 有効化 |
|---|---|
| 「このパッケージを 1.4.0 に上げて」 | はい |
| 「バージョンを更新してコミットして」 | はい |
| 「このクレートのパッチバージョンだけ上げて」 | はい |
| 「git コミットだけして」 | いいえ |
| 「リリース手順書を書き直して」 | いいえ |
</trigger_conditions>
<supported_targets>
package.jsonCargo.tomlpyproject.tomlsetup.py- python の
__version__宣言 - インラインの
.version('x.y.z')コードパターン
</supported_targets>
## 利用可能なスクリプト| スクリプト | 目的 |
|---|---|
bun scripts/stack-detect.mjs | スタック(node、rust、python)を検出します |
bun scripts/version-find.mjs [--plain] | バージョンを含むファイルを検出します |
bun scripts/version-current.mjs [file] | 現在の semver を抽出します(`file |
bun scripts/version-bump.mjs <current> <type> | 次の semver を計算します |
bun scripts/version-apply.mjs <new> [files...] | 検出または選択したファイルにバージョンを適用します |
bun scripts/git-commit.mjs "msg" [files] | 指定されたバージョン更新ファイルを直接コミットします |
bun scripts/git-push.mjs | ユーザーから明示的な依頼があった後に直接プッシュします |
<git_integration>
- ユーザーがバージョンのみの作業を依頼した場合は、バージョンファイルと差分の確認が終わった時点で停止します。コミットやプッシュは行わないでください。
- コミットを依頼された場合は、ユーザーが別のメッセージを指定していない限り、
version-updateで変更したファイルのみを対象にbun scripts/git-commit.mjs "chore: bump version to x.y.z" [files...]を実行します。 - プッシュを依頼された場合は、コミットが成功し、ユーザーから明示的にプッシュを依頼された後に限り、
bun scripts/git-push.mjsを実行します。 - Git の書き込み操作は順番に実行してください。
</git_integration>
<version_rules>
| 引数 | 操作 | 例 |
|---|---|---|
+1 / +patch | パッチを +1 | 0.1.13 -> 0.1.14 |
+minor | マイナーを +1 | 0.1.13 -> 0.2.0 |
+major | メジャーを +1 | 0.1.13 -> 1.0.0 |
x.y.z | 明示的に設定 | 0.1.13 -> 2.0.0 |
</version_rules>
ワークフロー
# 1) detect stack(s)
bun scripts/stack-detect.mjs
# 2) find version-bearing files
bun scripts/version-find.mjs
# 3) read current version
bun scripts/version-current.mjs
# output: <file>|<version>
# 4) compute next version
bun scripts/version-bump.mjs 1.2.3 +minor
# -> 1.3.0
# 5) apply to all discovered files (or selected files)
bun scripts/version-apply.mjs 1.3.0
# 6) review the final diff and changed file list
git diff --stat
git diff
# 7) optional commit only when explicitly requested
bun scripts/git-commit.mjs "chore: bump version to 1.3.0" package.json
# 8) optional push only when explicitly requested
bun scripts/git-push.mjs
<stack_targets>
| スタック | 主なファイル | 追加パターン |
|---|---|---|
| Node | package.json | コード内の .version('x.y.z') |
| Rust | Cargo.toml([package].version) | コード内の .version('x.y.z') |
| Python | pyproject.toml、setup.py、.py 内の __version__ | コード内の .version('x.y.z') |
</stack_targets>
| カテゴリー | 必須事項 |
|---|---|
| 入力 | ARGUMENT をバージョン更新ルールまたは明示的な semver として解析します |
| 検出 | 更新を適用する前に bun scripts/version-find.mjs を実行します |
| 現在の状態 | 目標バージョンを計算する前に、bun scripts/version-current.mjs で現在のバージョンを読み取ります |
| 一貫性 | 検出したすべてのバージョンファイルの内容を同期させます |
| Git の対象範囲 | バージョン更新ファイルのみをコミットします |
| 安全性 | ユーザーが別の形式を依頼していない限り、Conventional Commit のメッセージ(chore: bump version to x.y.z)を使用します |
| Git | Git への書き込みを依頼された場合に限り、bun scripts/git-commit.mjs と bun scripts/git-push.mjs を順番に使用します |
<scope_boundaries>
version-updateは、バージョンの検出、目標バージョンの計算、ファイルの更新、差分の確認、依頼された Git 操作を担当します。version-updateで変更したファイルのみをコミットします。
</scope_boundaries>
肯定的なトリガー
- 「このリポジトリを 0.8.2 から 0.9.0 に上げて、コミットしてください」
- 「この Python パッケージのパッチバージョンを上げてください」
- 「package.json と Cargo.toml を 2.0.0 に更新してください」
否定的なトリガー
- 「これらのドキュメント変更を Git コミットしてください」
- 「リリースプロセスを要約してください」
- 「バージョンだけを更新し、まだコミットしないでください」
トリガーの確認:
- 少なくとも3つの肯定的なトリガー例が有効なままである
- 少なくとも2つの否定的なトリガー例が対象外のままである
- 少なくとも1つの境界例で、コミットする場合としない場合が明確に示されている
実行チェックリスト:
-
bun scripts/version-current.mjsで現在のバージョンを特定した -
bun scripts/version-bump.mjsで対象バージョンを算出した(または明示された semver を検証した) -
bun scripts/version-apply.mjsですべての対象ファイルを更新した -
git diffを確認した - コミットを求められた場合、バージョン更新対象のファイルだけを指定して
bun scripts/git-commit.mjsを使用した - プッシュを求められた場合、コミットが成功した後にのみ
bun scripts/git-push.mjsを使用した
禁止事項:
- 現在のバージョンを確認せずに更新を開始すること
- 複数のバージョンファイルがある場合に、1つのファイルだけを更新すること
- バージョン更新対象のファイル以外をコミットすること
- 保護されたブランチに強制プッシュすること