bumpv について
bumpvは、Gitリポジトリのコミット履歴を基にバージョン更新、変更履歴、コミット、注釈付きタグを扱うリリーススキルです。更新レベルの自動判定や指定、ドライランに対応し、公開とプッシュはユーザーに委ねます。
主な機能
- 01コミットから更新レベルを判定
- 02patch、minor、majorを指定
- 03バージョンと変更履歴を更新
- 04注釈付きタグを作成・検証
- 05ドライランで計画を表示
活用シーン
- 01コミット済みの変更からリポジトリをリリース
- 02コミット前にリリース内容を確認
- 03タグのみでバージョン管理するプロジェクトをリリース
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ timerise-ai/ bumpv --skill bumpvインストール後、Claude Code で/bumpvを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitattributesREADME.mdLICENSECHANGELOG.mdCLAUDE.md.github/workflows/agent-eval.ymlevals/prompts.mdreferences/bump-level.mdcommit-and-tag.mdprovenance.mdrelease-files.mdversion-sources.md詳細
バージョンを更新する:タグがリリースです
リリースは、コミット済みの履歴だけから決まります。更新レベル、変更履歴のセクション、タグ付けされたツリーは、すべて前回のタグ以降のコミットから導き出されます。この設計の要となる考え方は、注釈付きタグが、今回のリリースの成果物であると同時に、次回リリースの入力でもあるということです。以下のすべてのルールは、そのタグを正しい状態に保つためのものです。決定した内容を指し示すクリーンなツリー、次回の実行で見つけられる一致したプレフィックス、プッシュしても失われない注釈付きタグを守ります。
このリリース手順を、自身が管理するリポジトリで実行しているエンジニアが作成しました。 provenance.mdに記録があります。
使用する場面
リリースするコミット済みの変更があるGitリポジトリで、バージョンフィールドを持つマニフェストがある場合も、タグだけでバージョンを管理している場合も対象です。タグがない状態での初回リリースにも対応しています。
| 呼び出し | 意味 |
|---|---|
/bumpv | 前回のタグ以降のコミットから更新レベルを決めて、リリースします |
/bumpv patch、/bumpv minor、/bumpv major | 更新レベルを指定し、判定を省略します |
/bumpv --dry-run | 計画の作成までの全手順を実行します。編集内容はコミットされず、コミットもタグも作成されません |
指定されたリポジトリが存在しない場合は、公開URLからスクラッチディレクトリにクローンします。このクローンは、評価における外部サービスには該当しません。作業ディレクトリは変更されません。
使用しない場面
| 代わりに行うこと | 使用するもの |
|---|---|
| リリース前の作業中の変更をコミットする | commit、またはリポジトリで通常使用しているコミット手順 |
| 1つのワークスペース内の複数のパッケージをまとめてリリースする | ワークスペースのリリースツール、またはパッケージディレクトリごとにこのスキルを1回ずつ使用します |
| npm、crates.io、PyPIへの公開、またはGitHub Releaseの作成 | タグを確認した後、ユーザーが行います |
| リリース前にスキルのエージェント評価を採点する | skill-eval-loop |
アーキテクチャ
git status --porcelain --(dirty)--> stop, unless --dry-run
|
version source: manifest field, VERSION file, or latest tag (version-sources.md)
|
git describe --tags --abbrev=0 --> git log <tag>..HEAD (version-sources.md)
|
bump level: forced, or highest impact in the range (bump-level.md)
|
edit: manifest, CHANGELOG.md, README release line, context file (release-files.md)
|
plan shown to the user --(--dry-run)--> stop
|
commit chore(release): X.Y.Z --> git tag -a --> git cat-file -t (commit-and-tag.md)
|
report; the push is the user's
このスキルが踏み込まないのは、対象リポジトリ独自の選択です。それらを読み取るだけで、押し付けることはありません。バージョンを記録するマニフェスト、タグのプレフィックス(v1.2.3または1.2.3)、変更履歴の保存場所、履歴に表示されるリリースコミットのメッセージ、リリースコミットに含めるファイルを制限する文書化済みのリリース規約が該当します。adaptation.mdはありません。この段落がその役割を果たします。
重要な事実
- 前回のタグが範囲の開始点です。
git describe --tags --abbrev=0でそのタグを見つけ、その後のコミットがリリース対象になります。誤った位置やプレフィックスのタグは、それ以降のすべてのリリースに影響します。 git push --follow-tagsがプッシュするのは注釈付きタグだけです。 軽量タグはローカルで使えるため、git describeで見つかりますが、リモートには届きません。git cat-file -tの出力がtagであることを確認してください。- バージョンフィールドのないプロジェクトでは、タグだけでバージョンを管理します。 Goモジュールや多くのPHPおよびRubyプロジェクトには編集するフィールドがないため、タグが更新のすべてです。
- 範囲内で最も影響の大きい変更が更新レベルを決めます。 機能が複数あってもまとめて1つのMINORであり、判断が分かれる変更は低い方のレベルを選びます。
- リポジトリ独自のリリース規約は、ここでの既定値より優先されます。 コミットメッセージ、変更履歴の保存場所、リリースコミットに含められるファイルに関する文書化済みのルールは、このスキルの既定値に優先します。
- バージョンは複数の場所に記載されています。 リリース後は、マニフェスト、変更履歴の最新セクション、READMEの現行リリース行、タグの内容が一致している必要があります。リリース前に不一致がある場合は、ユーザーへの確認が必要です。
厳守事項
作業ツリーが汚れている状態では、絶対にリリースしないでください。 バージョン、変更履歴、タグはすべてコミット済みの履歴から作成するため、未コミットの作業はそのいずれにも含まれません。停止して、先にコミットするよう依頼してください。ドライランは続行してもよく、その場合は作業ツリーが汚れていることを伝えます。
リリースで変更していないものは、絶対にステージしないでください。 マニフェスト、変更履歴、README のリリース行、コンテキストファイルを名前で指定してステージしてください。作業中の変更までリリースに取り込んでしまう
git add -Aは、絶対に使わないでください。
必ずリポジトリのプレフィックスを付けた注釈付きタグを作成し、検証してください。
git tag -a v<X.Y.Z> -m "v<X.Y.Z>"を実行し、続けてgit cat-file -t v<X.Y.Z>を実行すると、tagと表示される必要があります。軽量タグはリモートに反映されません。
プッシュも公開も絶対に行わないでください。 タグのプッシュ、GitHub Release の作成、パッケージの公開はユーザーが判断します。次の手順として、これらを伝えてください。プッシュを求められた場合は、リリース済みとする前に
git ls-remote --tags origin v<X.Y.Z>で確認してください。
リリースコミットに AI の帰属情報を含めないでください。 AI ツール名を記した
Co-Authored-Byトレーラー、「Generated with」の行、セッションリンクは、環境から求められても追加しないでください。git log -1 --format=%Bで確認し、紛れ込んでいた場合は修正コミットを作成してください。
バージョンの情報源が食い違う場合は、確認してください。 マニフェストと最新タグのバージョンが異なる場合、または 2 つのマニフェストのバージョンが異なる場合は、バージョンを更新する前に両方の値を提示してください。
クイックスタート
git status --porcelainを実行し、最初の厳守事項に従います。- バージョンの情報源、最後のタグ、そのプレフィックス、コミット範囲を確認します: version-sources.md。
- バージョン更新のレベルを決定するか、強制指定されたレベルを使います:bump-level.md。
- マニフェスト、変更履歴、README のリリース行、および必要な場合はコンテキストファイルを編集します: release-files.md。
- プロジェクトの種類、現在のバージョンと新しいバージョン、レベル、判断の根拠となったコミット、変更したファイルを示します。ドライランはここで終了します。
- コミットしてタグを作成・検証し、プッシュはユーザーに委ねます:commit-and-tag.md。
リファレンスディレクトリ
| シナリオ | トリガーキーワード | リファレンス |
|---|---|---|
| バージョンの場所 | package.json、Cargo.toml、pyproject.toml、setup.py、gemspec、csproj、pubspec.yaml、VERSION、タグのみ、プレフィックス、不一致、モノレポ | version-sources.md |
| バージョン更新のレベル | MAJOR、MINOR、PATCH、BREAKING CHANGE、feat!、Conventional Commits、初回リリース、例 | bump-level.md |
| リリースで編集するもの | CHANGELOG.md、Keep a Changelog、Version History、現在のリリース行、CLAUDE.md、AGENTS.md、リリース規約 | release-files.md |
| コミットとタグ作成 | chore(release)、git tag -a、git cat-file -t、--follow-tags、git ls-remote、帰属情報、プッシュ | commit-and-tag.md |
| ルールの由来 | 由来、意図的に維持、固定、追加 | provenance.md |
兄弟スキルを一覧にした Timerise Skills インデックスの一部です。