gitmoji について
差分、変更ファイル一覧、変更説明から簡潔な Gitmoji 形式のコミットメッセージを作成するスキルです。絵文字を 1 つ選び、Git コマンドを実行せずにコピー可能な文面を出力します。
主な機能
- 01変更意図に応じた絵文字選択
- 02差分と変更説明の分析
- 03任意のスコープ表記
- 04Unicode または shortcode のスタイル選択
- 05コピー可能なメッセージ出力
活用シーン
- 01ステージ済み差分からコミットメッセージを作成
- 02変更説明に合う絵文字の選択
- 03リポジトリ既存の絵文字スタイルへの適合
- 04見通しのよいコミット履歴の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill gitmojiインストール後、Claude Code で/gitmojiを入力して読み込まれたか確認します。
同梱ファイルreferences/gitmoji-reference.md
詳細
Gitmoji
gitmoji の規約に従ったコミットメッセージを生成します。各コミットは、変更の意図がひと目でわかる絵文字で始まります。差分、ステージ済みファイルの一覧、または変更内容の簡単な説明を受け取ると、このスキルは最も適切な gitmoji を1つ選び、それを使った簡潔で形式の整ったコミットメッセージを作成します。
このスキルが生成するのはメッセージのみです。git commit を実行したり、その他の git コマンドを実行したりすることはありません。出力されるメッセージは、ユーザーがコピーして使用できます。
このスキルを使用する場面
- ユーザーが「gitmoji 付きのコミットメッセージを書いて」「この変更を gitmoji で表して」「コミットメッセージに絵文字を追加して」と言った場合
- ユーザーが「これにはどの gitmoji を使えばいい?」と尋ねた場合
- gitmoji 形式のコミット履歴を採用しているプロジェクトの git diff を貼り付けたり、変更内容を説明したりした場合
- 絵文字を使って、表現力があり一覧しやすいコミット履歴にしたい場合
使用しない場面: プロジェクトが絵文字を使わない通常の Conventional Commits(feat:、fix: など)に従っている場合は、代わりに conventional-commit または commit-message-storyteller スキルを使用してください。プロジェクトで採用している規約が不明な場合は、最近のコミット履歴(たとえば、git log --oneline -10 の出力)を提示するようユーザーに尋ねてください。
メッセージ形式
gitmoji の仕様:
<intention> [scope?][:?] <message>
- intention — コミットの目的を表す gitmoji をちょうど1つ
- scope (任意) — 影響を受けるコードベースの領域。括弧で囲みます
- message — 変更内容を簡潔に命令形で説明します
例:
✨ add multi-tenant support to the billing service
🐛 (auth) prevent token refresh loop on expired sessions
♻️ (api): extract pagination logic into shared helper
絵文字のスタイル:Unicode とショートコード
Gitmoji は、同等の表記法を2種類サポートしています。
| スタイル | 例 | 使う場面 |
|---|---|---|
| Unicode | ✨ add dark mode | デフォルト。どこでも表示でき、件名を短くできます |
| ショートコード | :sparkles: add dark mode | ショートコードを表示できるプラットフォーム(GitHub、GitLab)や、コミットログをコードで検索するチーム |
リポジトリの既存の履歴に合わせてください。 最近のコミットで :sparkles: のようなショートコードが使われている場合は、ショートコードを生成してください。それ以外の場合は、デフォルトで Unicode の絵文字を使用してください。
仕組み
ステップ1:変更内容を把握する
ユーザーから提供された情報をもとに作業します。
- git diff — 差分を読み、何が、なぜ変更されたのかを特定します
- ステージ済み/変更済みファイルの一覧 — ファイル名やパスから意図を推測します
- 簡単な説明 — そのまま使用します
意図が本当に曖昧な場合(たとえば、「auth.js を更新した」だけでは修正、機能追加、リファクタリングのいずれとも判断できない場合)は、推測するのではなく、短い確認の質問を1つしてください。
ステップ2:主な意図を特定する
変更の主な目的を判断します。よくある意図と gitmoji は次のとおりです。
| 絵文字 | ショートコード | 意図 |
|---|---|---|
| ✨ | :sparkles: | 新機能の導入 |
| 🐛 | :bug: | バグの修正 |
| 🚑️ | :ambulance: | 緊急のホットフィックス |
| 📝 | :memo: | ドキュメントの追加または更新 |
| ♻️ | :recycle: | コードのリファクタリング(動作の変更なし) |
| ✅ | :white_check_mark: | テストの追加、更新、または合格 |
| ⚡️ | :zap: | パフォーマンスの改善 |
| 🎨 | :art: | コードの構造や書式の改善 |
| 🔥 | :fire: | コードやファイルの削除 |
| 🔒️ | :lock: | セキュリティまたはプライバシーの問題の修正 |
| ⬆️ | :arrow_up: | 依存関係のアップグレード |
| 🔧 | :wrench: | 設定ファイルの追加または更新 |
| 💄 | :lipstick: | UI やスタイルファイルの追加または更新 |
| 💥 | :boom: | 互換性を破壊する変更の導入 |
| 🚨 | :rotating_light: | コンパイラー/リンターの警告の修正 |
| 🌐 | :globe_with_meridians: | 国際化とローカライズ |
これはよく使われるものの一部にすぎません。どれを選ぶか決める前に、必ず references/gitmoji-reference.md を参照し、公式の gitmoji 全75種を確認してください。より具体的な絵文字が見つかることもよくあります(たとえば、軽微な修正には 🩹、誤字には ✏️、ファイルの移動には 🚚)。
Step 3: 絵文字を1つだけ選ぶ
判断が難しい場合のルール:
- 具体的なものを優先 — タイポの修正は 🐛 ではなく ✏️、ファイルの移動は ♻️ ではなく 🚚、重大ではない些細な修正は 🐛 ではなく 🩹 です
- テスト: テストの追加・更新が成功する場合は ✅、意図的に失敗させるテスト(例:TDD のレッドステップ)の場合のみ 🧪 です
- 修正と緊急修正: 🚑️ は緊急の本番環境の修正に限ります。通常のバグ修正には 🐛 を使います
- セキュリティ修正: バグがセキュリティ上の問題である場合は、🐛 より 🔒️ を優先します
- フォーマットのみの変更: コードの構造やフォーマットには 🎨、UI/スタイルファイル(CSS、テーマ)に限り 💄 を使います
- コミットごとに絵文字は1つ — 絵文字を重ねて使わないでください。2つの意図が同程度に強い場合は、下記の複合変更を参照してください
Step 4: メッセージを書く
- 命令形を使います:「add」「fix」「remove」など。「added」や「fixes」は使いません
- 件名は絵文字を含めて72文字未満にします
- 先頭は小文字にし、末尾にピリオドを付けません
- プロジェクトの履歴でスコープが使われている場合は、括弧内にスコープを追加します
- 件名だけでは 理由 が明らかでない場合に限り、空行を挟んで本文を追加します
Step 5: 出力する
コピー可能なコードブロック内にコミットメッセージを出力し、その後に、その gitmoji を選んだ理由を1行で説明します。git commit は実行しないでください。
出力例:
🐛 (auth) prevent token refresh loop on expired sessions
Expired sessions triggered a refresh that failed validation and
re-triggered itself, crashing the app. A recursion guard now aborts
the cycle and returns a clean 401.
🐛 を選んだ理由: この変更は実行時の誤った動作を修正するもので、緊急性のないバグ修正です。
例外的なケース
| 状況 | 対応方法 |
|---|---|
| 複合変更(例:1つの差分に機能追加とリファクタリングが含まれる) | 主な 意図に合った絵文字を選び、関連性のない内容は別々のコミットに分けることを提案します |
| 破壊的変更 | 意図を表す絵文字として 💥 を使い、本文で変更内容を説明します |
| 取り消し | ⏪️ を使い、取り消したコミットに触れる件名にします |
| マージコミット | 🔀 merge branch '<name>' into <target> |
| 初回コミット | 🎉 begin project |
| 作業中 | 🚧 を使い、残っている作業を明確に記します |
| 合う絵文字がない場合 | 完全なリファレンス を再確認します。それでも合うものがなければ、最も近い汎用的な意図(✨、🐛、♻️)を使います |
クイックリファレンス
# Get your staged diff to paste into Copilot
git diff --staged
# Check which emoji style the repo already uses
git log --oneline -10
gitmoji の公式リスト全体については、references/gitmoji-reference.md を参照してください。