conventional-commits について
Conventional Commits形式の構造化コミットメッセージを作成するための開発者向けガイドです。コミット種別とセマンティックバージョニング、変更履歴の生成、自動リリースの関係に加え、破壊的変更やAIの帰属表記も説明します。
主な機能
- 01種別に沿ったメッセージ形式
- 02コミット種別とバージョン変更の対応
- 03変更履歴とリリース自動化への活用
- 04破壊的変更と課題参照の記載
- 05AI支援の表記とsignoffの使用
活用シーン
- 01チームのGit履歴の形式統一
- 02コミットから変更履歴を生成
- 03コミット種別に応じたリリース実行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tigrisdata/ skills --skill conventional-commitsインストール後、Claude Code で/conventional-commitsを入力して読み込まれたか確認します。
同梱ファイルmetadata.jsonREADME.md
詳細
Conventional Commits
バージョン管理における、明確で読みやすいプロジェクト履歴を実現するための構造化されたコミットメッセージ形式です。
概要
Conventional Commits の仕様には、次のような利点があります。
- 変更履歴の自動生成 - ツールでコミットを解析し、CHANGELOG.md を生成できます
- セマンティックバージョニング - コミットの種類がバージョンの更新幅に対応します(feat → minor、breaking → major)
- 明確なプロジェクト履歴 - 標準化された形式により、git log が読みやすくなります
- リリースの自動化 - CI/CD でコミットの種類に基づいてリリースを開始できます
クイックリファレンス
| Type | Use For | Version Bump |
|---|---|---|
feat | 新機能 | MINOR |
fix | バグ修正 | PATCH |
docs | ドキュメントのみ | PATCH |
style | フォーマット変更、ロジックの変更なし | PATCH |
refactor | コードの再構成、動作の変更なし | PATCH |
perf | パフォーマンスの改善 | PATCH |
test | テストの追加または更新 | PATCH |
build | ビルドシステムまたは依存関係 | PATCH |
ci | CI/CD の設定 | PATCH |
chore | 保守作業、ユーザー向けの変更なし | PATCH |
revert | 以前のコミットを取り消す | PATCH |
形式
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
ルール:
- 種類は必須です
- スコープは任意です。影響を受けるセクションを括弧で指定します:(api)、(auth)、(parser)
- 説明は必須です
- 説明は簡潔にし、命令形、小文字で記述し、末尾にピリオドを付けません
- 本文とフッターは任意です
- 件名と本文の間は空行で区切ります
- 本文は72文字で折り返します
例
feat: add user authentication
Implement JWT-based authentication with login/logout endpoints.
Includes password hashing and session management.
Closes: #123
fix(api): handle null response from server
Previous implementation crashed when server returned null.
Now returns empty result set.
Assisted-by: GLM 4.6 via Claude Code
feat(storage)!: change bucket listing API
BREAKING CHANGE: bucket list now returns async iterator
instead of array. Update all callers to use for-await.
refactor(core): simplify error handling
Consolidate duplicate error handlers into single utility.
No behavior changes - internal cleanup only.
revert: feat(auth): add OAuth support
This reverts commit 8b5a1c2. OAuth provider changed
their API and we need to redesign integration.
破壊的変更
破壊的変更は、次の2つの方法で示します。
方法1:種類/スコープの後に ! を追加します
feat(api)!: remove deprecated endpoint
方法2:フッターに BREAKING CHANGE: を追加します
feat(api): remove deprecated endpoint
BREAKING CHANGE: endpoint no longer exists. Use newEndpoint instead.
AI の帰属表示
AI エージェントの支援を受けた場合は、コミットのフッターにその旨を明記する必要があります。
Assisted-by: [Model Name] via [Tool Name]
例:
Assisted-by: GLM 4.6 via Claude CodeAssisted-by: Claude Opus 4.5 via claude.ai
よくある間違い
| Mistake | Why Wrong | Correct |
|---|---|---|
Added login feature | 過去形で、大文字が使われています | feat: add login feature |
fix bug. | 末尾にピリオドがあります | fix: resolve login error |
update | 種類がありません | chore: update dependencies |
feature:add-auth | コロンの後にスペースがありません | feat: add authentication |
FEAT: big change | 種類が大文字です | feat: add authentication |
| 複数行の説明で空行がない | 区切りがありません | 件名の後に空行を追加します |
本文のガイドライン
- 内容:変更の動機(コードコメントでは「どのように」を説明します)
- 対比:「なぜ」と「何を」を説明し、コードの詳細は記述しません
- git log で読みやすくなるよう、72文字で折り返します
feat(summarization): add support for nested bullet points
Previous implementation only flattened all content. Now preserves
hierarchy by respecting indentation levels. Users can now create
structured summaries with parent-child relationships.
Closes: #456
フッターのガイドライン
フッターは次の用途で使用します。
- 破壊的変更:
BREAKING CHANGE: detailed explanation - Issue の参照:
Closes: #123、Fixes: #456、Refs: #789 - AI の帰属表示:
Assisted-by: Model via Tool
複数のフッターは空行で区切ります。
feat: add batch upload
Implements multipart upload for large files.
BREAKING CHANGE: upload() signature changed - now requires options object
Closes: #123
Assisted-by: GLM 4.6 via Claude Code
Git のコミットフラグ
必須フラグ: コミット時には必ず --signoff を使用します。
git commit --signoff -m "feat: add user authentication"
--signoff フラグを指定すると、コミットメッセージに Signed-off-by トレーラーが追加され、コミッターがそのコミットについて developer certificate of origin(DCO)に準拠していることを証明したと示されます。
コミットのテスト
コミットする前に、次の項目を確認してください。
- 許可されたリストから種類を選んでいる
- 説明が命令形になっている(add、fix、update)
- 説明が小文字になっている
- 説明の末尾にピリオドがない
- 破壊的変更に
!またはフッターを付けている - 該当する場合、AI の帰属表示を含めている
- 本文で「どのように」ではなく「なぜ」を説明している
-
--signoffフラグを使用している
コメント
Markdown 対応