AgentSkillsCN

commit_with_version_check

在提交前确认是否需要进行版本升级的变更,并以适当的方式更新版本的协议

SKILL.md
--- frontmatter
name: commit_with_version_check
description: コミット前にバージョンアップが必要な変更かを確認し、適切にバージョンを更新するプロトコル

コミット前バージョンチェックプロトコル

このスキルは、コミット前に変更内容を分析し、バージョンアップが必要かを判断して適切に実行するためのプロトコルを定義します。

基本原則

コミットを行う前に、必ず以下の手順を実行すること

  1. 変更内容の分析
  2. バージョンアップの必要性判断
  3. 必要に応じてバージョン更新
  4. コミットとプッシュ

実行手順

ステップ1: 変更内容の確認

bash
git status
git diff

変更されたファイルと内容を確認し、以下の観点で分析する:

  • 機能追加: 新しい機能やUIコンポーネントの追加
  • 機能変更: 既存機能の動作変更
  • バグ修正: 不具合の修正
  • ドキュメント更新: README、コメント、ドキュメントのみの変更
  • リファクタリング: 動作を変えない内部構造の改善
  • 設定変更: 設定ファイルのみの変更

ステップ2: バージョンアップの判断

version_management スキルのルールに基づいて判断:

パッチバージョンアップ (X.Y.Z → X.Y.Z+1)

以下の場合にパッチバージョンを上げる

  • ✅ バグ修正
  • ✅ 軽微な機能追加(既存機能への小さな改善)
  • ✅ UI/UXの微調整
  • ✅ パフォーマンス改善
  • ✅ セキュリティ修正

:

  • メニュー項目の追加
  • ボタンの配置調整
  • エラーメッセージの改善
  • 既存機能の小さな拡張

マイナーバージョンアップ (X.Y.Z → X.Y+1.0)

以下の場合にマイナーバージョンを上げる

  • ✅ 新機能の追加
  • ✅ 大きな機能変更
  • ✅ 新しいページやモジュールの追加
  • ✅ APIの拡張(後方互換性あり)

:

  • 新しいレポート形式の追加
  • データエクスポート機能の追加
  • 新しい設定画面の追加

メジャーバージョンアップ (X.Y.Z → X+1.0.0)

以下の場合にメジャーバージョンを上げる

  • ✅ 破壊的変更(APIの非互換な変更)
  • ✅ アーキテクチャの大規模な変更
  • ✅ 正式リリース(0.Y.Z → 1.0.0)

バージョンアップ不要

以下の場合はバージョンアップ不要

  • ❌ ドキュメントのみの変更(README、コメント)
  • ❌ テストコードのみの追加・修正
  • ❌ 開発環境の設定変更(.gitignore、.editorconfig等)
  • ❌ CIスクリプトの変更
  • ❌ スキルファイル(.agent/skills/)のみの変更

ステップ3: バージョン更新の実行

バージョンアップが必要な場合:

  1. package.jsonの更新:

    bash
    # 手動で編集、または
    npm version patch --no-git-tag-version  # パッチ
    npm version minor --no-git-tag-version  # マイナー
    npm version major --no-git-tag-version  # メジャー
    
  2. 変更を確認:

    bash
    git diff package.json
    
  3. package.jsonをステージング:

    bash
    git add package.json
    

ステップ4: コミットとプッシュ

  1. コミットメッセージの作成:

    • バージョンアップを含む場合は、コミットメッセージに明記
    • 変更内容を簡潔に記述

    良い例:

    code
    日付の種類選択メニューに「有給」項目を追加 (v1.1.1)
    
    code
    バージョンを1.1.1に更新、VERSION_MANAGEMENT.mdを追加
    
  2. コミット実行:

    bash
    git commit -m "コミットメッセージ"
    
  3. プッシュ:

    bash
    git push origin main
    

チェックリスト

コミット前に以下を確認:

  • git status で変更内容を確認した
  • 変更内容がバージョンアップ対象か判断した
  • 必要に応じて package.json のバージョンを更新した
  • コミットメッセージにバージョン情報を含めた(該当する場合)
  • すべての変更をステージングした
  • コミットとプッシュを実行した

判断に迷った場合

以下の基準で判断:

  1. ユーザーに見える変更か?

    • Yes → バージョンアップ対象
    • No → 次へ
  2. 動作が変わるか?

    • Yes → バージョンアップ対象
    • No → バージョンアップ不要
  3. 変更の規模は?

    • 小さい(微調整、バグ修正) → パッチ
    • 中程度(機能追加) → マイナー
    • 大きい(破壊的変更) → メジャー

例外ケース

複数の変更が含まれる場合

最も大きな変更に合わせてバージョンを決定:

  • バグ修正 + 機能追加 → マイナーバージョンアップ
  • ドキュメント更新 + UI改善 → パッチバージョンアップ

緊急修正(ホットフィックス)

セキュリティ修正や重大なバグ修正は、即座にパッチバージョンを上げてリリース。

注意事項

  • バージョンアップを忘れた場合は、追加のコミットで修正する
  • 一度プッシュしたバージョンは変更しない
  • バージョン番号は必ず昇順に増やす
  • package.json 以外にバージョン情報がある場合は、それらも同時に更新する