mcpField
C
conventional-commit

conventional-commit

github.com/trancong12102開発757 回インストール6 週間前に更新
リポジトリ

conventional-commit について

Git の変更内容から Conventional Commits 形式のメッセージを作成するスキルです。開発者向けに、差分の確認、ファイルのステージ、種類とスコープの選択、コミットまでを案内し、無関係なコード変更を避けます。

主な機能

  1. 01Git の状態と差分の分析
  2. 02コミット種類とスコープの選択
  3. 03形式に沿ったメッセージの生成
  4. 04指定ファイルまたは全ファイルのステージ
  5. 05HEREDOC 形式でのコミット
  6. 06依頼のないプッシュや修正の回避

活用シーン

  1. 01コード変更を確認した後のコミット作成
  2. 02変更を機能、修正、保守作業に分類
  3. 03破壊的変更の説明や課題参照の追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/trancong12102/agentskills --skill conventional-commit

インストール後、Claude Code で/conventional-commitを入力して読み込まれたか確認します。

詳細

Conventional Commit Generator

Conventional Commits 1.0.0 に従ってコミットメッセージを生成します。

ワークフロー

  1. git status と git diff HEAD を実行して変更を分析します

  2. ファイルをステージングします。ユーザーが指定したファイルのみ、またはすべての場合は git add -A

  3. 変更内容からタイプとスコープを判断します

  4. ユーザーのヒントを反映してコミットメッセージを生成します

  5. 書式を保持するため、HEREDOC 形式でコミットします。

    git commit -m "$(cat <<'EOF'
    <type>(<scope>): <description>
    
    <body>
    
    <footer>
    EOF
    )"
    
  6. 出力:<hash> <subject>

適用範囲

実行すること: Git の変更を分析する、メッセージを生成する、ファイルをステージングする、コミットする

実行しないこと: コードを変更する、プッシュする(依頼された場合を除く)、ブランチを作成する、依頼なしにコミットを修正する

コミット形式

<type>[optional scope][!]: <description>

[optional body]

[optional footer(s)]

タイプの選択

変更内容タイプSemVer
新機能featMINOR
バグ修正fixPATCH
パフォーマンス改善perfPATCH
コードの再構成(動作の変更なし)refactor-
コードのスタイル/フォーマット(ロジックの変更なし)style-
テストの追加/更新test-
ドキュメントのみdocs-
ビルドシステム/依存関係build-
CI/CD の設定ci-
以前のコミットの取り消しrevert-
その他の保守タスクchore-

注: SemVer に影響するのは feat と fix のみです。破壊的変更(感嘆符を付けた任意のタイプ、または BREAKING CHANGE フッター)は MAJOR の変更となります。

件名行

  • 最大長: 72 文字(読みやすさを考慮した推奨は 50 文字)
  • 形式: type(scope): description または type: description
  • 語調: 命令形の現在形(「added」や「adds」ではなく「add」)
  • 大文字・小文字: 先頭は小文字
  • 句読点: 末尾にピリオドを付けない

スコープ

スコープは、コードベースのどの部分が影響を受けるかを示します。モジュール、コンポーネント、または領域を表す名詞を使用します。

一般的なスコープのパターン:

  • コンポーネント/モジュール:feat(auth):、fix(parser):、refactor(api):
  • ファイル/領域:docs(readme):、test(unit):、build(webpack):
  • 機能:feat(dark-mode):、fix(checkout):

本文

  • 件名との間に空行を 1 行入れます
  • 何を、なぜ行うのかを説明し、どのように行うかは説明しません
  • 複数の段落を含めることができます(段落間は空行で区切ります)
  • 72 文字で折り返します

フッター

フッターは、:<space> または <space># を区切り文字とする git trailer 形式に従います。

一般的なフッター:

  • BREAKING CHANGE: <description> - API の破壊的変更
  • Refs: #123 または Refs: JIRA-456 - 関連する課題への参照
  • Closes: #123 または Fixes: #123 - 課題をクローズする
  • Co-authored-by: Name <email> - 共同作成者を記載する
  • Reviewed-by: Name <email> - レビュアーを記載する
  • Acked-by: Name - 承認者を記載する

注: フッタートークンでは、スペースの代わりに - を使用します(例:Reviewed by ではなく Reviewed-by)。例外として、BREAKING CHANGE ではスペースを使用できます。

破壊的変更

破壊的変更を示す方法は 2 つあります(強調のため、両方を使用できます)。

  1. 感嘆符: 件名のコロンの前に感嘆符を追加します

    feat(api)!: remove deprecated endpoints
    
  2. フッター: フッターに BREAKING CHANGE: または BREAKING-CHANGE: を追加します

    feat(api): redesign authentication flow
    
    BREAKING CHANGE: OAuth tokens now expire after 1 hour instead of 24 hours.
    

例

シンプルな機能:

feat: add email notifications for new messages

スコープ付きのバグ修正:

fix(cart): prevent ordering with empty shopping cart

ドキュメントの更新:

docs(api): add authentication examples to README

本文とフッターを含む破壊的変更:

feat(api)!: redesign user authentication endpoints

Migrate from session-based auth to JWT tokens for better scalability.
The new system supports refresh tokens and configurable expiration.

BREAKING CHANGE: /api/login now returns JWT instead of session cookie.
Clients must include Authorization header with Bearer token.
Refs: JIRA-1337

コミットの取り消し:

revert: let us never again speak of the noodle incident

Refs: 676104e, a215868

複数のスコープにまたがる変更(最も重要なものを使用):

feat(auth): add OAuth2 support with Google provider

Adds Google OAuth2 login flow with automatic account linking.

Co-authored-by: Jane Doe <[email protected]>
Closes: #42

アンチパターン

よくある次の間違いを避けてください。

悪い例良い例理由
Update codefix(auth): validate token expiration具体的に記述する
Fixed bugfix: prevent null pointer in parser現在形を使う
WIPWIP のコミットは避ける完了した単位でコミットする
Add feature.feat: add dark mode toggle末尾にピリオドを付けない
Added teststest: add unit tests for parser命令形を使う
FEAT: Add...feat: add...種別は小文字にする
misc changeschore: update dependencies内容を具体的に記述する

コメント