git-commit-pro
変更内容を解析し、Conventional Commitsという標準に沿った、構造的で分かりやすいgitのコミットメッセージを自動で作成し、変更のコミットやメッセージ改善を支援するSkill。
📜 元の英語説明(参考)
Write well-structured git commit messages following the Conventional Commits standard. Use when a user asks to commit changes, write a commit message, stage and commit, improve a commit message, or follow commit conventions. Analyzes diffs to produce accurate, meaningful commit messages.
🇯🇵 日本人クリエイター向け解説
変更内容を解析し、Conventional Commitsという標準に沿った、構造的で分かりやすいgitのコミットメッセージを自動で作成し、変更のコミットやメッセージ改善を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o git-commit-pro.zip https://jpskill.com/download/14941.zip && unzip -o git-commit-pro.zip && rm git-commit-pro.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14941.zip -OutFile "$d\git-commit-pro.zip"; Expand-Archive "$d\git-commit-pro.zip" -DestinationPath $d -Force; ri "$d\git-commit-pro.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
git-commit-pro.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
git-commit-proフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Git Commit Pro
概要
ステージされた変更を分析して、構造化された Git コミットメッセージを生成します。Conventional Commits 形式に従い、何が変更されたのか、そしてその理由を説明するメッセージを作成します。
手順
ユーザーからコミット、コミットメッセージの作成、または既存のコミットメッセージの改善を依頼された場合は、次の手順に従ってください。
ステップ 1: 変更の確認
# ステージされているものを確認
git diff --cached --stat
# ステージされた差分の全体を確認
git diff --cached
# ステージされていない変更を確認 (ユーザーが最初にステージしたい場合に備えて)
git status
何もステージされていない場合は、まず適切なファイルをステージするようユーザーを支援します。ユーザーが明示的に要求しない限り、git add . は決して使用しないでください。特定のファイルを追加することを推奨します。
ステップ 2: 差分の分析
何が変更されたかを分類します。
- 新規ファイル: どのような機能を追加しますか?
- 変更されたファイル: どのような動作が変更されましたか?なぜですか?
- 削除されたファイル: 何が削除され、なぜですか?
- 名前が変更/移動されたファイル: どのような再構築が行われましたか?
ファイル名だけでなく、実際のコードの変更を確認してください。変更の背後にある意図を理解してください。
ステップ 3: コミットメッセージの作成
Conventional Commits 形式を使用します。
type(scope): 短い説明
変更内容とその理由に関するより詳細な説明。72文字で折り返してください。
問題またはチケットを参照してください。
Co-Authored-By: 該当する場合
種類:
feat: 新しい機能または能力fix: バグ修正docs: ドキュメントのみstyle: フォーマット、セミコロン、空白 (ロジックの変更なし)refactor: 動作の変更なしにコードを再構築perf: パフォーマンスの改善test: テストの追加または更新build: ビルドシステムまたは依存関係の変更ci: CI/CD 構成の変更chore: メンテナンス作業、ツール更新
件名行のルール:
- 命令形を使用する ("add" であり "added" や "adds" ではない)
- コロンの後の最初の単語を大文字にしない
- 末尾にピリオドを付けない
- 72文字未満に保つ
- スコープはオプションですが役立ちます (例:
feat(auth):,fix(api):)
本文のルール:
- 件名と本文の間には空白行を入れる
- HOW (どのように) ではなく、WHAT (何を) と WHY (なぜ) を説明する (差分が HOW を示します)
- 72文字で折り返す
- 複数の変更には箇条書きを使用する
- issue 番号を参照する:
Fixes #123,Closes #456
ステップ 4: コミットの実行
git commit -m "$(cat <<'EOF'
type(scope): 件名行をここに
変更を説明する本文の段落。
EOF
)"
ステップ 5: 検証
git log --oneline -1
git status
コミットが作成され、ワーキングツリーが期待される状態にあることを確認します。
例
例 1: 機能の追加
ステージされた変更: 新しい auth/ ディレクトリに、ログイン、登録、およびミドルウェアファイルがあります。
コミットメッセージ:
feat(auth): JWT によるユーザー認証を追加
JWT ベースのセッション管理でログインおよび登録エンドポイントを実装します。以下を含みます:
- email/password を使用した POST /auth/login
- バリデーションを使用した POST /auth/register
- 保護されたルート用の認証ミドルウェア
- トークンリフレッシュエンドポイント
Closes #42
例 2: バグ修正
ステージされた変更: 変更された src/utils/date.ts -- formatDate() でのタイムゾーン処理を変更しました。
コミットメッセージ:
fix(utils): 日付フォーマットのタイムゾーンオフセットを修正
formatDate() は UTC オフセットを間違った方向に適用していたため、
負の UTC タイムゾーン (アメリカ大陸) のユーザーの場合、日付が 1 日遅れて表示されていました。
オフセットは、追加されるのではなく減算されるようになりました。
Fixes #187
例 3: 複数の小さな変更
ステージされた変更: README を更新し、.env.example を追加し、構成ファイルのタイプミスを修正しました。
コミットメッセージ:
chore: プロジェクトセットアップドキュメントを更新
- 必要な環境変数を含む .env.example を追加
- 新しいセットアップ手順で README を更新
- webpack.config.js コメントのタイプミスを修正
ガイドライン
- 論理的な変更ごとに 1 つのコミット。差分に関係のない変更が含まれている場合は、複数のコミットに分割することをお勧めします。
- 「ファイルを更新」や「修正」のような一般的なメッセージは決して書かないでください。すべてのコミットは、差分を見なくても理解できる必要があります。
- ユーザーのリポジトリに既存のコミット規約がある場合 (
git logで最近のものを確認)、Conventional Commits の代わりにそのスタイルに合わせてください。 - 大きな差分の場合、件名を主要な変更に焦点を当て、本文を二次的な変更に使用します。
- 差分に生成されたファイル (ロックファイル、ビルドアーティファクト) が含まれている場合は、それらについて簡単に言及しますが、ソースの変更に焦点を当てます。
- 修正する場合は、必ず最初にユーザーに確認してください。修正は履歴を書き換え、共有ブランチで問題を引き起こす可能性があります。
- 変更が大きすぎるか、単一の良いコミットメッセージに焦点を当てることができない場合は、ユーザーに伝え、分割する方法を提案します。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Git Commit Pro
Overview
Generate well-structured git commit messages by analyzing staged changes. Follows Conventional Commits format and produces messages that explain what changed and why.
Instructions
When a user asks you to commit, write a commit message, or improve an existing commit message, follow these steps:
Step 1: Inspect the changes
# See what is staged
git diff --cached --stat
# See full staged diff
git diff --cached
# See unstaged changes (in case user wants to stage first)
git status
If nothing is staged, help the user stage the right files first. Never use git add . unless the user explicitly asks -- prefer adding specific files.
Step 2: Analyze the diff
Categorize what changed:
- New files: What functionality do they add?
- Modified files: What behavior changed? Why?
- Deleted files: What was removed and why?
- Renamed/moved files: What restructuring happened?
Look at the actual code changes, not just file names. Understand the intent behind the changes.
Step 3: Write the commit message
Use Conventional Commits format:
type(scope): short description
Longer explanation of what changed and why. Wrap at 72 characters.
Reference any issues or tickets.
Co-Authored-By: if applicable
Types:
feat: New feature or capabilityfix: Bug fixdocs: Documentation onlystyle: Formatting, semicolons, whitespace (no logic change)refactor: Code restructuring without behavior changeperf: Performance improvementtest: Adding or updating testsbuild: Build system or dependency changesci: CI/CD configuration changeschore: Maintenance tasks, tooling updates
Rules for the subject line:
- Use imperative mood ("add" not "added" or "adds")
- Do not capitalize the first word after the colon
- No period at the end
- Keep under 72 characters
- Scope is optional but helpful (e.g.,
feat(auth):,fix(api):)
Rules for the body:
- Separate from subject with a blank line
- Explain WHAT and WHY, not HOW (the diff shows how)
- Wrap at 72 characters
- Use bullet points for multiple changes
- Reference issue numbers:
Fixes #123,Closes #456
Step 4: Execute the commit
git commit -m "$(cat <<'EOF'
type(scope): subject line here
Body paragraph explaining the change.
EOF
)"
Step 5: Verify
git log --oneline -1
git status
Confirm the commit was created and the working tree is in the expected state.
Examples
Example 1: Feature addition
Staged changes: New auth/ directory with login, register, and middleware files.
Commit message:
feat(auth): add user authentication with JWT
Implement login and registration endpoints with JWT-based session
management. Includes:
- POST /auth/login with email/password
- POST /auth/register with validation
- Auth middleware for protected routes
- Token refresh endpoint
Closes #42
Example 2: Bug fix
Staged changes: Modified src/utils/date.ts -- changed timezone handling in formatDate().
Commit message:
fix(utils): correct timezone offset in date formatting
formatDate() was applying the UTC offset in the wrong direction,
causing dates to display one day behind for users in negative UTC
timezones (Americas). The offset is now subtracted instead of added.
Fixes #187
Example 3: Multiple small changes
Staged changes: Updated README, added a .env.example, fixed a typo in a config file.
Commit message:
chore: update project setup documentation
- Add .env.example with required environment variables
- Update README with new setup instructions
- Fix typo in webpack.config.js comment
Guidelines
- One commit per logical change. If the diff contains unrelated changes, suggest splitting into multiple commits.
- Never write generic messages like "update files" or "fix stuff." Every commit should be understandable without looking at the diff.
- If the user has an existing commit convention in their repo (check recent
git log), match that style instead of Conventional Commits. - For large diffs, focus the subject on the primary change and use the body for secondary changes.
- If the diff includes generated files (lockfiles, build artifacts), mention them briefly but focus on the source changes.
- When amending, always confirm with the user first. Amending rewrites history and can cause issues for shared branches.
- If the changes are too large or unfocused for a single good commit message, tell the user and suggest how to split them.