# Commit

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

- Skill: `tomevault-io/commit-59` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/commit-59`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/commit-59/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/commit-59

---


# 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` を使用：

```
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）以外は、すべて日本語で記述すること

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

**フォーマット例:**

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

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

または

```
feat: 機能の説明（日本語）

- 実装内容の詳細
```

**チケットIDがある場合:**

```
refs #{チケットID} 機能の説明（日本語）

- 実装内容の詳細
```

**例:**

```
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を選択してください

## 典型的なワークフロー

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

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/nagasakah) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-14 -->

