git-commit について
git-commitは、コミット情報の収集、ワークスペース内のプロジェクト検出、形式に沿ったコミットメッセージ作成を行うスキルです。通常はGit操作を実行し、明示的に手動モードを求めた場合はコマンドのみを提示します。
主な機能
- 01自動・手動の実行モード
- 02コミット情報の項目と形式ルール
- 03複数プロジェクトの検出
- 04状態確認・ステージング・コミット・プッシュ
- 05大規模変更と保護ブランチの警告
活用シーン
- 01ワークスペースの変更から形式に沿ったコミットを作成
- 02実行せずにGitコマンドを用意
- 03検出した複数プロジェクトの変更を個別にコミット
- 04コミット前にブランチと変更規模を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fudesign2008/ open-skills --skill git-commitインストール後、Claude Code で/git-commitを入力して読み込まれたか確認します。
詳細
Git Commit — 統合エントリ(デフォルトは自動モード)
モード判定ルール
| シグナル | 結果 |
|---|---|
呼び出し元が execute=true を渡す、または jira-fix-workflow のフェーズ 7 から起動された場合 | 自動モード |
| ユーザーが「手動でコミット」「コマンドのみ生成」「実行しないで」「コマンドを教えて」と指示した場合 | 手動モード |
| その他のトリガー、または状況が不明確な場合 | デフォルトで自動モード |
実行フロー
ステップ 1:コミット情報を収集する
コミットメッセージのフィールド:
- type:fix、feat、refactor、perf、style、docs、test
- scope(任意):ai-summary、share、auth、api、ui、core
- subject:ユーザーの希望する言語での簡潔な説明、最大 50 文字
- jira_id(任意):例:PROJ-123
(jira_id は任意です。branch、report_path などのその他のコンテキストフィールドは呼び出し元から渡され、コミットには含めません)
ステップ 2:実行モードを決定する
execute=false(手動)または execute=true(自動)を決定します。上記の「モード判定ルール」を参照してください。
ステップ 3:複数プロジェクトの検出
スキャンルール:
- スキャン範囲:ワークスペースルートの第 1 階層および第 2 階層のサブディレクトリ
- 判定方法:
.gitディレクトリの有無 - 除外対象:
node_modules、.cursor、dist、build、.git、隠しディレクトリ(.で始まるディレクトリ) - 各候補ディレクトリで
git statusを実行し、有効性を確認する
複数プロジェクトのシナリオ:レポートファイルはプライマリプロジェクト(最初のプロジェクト)でのみコミットします。変更のある各プロジェクトには、それぞれ個別のコミットメッセージを作成します。
ステップ 4:コミットメッセージを生成する
形式:
<type>(<scope>): <Jira-ID> <subject>
ルール:
- 件名:最大 50 文字、ユーザーの希望する言語で記述し、type に対応する動詞を含める必要があります(例:feat:追加、fix:修正、refactor:リファクタリング、perf:最適化、style:フォーマット、docs:ドキュメント、test:テスト)
- Jira ID がある場合は、件名の前に配置する
- scope がない場合は括弧を省略する:
<type>: <subject> - コミットメッセージにはタイトル行のみを含め、本文は含めない
ステップ 5:Git 操作を実行する
手動モード(execute=false):コマンドを生成しますが実行せず、ユーザーに手動実行を促します。
自動モード(execute=true):以下のコマンドを順番に実行し、それぞれの結果またはステータスを出力します。
- git status — 現在の変更の概要を出力する
- 保護ブランチの確認 — main/master/develop への直接コミットはコードレビューを回避し、未レビューの本番コードが main に取り込まれることになります。検出した場合はユーザーに警告する
- git add . — ステージ済みファイルのステータスを出力する
- git commit -m "..." — コミットハッシュとメッセージを出力する
- git log -1 --stat — コミットの統計情報(変更ファイル数と行数)を出力する
- git push -u origin [branch-name] — push の結果またはブランチの追跡情報を出力する
複数プロジェクトの場合、各プロジェクトでこれらの手順を個別に実行し、最後にサマリーテーブルを出力します。
出力形式
自動モード(デフォルト):
## Git Commit (Auto Mode)
**Project**: backend **Branch**: fix/PROJ-123
**Commit**: a1b2c3d **Push**: ✅ Success
**Changes**: +45/-12 (3 files)
**Next**: Create PR → Code Review → Test Verification
手動モード(明示的なリクエストがある場合):
## Git Commit (Manual Mode)
**Generated Commit Message**:
fix(ai-summary): PROJ-123 修复分享链接中AI摘要按钮显示问题
**Commands**:
git status
git add .
git commit -m "fix(ai-summary): PROJ-123 修复分享链接中AI摘要按钮显示问题"
git log -1 --stat
git push -u origin [branch-name] # optional
**Note**: Please review and execute the above commands manually.
複数プロジェクトの場合、各プロジェクトの結果を個別に出力し、最後にサマリーテーブルを出力します。
エラー処理
| 状況 | 対応 |
|---|---|
| 未コミットの変更がない | 手動モード:コミット対象がないことをユーザーに伝える。自動モード:「No changes to commit」を出力するか、git add . を実行して「Staging area empty」と表示する |
| ブランチが存在しない | エラーを出し、先にブランチを作成するよう提案する |
| Git 操作が失敗した | エラーを表示し、代替策(再試行のため「手動でコミット」するよう提案する)を提示する |
| Git リポジトリ内にいない | エラーを出して終了し、ディレクトリを確認するよう提案する |
| 複数プロジェクトの検出に失敗した | 現在のディレクトリを使った単一プロジェクトモードにフォールバックする |
安全機構(自動モード)
- 変更が 10 ファイル/500 行を超えた場合に警告し、20 ファイル/1000 行で再度警告する(警告によって処理はブロックされません)。あるプロジェクトで失敗しても、他のプロジェクトには影響しません
コメント
Markdown 対応