Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ステージングされた変更からコミットメッセージを生成する。「コミットメッセージ考えて」「良いメッセージ生成して」「commit message を作って」「適切なコミットメッセージは?」「メッセージを提案して」「コミット文を書いて」「変更内容をメッセージに」などで起動。プロジェクト規約を自動検出し、適切なメッセージを提案。
.claude/skills/wasabeef-14fe3f/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-22 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 120% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 129% | 0% |
| case-01 | ✓→✗ | ▼ Worse | 6% | 0% |
| case-02 | ✓→✗ | ▼ Worse | 31% | 0% |
ステージングされた変更 (git diff --staged) から適切なコミットメッセージを生成します。git コマンドの実行は行わず、メッセージの生成とクリップボードへのコピーのみを行います。
bash/commit-message [オプション]
--format <形式> : メッセージ形式を指定 (conventional, gitmoji, angular)--lang <言語> : メッセージ言語を強制指定 (en, ja)--breaking : Breaking Change の検出と記載bash# ステージングされた変更からメッセージ生成 (言語自動判定) # メイン候補が自動的にクリップボードにコピーされます /commit-message # 言語を強制的に指定 /commit-message --lang ja /commit-message --lang en # Breaking Change を検出 /commit-message --breaking
重要: このコマンドはステージングされた変更のみを分析します。事前に git add で変更をステージングしておく必要があります。
bash# ステージングされていない場合は警告が表示されます $ /commit-message ステージングされた変更がありません。先に git add を実行してください。
生成されたメイン候補は git commit -m "メッセージ" の完全な形式で自動的にクリップボードにコピーされます。ターミナルでそのまま貼り付けて実行できます。
実装時の注意:
pbcopy に渡す際は、メッセージ出力とは別プロセスで実行することecho の代わりに printf を使用して末尾の改行を避けること重要: プロジェクト独自の規約が存在する場合は、それを優先します。
以下のファイルから設定を自動検出:
commitlint.config.jscommitlint.config.mjscommitlint.config.cjscommitlint.config.ts.commitlintrc.js.commitlintrc.json.commitlintrc.yml.commitlintrc.yamlpackage.json の commitlint セクションbash# 設定ファイルの検索 find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
プロジェクト独自のタイプ例:
javascript// commitlint.config.mjs export default { extends: ["@commitlint/config-conventional"], rules: { "type-enum": [ 2, "always", [ "feat", "fix", "docs", "style", "refactor", "test", "chore", "wip", // 作業中 "hotfix", // 緊急修正 "release", // リリース "deps", // 依存関係更新 "config", // 設定変更 ], ], }, };
javascript// プロジェクトが日本語メッセージを使用する場合 export default { rules: { "subject-case": [0], // 日本語対応のため無効化 "subject-max-length": [2, "always", 72], // 日本語は文字数制限を調整 }, };
bash# 最近のコミットから使用パターンを学習 git log --oneline -50 --pretty=format:"%s" # 使用タイプ統計 git log --oneline -100 --pretty=format:"%s" | \ grep -oE '^[a-z]+(\([^)]+\))?' | \ sort | uniq -c | sort -nr
以下の条件で自動的に日本語/英語を切り替えます:
デフォルトは英語。日本語プロジェクトと判定された場合は日本語で生成。
text<type>: <description>
重要: 必ず 1 行のコミットメッセージを生成します。複数行のメッセージは生成しません。
注意: プロジェクト独自の規約がある場合は、それを優先します。
必須タイプ:
feat: 新機能 (ユーザーに見える機能追加)fix: バグ修正任意タイプ:
build: ビルドシステムや外部依存関係の変更chore: その他の変更 (リリースに影響しない)ci: CI 設定ファイルやスクリプトの変更docs: ドキュメントのみの変更style: コードの意味に影響しない変更 (空白、フォーマット、セミコロンなど)refactor: バグ修正や機能追加を伴わないコード変更perf: パフォーマンス改善test: テストの追加や修正bash$ /commit-message 📝 コミットメッセージ提案 ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ メイン候補: feat: implement JWT-based authentication system 📋 代替案: 1. feat: add user authentication with JWT tokens 2. fix: resolve token validation error in auth middleware 3. refactor: extract auth logic into separate module ✅ `git commit -m "feat: implement JWT-based authentication system"` をクリップボードにコピーしました
実装例 (修正版):
bash# コミットコマンドを先にクリップボードにコピー (改行なし) printf 'git commit -m "%s"' "$COMMIT_MESSAGE" | pbcopy # その後でメッセージを表示 cat << EOF 📝 コミットメッセージ提案 ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ メイン候補: $COMMIT_MESSAGE 📋 代替案: 1. ... 2. ... 3. ... ✅ \`git commit -m "$COMMIT_MESSAGE"\` をクリップボードにコピーしました EOF
bash$ /commit-message 📝 コミットメッセージ提案 ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ メイン候補: feat: JWT 認証システムを実装 📋 代替案: 1. feat: JWT トークンによるユーザー認証を追加 2. fix: 認証ミドルウェアのトークン検証エラーを解決 3. docs: 認証ロジックを別モジュールに分離 ✅ `git commit -m "feat: JWT 認証システムを実装"` をクリップボードにコピーしました
git diff --staged の内容を分析注意: このコマンドは git add や git commit を実行しません。コミットメッセージの生成とクリップボードへのコピーのみを行います。
featfixtestchoredocs.gitmessage ファイルCONTRIBUTING.md 内の規約bash# 判定基準 (優先順位) 1. git diff --staged の内容から言語を判定 2. ステージングされたファイルのコメント分析 3. git log --oneline -20 の言語分析 4. プロジェクトのメイン言語設定
分析に使用する情報 (読み取りのみ):
git diff --staged --name-only - 変更ファイル一覧git diff --staged - 実際の変更内容git status --porcelain - ファイル状態API の破壊的変更がある場合:
英語:
bashfeat!: change user API response format BREAKING CHANGE: user response now includes additional metadata
または
bashfeat(api)!: change authentication flow
日本語:
bashfeat!: ユーザー API レスポンス形式を変更 BREAKING CHANGE: レスポンスに追加のメタデータが含まれるようになりました
または
bashfeat(api)!: 認証フローを変更
英語:
textfeat: add user registration endpoint fix: resolve memory leak in cache manager docs: update API documentation
日本語:
textfeat: ユーザー登録エンドポイントを追加 fix: キャッシュマネージャーのメモリリークを解決 docs: API ドキュメントを更新
bash# ステージングされた変更と組み合わせて使用 git add -p # インタラクティブにステージング /commit-message 「最適なコミットメッセージを生成して」 # 特定のファイルだけステージングして分析 git add src/auth/*.js /commit-message --lang en 「認証関連の変更に適したメッセージを生成して」 # Breaking Change の検出と対応 git add -A /commit-message --breaking 「破壊的変更がある場合は適切にマークして」
git add でステージングされている必要がありますOther measured skills in the registry, with their headline benchmark lift.