conventional-commits
Conventional Commits 1.0.0 に準拠した日本語コミットメッセージを作成します。タイプ(feat/fix/docs/style/refactor/perf/test/build/ci/chore)の選択、スコープの設定、破壊的変更の記載を行います。git commit を行う際、コミットメッセージの作成を依頼されたとき、変更内容を要約してコミットしたいときに使用してください。
When & Why to Use This Skill
This Claude skill automates the generation of standardized Git commit messages in Japanese, strictly adhering to the Conventional Commits 1.0.0 specification. It streamlines the version control workflow by helping developers categorize changes (such as feat, fix, or refactor), define scopes, and clearly document breaking changes, ensuring a professional and searchable project history.
Use Cases
- Standardizing Team Workflows: Ensuring all contributors follow a consistent commit format to improve project readability and long-term maintainability.
- Automated Change Summarization: Quickly transforming complex code modifications into concise, structured Japanese commit messages during the 'git commit' process.
- Breaking Change Documentation: Explicitly identifying and describing breaking changes using the '!' suffix or footer notes to alert team members and automated systems.
- Changelog Automation: Creating structured commit logs that can be easily parsed by third-party tools to generate automated release notes and manage semantic versioning.
| name | conventional-commits |
|---|---|
| description | Conventional Commits 1.0.0 に準拠した日本語コミットメッセージを作成します。タイプ(feat/fix/docs/style/refactor/perf/test/build/ci/chore)の選択、スコープの設定、破壊的変更の記載を行います。git commit を行う際、コミットメッセージの作成を依頼されたとき、変更内容を要約してコミットしたいときに使用してください。 |
Conventional Commits for Obsidian LiveSync
Overview
このスキルは、Conventional Commits 1.0.0 仕様に準拠したコミットメッセージの作成を支援します。このプロジェクトでは日本語での説明文を標準としています。
Instructions
1. コミットメッセージの形式
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
2. タイプ一覧と使い分け
| タイプ | 用途 | 例 |
|---|---|---|
feat |
新機能の追加 | feat: Prometheus メトリクスエンドポイントを追加 |
fix |
バグ修正 | fix: CouchDB 接続タイムアウトのエラーハンドリングを修正 |
docs |
ドキュメント更新 | docs: README にセットアップ手順を追加 |
style |
コードフォーマット変更(機能に影響なし) | style: cargo fmt による整形 |
refactor |
リファクタリング(機能追加・バグ修正でない) | refactor: CouchDbClient のエラー処理を共通化 |
perf |
パフォーマンス改善 | perf: HTTP プロキシのバッファサイズを最適化 |
test |
テスト追加・修正 | test: LiveSyncService のユニットテストを追加 |
build |
ビルドシステム・依存関係の変更 | build: axum を 0.8.4 にアップデート |
ci |
CI 設定の変更 | ci: GitHub Actions にキャッシュを追加 |
chore |
その他の作業 | chore: .gitignore を更新 |
3. スコープの指定
スコープはオプションですが、変更箇所を明確にするために推奨されます。
推奨スコープ:
domain- ドメイン層application- アプリケーション層infrastructure- インフラ層web- Web インターフェースcouchdb- CouchDB クライアントconfig- 設定関連docker- Docker 関連backup- バックアップ機能
例:
feat(web): ヘルスチェックにバックオフ戦略を実装
fix(couchdb): longpoll リクエストのタイムアウト処理を改善
4. 日本語での説明文
このプロジェクトでは説明文を日本語で記載します。
良い例:
feat: HTTP リクエストのメトリクス収集を追加
リクエスト数、レスポンス時間、エラー率を Prometheus 形式で
エクスポートする機能を実装した。
避けるべき例:
feat: Add HTTP request metrics collection ← 英語は使用しない
5. 破壊的変更の記載
方法1: フッターに BREAKING CHANGE: を記載
feat(couchdb)!: CouchDbRepository トレイトを変更
BREAKING CHANGE: forward_request メソッドのシグネチャを変更。
クエリパラメータを Option<String> から Option<HashMap<String, String>> に変更。
方法2: タイプの後に ! を付与
refactor(domain)!: DomainError のバリアントを再構成
Examples
新機能追加
feat(web): ヘルスチェックエンドポイントを追加
/health エンドポイントで以下の情報を提供:
- サーバー稼働時間
- CouchDB 接続状態
- アプリケーションバージョン
バグ修正
fix(infrastructure): CouchDB 接続失敗時のパニックを修正
接続失敗時に unwrap() でパニックしていた問題を修正。
エラーをログに記録し、degraded 状態として継続するように変更。
Fixes #123
リファクタリング
refactor(application): LiveSyncService のエラーハンドリングを改善
- anyhow から thiserror ベースの DomainError に移行
- エラーメッセージをより詳細に
破壊的変更
feat(domain)!: CouchDbDocument の構造を変更
BREAKING CHANGE: data フィールドを serde_json::Value から
構造化された ContentData 型に変更。既存のドキュメント操作
コードの更新が必要。
複数の変更をまとめる場合
refactor: HTTP プロキシの構造を整理
- CouchDbClient から http_forward_request を分離
- エラーハンドリングを共通化
- longpoll リクエストの検出ロジックを改善
Reference
Conventional Commits 仕様
このプロジェクトのルール
- 説明文は日本語で記載
- スコープは推奨(必須ではない)
- 破壊的変更は必ず明記
- 関連 Issue がある場合は
Fixes #123でリンク
コミット前チェック
cargo fmt --all -- --check # フォーマット確認
cargo clippy -- -D warnings # リンター
cargo test --verbose # テスト実行