git-commit について
git-commit は、リポジトリ固有の規則がない場合に、Git のコミットや PR/MR タイトルへ Conventional Commits を適用するスキルです。メッセージの確認や squash merge 用メッセージの作成も扱います。
主な機能
- 01Conventional Commits の書式規則
- 02プロジェクト固有規則の優先
- 03コミットと PR/MR タイトルの指針
- 04メッセージの確認と検証
- 05GitHub と GitLab の判別
活用シーン
- 01変更内容のコミットメッセージ作成
- 02squash merge 用 PR/MR の命名
- 03コミットメッセージの規則確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dmythro/ agent-skills --skill git-commitインストール後、Claude Code で/git-commitを入力して読み込まれたか確認します。
詳細
Conventional Commits
デフォルトのコミット形式: Conventional Commits。 プロジェクトで独自のコミット規約が定められていない限り、すべてのコミットと PR/MR タイトルにこの形式を使用してください(CLAUDE.md、AGENTS.md、コントリビューションガイドなどを確認してください)。プロジェクト固有のルールが常に優先されます。
使用する場面
- git コミットを作成する場合 -- このスキルで必須の形式を定めています
- PR/MR タイトルを作成する場合 -- スカッシュマージでは、タイトルがコミットメッセージとして使用されます
- スカッシュマージのメッセージを書く場合 -- 同じ形式に従う必要があります
- コミットメッセージの形式をレビューする場合 -- これらのルールに照らして確認します
重要なルール
- プロジェクトのルールがこのスキルより優先されます -- プロジェクトでコミットメッセージの規約(課題番号の接頭辞、独自の形式など)が定められている場合は、そちらに従ってください。プロジェクト固有のルールがない場合、このスキルがデフォルトになります。
- タイプは必須です -- タイプの接頭辞なしでコミットしないでください
- 説明は小文字で、命令形とし、末尾にピリオドを付けません:
fix: handle null responseとし、Fix: Handled null response.とはしません Co-Authored-Byのトレーラーは付けません -- コミットメッセージに追加しないでください- 作業の経緯ではなく、変更内容を説明します -- レビュープロセスの経緯(
fix: coderabbit round 2 fixes、fix: address review feedbackなど)をメッセージに書かず、コミットで何を変更するのかを記述してください。変更のきっかけは、すでに PR とそのスレッドに記載されています。 - 余計な文言は入れません -- 通常は説明だけで十分です。説明と差分だけでは伝えられない情報(破壊的変更の詳細、移行手順、明白でない制約)がある場合に限り、本文を追加してください。差分の内容を逐一説明しないでください。
プロバイダーの判別
適切な CLI を使用するため、git プロバイダーを判別します。
git remote get-url origin
| リモート URL に含まれる文字列 | プロバイダー | CLI | PR の呼称 |
|---|---|---|---|
github.com | GitHub | gh | PR |
gitlab.com またはセルフホスト GitLab | GitLab | glab | MR |
判別できない場合、または両方が存在する場合は、ユーザーに確認してください。
形式
<type>(<optional scope>): <description>
[optional body]
[optional footer(s)]
タイプ
| タイプ | 使用する場面 |
|---|---|
feat | 新機能または新しい能力の追加 |
fix | バグ修正 |
docs | ドキュメントのみの変更 |
style | 書式、空白、セミコロンの変更(ロジックの変更なし) |
refactor | バグ修正でも機能追加でもないコード変更 |
perf | パフォーマンスの改善 |
test | テストの追加または更新 |
build | ビルドシステムまたは外部依存関係の変更 |
ci | CI/CD 設定の変更 |
chore | 保守作業、ツール、設定の変更 |
ルール
- タイプは必須です -- タイプの接頭辞なしでコミットしないでください
- スコープは任意ですが、複数モジュールのリポジトリでは推奨されます:
feat(auth): add OAuth2 flow - 説明は小文字で、命令形とし、末尾にピリオドを付けません:
fix: handle null responseとし、Fix: Handled null response.とはしません - 破壊的変更には、タイプまたはスコープの後に
!を付けます:feat(api)!: remove v1 endpoints - PR/MR タイトルも同じ形式に従います -- スカッシュマージでは、PR/MR タイトルがコミットメッセージとして使用されます
Co-Authored-Byのトレーラーは付けません -- コミットメッセージに追加しないでください- 作業の経緯ではなく、変更内容を説明します -- 変更内容を記述し、レビュー担当者に求められた理由は書きません(下記の「レビュー対応コミット」を参照)
- 本文は任意で、追加することはまれです -- 説明と差分だけでは伝えられない内容がある場合に限り追加してください。差分の言い換えや、説明の水増しはしないでください
コミットの例
git commit -m "feat: add user profile page"
git commit -m "fix(auth): prevent token refresh race condition"
git commit -m "docs: update API reference for v2 endpoints"
git commit -m "refactor(db): extract connection pooling logic"
git commit -m "feat(api)!: change response format for /users"
レビューフィードバック対応コミット
レビュー(人間またはボット)からのフィードバックに対応するコミットにも、ほかのコミットと同じルールが適用されます。メッセージには変更内容を記載します。きっかけとなったレビュー担当者、ボット、ラウンド番号は、PR のスレッドにすでに記録されているプロセス上の情報であり、git log には不要です。
| ノイズ(避ける) | 変更内容 |
|---|---|
fix: coderabbit round 2 fixes | fix: guard nil user in session refresh |
fix: address PR review feedback | fix: close file handle on early return |
chore: apply copilot suggestions | refactor: dedupe retry logic across fetchers |
1 回のレビューラウンドで、異なる種類のコミットが生まれることもあります。ラウンドごとではなく、変更内容ごとに分けます。
PR/MR タイトルの例
| プロバイダー | 次のタイトルで PR/MR を作成する |
|---|---|
| GitHub | gh pr create --title "feat: add dark mode" --body "..." |
| GitLab | glab mr create --title "feat: add dark mode" --description "..." |
コメント
Markdown 対応