mcpField
G
gitmoji

gitmoji

github.com/github開発40.5k49 回インストール1 日前に更新
リポジトリ

gitmoji について

差分、変更ファイル一覧、変更説明から簡潔な Gitmoji 形式のコミットメッセージを作成するスキルです。絵文字を 1 つ選び、Git コマンドを実行せずにコピー可能な文面を出力します。

主な機能

  1. 01変更意図に応じた絵文字選択
  2. 02差分と変更説明の分析
  3. 03任意のスコープ表記
  4. 04Unicode または shortcode のスタイル選択
  5. 05コピー可能なメッセージ出力

活用シーン

  1. 01ステージ済み差分からコミットメッセージを作成
  2. 02変更説明に合う絵文字の選択
  3. 03リポジトリ既存の絵文字スタイルへの適合
  4. 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:変更内容を把握する

ユーザーから提供された情報をもとに作業します。

  1. git diff — 差分を読み、何が、なぜ変更されたのかを特定します
  2. ステージ済み/変更済みファイルの一覧 — ファイル名やパスから意図を推測します
  3. 簡単な説明 — そのまま使用します

意図が本当に曖昧な場合(たとえば、「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 を参照してください。

コメント