AgentSkillsCN

commit

确认经过阶段性变更的代码,并通过与 MCP 系统联动获取工单信息,生成并执行提交信息。“从分支名中自动提取工单 ID”,并可与 GitHub/GitLab/Jira/Redmine 等平台无缝对接。“提交”、“git commit”、“生成提交信息”、“提交变更”等短语均可触发此技能。

SKILL.md
--- frontmatter
name: commit
description: ステージされた変更を確認し、MCP連携でチケット情報を取得してコミットメッセージを生成・実行する。ブランチ名からチケットIDを自動抽出し、GitHub/GitLab/Jira/Redmineと連携可能。「コミット」「git commit」「コミットメッセージ作成」「変更をコミット」などのフレーズで発動。

Git Commit スキル

MCP連携を活用してチケット情報を取得し、適切なコミットメッセージを生成してコミットを実行します。

このスキルの目的

  1. チケット情報の自動取得 - ブランチ名からチケットIDを抽出し、MCPでチケット詳細を取得
  2. コミットメッセージの生成 - チケット情報と変更内容からコミットメッセージを自動生成
  3. コミット実行 - ユーザー確認なしにコミットを実行

処理フロー

以下の手順でコミットを実行してください。

1. 現在のブランチ名を取得

bash
git branch --show-current

2. ブランチ名からチケットIDを抽出

以下のパターンからチケットIDを抽出してください:

ブランチパターン抽出対象
feature/{チケットID}-*{チケットID} 部分
issue/{チケットID}-*{チケットID} 部分
bugfix/{チケットID}-*{チケットID} 部分
hotfix/{チケットID}-*{チケットID} 部分
fix/{チケットID}-*{チケットID} 部分

チケットIDの例:

  • GitHub/GitLab Issue: 123, 456
  • Jira: PROJ-123, ABC-456
  • Redmine: #123, 123

3. 利用可能なMCPを確認してチケット情報を取得

チケットIDのフォーマットに応じて、適切なMCPを使用してチケット情報を取得してください。

GitHub Issues(MCPが利用可能な場合)

チケットIDが数値のみの場合、GitHub MCPの github-mcp-server-issue_read を使用:

code
method: get
owner: {リポジトリオーナー}
repo: {リポジトリ名}
issue_number: {チケットID}

GitLab Issues(MCPが利用可能な場合)

GitLab MCPが利用可能な場合、該当するツールでIssue情報を取得してください。

Jira(Atlassian MCPが利用可能な場合)

チケットIDが PROJ-123 形式の場合、Atlassian/Jira MCPを使用してチケット情報を取得してください。

Redmine(Redmine MCPが利用可能な場合)

Redmine MCPが利用可能な場合、該当するツールでチケット情報を取得してください。

MCPが利用できない場合

ブランチ名から推測できる情報のみを使用してコミットメッセージを生成してください。

  • チケットID: ブランチ名から抽出したID
  • タイトル: ブランチ名のID以降の部分をタイトルとして使用(ハイフンをスペースに置換)

4. 変更内容を確認

bash
git status
git diff --cached --stat
git diff --cached

ステージングされていない変更がある場合は、ユーザーに確認してください。

5. コミットメッセージを日本語で生成

🚨 重要:コミットメッセージは必ず日本語で生成してください 🚨

絶対に英語でコミットメッセージを生成してはいけません。

  • サマリー行(1行目)は日本語で記述すること
  • 詳細説明(2行目以降)も日本語で記述すること
  • Conventional Commitsのプレフィックス(feat:, fix: など)を使用する場合でも、コロンの後は必ず日本語で記述すること
  • チケット参照(refs #123)以外は、すべて日本語で記述すること

変更内容から適切な日本語コミットメッセージを生成してください。

フォーマット例:

code
機能: コンポーネント名の説明

- 変更内容1
- 変更内容2
- 変更内容3

または

code
feat: 機能の説明(日本語)

- 実装内容の詳細

チケットIDがある場合:

code
refs #{チケットID} 機能の説明(日本語)

- 実装内容の詳細

例:

code
refs #123 ログイン機能の実装

- ログインフォームコンポーネントを追加
- 認証APIとの連携を実装
- バリデーション処理を追加

6. コミット実行

確認なしでコミットを実行:

bash
git commit -m "{生成したコミットメッセージ}"

リポジトリ情報の取得方法

GitHub/GitLabのリポジトリ情報は以下のコマンドで取得できます:

bash
git remote get-url origin

出力例からowner/repoを抽出:

  • https://github.com/owner/repo.git → owner: owner, repo: repo
  • git@github.com:owner/repo.git → owner: owner, repo: repo

注意事項

  • ステージングされた変更がない場合は、何をステージングするか確認してください
  • 🚨 コミットメッセージは必ず日本語を使用してください(英語は禁止)🚨
  • opus-parent-agentを含むすべてのエージェントは、日本語でコミットメッセージを生成する必要があります
  • 子エージェントにコミット作業を依頼する場合も、「コミットメッセージは必ず日本語で生成すること」を明確に指示してください
  • MCPが利用できない場合でも、ブランチ名から最低限の情報を抽出して処理を継続してください
  • 複数のチケットに関連する変更の場合は、ユーザーに確認して適切なチケットIDを選択してください

典型的なワークフロー

code
[ブランチ確認] --> ブランチ名からチケットID抽出
       |
[MCP確認] --> 利用可能なMCPでチケット情報取得
       |
[変更確認] --> git status/diff でステージング状態確認
       |
[メッセージ生成] --> チケット情報+変更内容で日本語コミットメッセージ作成
       |
[コミット実行] --> git commit 実行