conventional-commits について
Conventional Commits形式のコミットメッセージとPRタイトルを作成するスキルです。変更の分割やステージング、書式ルールを案内し、`cog verify`による検証方法も示します。
主な機能
- 01コミットとPRタイトルの書式化
- 02使用可能なコミットタイプの一覧
- 03変更のステージングと分割の案内
- 04件名とフッターのルール
- 05`cog verify`による検証
活用シーン
- 01形式に沿ったコミットメッセージの作成
- 02Conventional Commits形式のPRタイトル準備
- 03複数の変更を分けてステージング
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ marcioaltoe/ skills --skill conventional-commitsインストール後、Claude Code で/conventional-commitsを入力して読み込まれたか確認します。
同梱ファイルreferences/commit-message-template.md
詳細
Conventional Commits
レビューしやすく、cog verify に合格するコミットと PR タイトルを作成します。
必須形式
Conventional Commits を使用します。
type(scope): imperative subject
スコープは省略できます。
fix: handle empty setup files
feat(setups): add rust CLI preset
docs(readme): clarify setup install commands
使用できるタイプ
feat- ユーザー向けの機能または能力fix- バグ修正refactor- 動作を変えないコード変更docs- ドキュメントのみの変更test- テストのみの変更chore- 実行時の動作に影響しないメンテナンスbuild- ビルドツール、依存関係、またはパッケージングci- CI ワークフローの変更perf- パフォーマンスの改善style- 書式のみの変更。UI の見た目の変更は含みませんrevert- 以前の変更の取り消し
件名のルール
- 命令形を使います。
add、fix、remove、renameを使い、added、fixed、removesは使いません。 - コロンの後は小文字で始めます。
- 末尾にピリオドを付けません。
- 可能であれば、1 行目を 72 文字未満にします。
- ファイル名ではなく、変更の意図を説明します。
コミットのワークフロー
-
作業ツリーを確認します。
git status --shortgit diff --statgit diff
-
コミットの境界を決めます。
- 関連のない変更は別々のコミットに分けます。
- 動作、テスト、ドキュメント、書式、依存関係、生成ファイルの変更は、個別にレビューできる場合、それぞれ分けます。
- 1 つのファイルに異なる種類の変更が混在している場合は、パッチステージングを使います。
-
意図した変更のみをステージングします。
- ファイル単位で分けられる場合は
git add <path>を使います。 - 変更箇所が混在している場合は
git add -pを使います。 git diff --cachedでステージングした内容を確認します。
- ファイル単位で分けられる場合は
-
メッセージを作成します。
- 使用できるリストからタイプを選びます。
- レビューに役立つ場合はスコープを追加します。通常はパッケージ、モジュール、コレクション、または機能を指定します。
- 理由が明らかでない場合にのみ本文を追加します。
BREAKING CHANGE:、Refs #123、Closes #123にはフッターを使います。
-
Cocogitto を利用できる場合は検証します。
cog verify "$(git log -1 --pretty=%B)"- タイトル案の場合:
cog verify "$PR_TITLE"
-
コミットする前に、関連する最小限の検証を実行するか、リポジトリで必須の検証コマンドが定められている場合はそれを使います。
PR タイトルのルール
スカッシュマージでは PR タイトルが最終的なコミットメッセージとして使われることが多いため、PR タイトルにも Conventional Commits を使用する必要があります。
PR を作成または編集する前に:
PR_TITLE='feat(setups): add Go CLI preset'
cog verify "$PR_TITLE"
cog がインストールされていない場合も、正確な Conventional Commit 形式でタイトルを作成し、CI による検証を想定してください。
例
良い例:
feat(auth): add token refresh flow
本文を含む良い例:
fix(cli): handle empty setup files
The installer previously treated an empty setup file as a successful install.
This now fails early with a clear error.
悪い例:
update files
悪い例:
fix: change setup line 42
出力
コミットを依頼された場合は、次の内容を報告します。
- 選択したコミットの境界
- 各コミットでステージングしたファイル
- 最終的なコミットメッセージ
- 検証コマンドと結果
コメント
Markdown 対応