commitlint について
Commitlint は、コミットメッセージが Conventional Commits に準拠しているか確認するスキルです。プロジェクト設定を検出し、設定がなければデフォルトを使い、違反ルールと具体的な修正案を示します。
主な機能
- 01Conventional Commits 形式の確認
- 02プロジェクト固有設定の検出
- 03設定がない場合のデフォルト適用
- 04文字列・ファイル・最新コミットの検証
- 05違反内容と修正案の提示
活用シーン
- 01コミット前のメッセージ確認
- 02ファイル内のメッセージ検証
- 03最新の Git コミットの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rshade/ agent-skills --skill commitlintインストール後、Claude Code で/commitlintを入力して読み込まれたか確認します。
同梱ファイルevals/evals.jsonreferences/conventional-commits.md
詳細
Commitlint
コミットメッセージが Conventional Commits の仕様に準拠しているか検証します。 変更履歴の自動生成、セマンティックバージョニング、整理された git 履歴を実現します。
このスキルの機能
@commitlint/cliと@commitlint/config-conventionalが インストールされているか確認し、見つからない場合はインストールします。- プロジェクト固有の commitlint 設定を検出し、見つからない場合は適切なデフォルト設定を使用します。
- コミットメッセージのタイプ、スコープ、件名、本文、フッター の形式を検証します。
- 具体的な修正方法と例を添えてエラーを報告します。
インストールの確認
# Check if commitlint is available
npx commitlint --version 2>/dev/null
インストールされていない場合は、グローバルにインストールします。
npm install -g @commitlint/cli @commitlint/config-conventional
インストールに失敗した場合(権限がない、npm がないなど)は、検証を中止し、 対処方法とともに問題を報告します。
sudo npm install -g ...を使用するか、npm の権限を修正します- Node のバージョンマネージャー(nvm、volta、fnm)を使用します
- Node.js がインストールされていない場合は、インストールします
検証を黙ってスキップしてはいけません。
設定の検出優先順位
- プロジェクトルートの
commitlint.config.js - プロジェクトルートの
.commitlintrc.json - プロジェクトルートの
.commitlintrc.yaml - プロジェクトルートの
.commitlintrc package.jsonのcommitlintフィールド- デフォルト設定(
references/conventional-commits.mdを参照)
プロジェクト設定が存在しない場合は、検証の実行前に、参照ドキュメントのデフォルト設定を使用して
一時的な .commitlintrc.json を作成します。
検証ワークフロー
1. Check commitlint installation
├─ Installed → continue
└─ Missing → install, then continue (fail if install fails)
2. Detect project config
├─ Found → use it
└─ Not found → use default config from references/
3. Run validation
├─ From a string:
│ echo "<message>" | npx commitlint
├─ From a file:
│ cat <file> | npx commitlint
└─ From last git commit:
git log -1 --format=%B | npx commitlint
4. Report results
├─ Valid → confirm and proceed
└─ Invalid → show errors, suggest fixes, re-validate after correction
検証方法
コミットメッセージ文字列を検証する
echo "feat(api): add login endpoint" | npx commitlint
ファイルの内容を検証する
cat path/to/message-file.txt | npx commitlint
直近の git コミットを検証する
git log -1 --format=%B | npx commitlint
エラー処理
インストールの失敗
commitlint をインストールできない場合は、エラーを報告し、 対処方法を提示します。検証を続行してはいけません。
無効なメッセージ
検証に失敗した場合は、各エラーについて次の内容を報告します。
- 違反したルール(例:
type-enum、header-max-length) - 問題の内容(例:タイプ
featureは許可されていません) - 具体的な修正方法(例:代わりに
featを使用します)
例:
Validation failed:
1. type-enum: type 'feature' is not allowed
Allowed: feat, fix, docs, style, refactor, perf, test, build, ci,
chore, revert
Fix: use 'feat' instead of 'feature'
2. header-max-length: header is 72 characters (max 50)
Fix: shorten to 'feat: add user authentication with JWT'
エラーを報告した後、修正案を提示し、再検証します。
フォーマットのリファレンス
Conventional Commits のフォーマット仕様、タイプの説明、ルール、デフォルト設定、
例については、references/conventional-commits.md を参照してください。
コメント
Markdown 対応