# komitto(コミット)

`git diff`の情報から、セマンティックな日本語のコミットメッセージプロンプトを生成するためのCLIツールです。生成されたプロンプトは自動的にクリップボードにコピーされ、LLMに貼り付けることで、コミットメッセージを作成できます。

## 主な機能

- ステージングされた変更（`git diff --staged`）を解析
- 変更内容をLLMが理解しやすいXML形式に変換
- コミットメッセージ生成用のシステムプロンプトと結合
- 生成された最終的なプロンプトをクリップボードにコピー
- 変更に関する追加のコンテキスト（補足情報）をコマンドライン引数で付与する機能

## インストール

```bash
pip install .
```

もし開発用にインストールする場合は、以下のコマンドを使用してください。

```bash
pip install -e .
```

## 使い方

1.  リポジトリで変更を行い、`git add`でファイルをステージングします。

    ```bash
    git add <変更したファイル>
    ```

2.  `komitto`コマンドを実行します。

    ```bash
    komitto
    ```

3.  `✅ プロンプトをクリップボードにコピーしました！` と表示されたら、お使いのLLMのインターフェースにプロンプトを貼り付けてください。

### 追加コンテキストを渡す

変更の意図や特記事項など、プロンプトに含めたい補足情報がある場合は、引数として渡すことができます。

```bash
komitto "この変更は緊急のバグ修正です"
```

## 仕組み

1.  `git diff --staged` を実行し、ステージングされたファイルの差分を取得します。
2.  差分情報を、ファイルパス、関数/クラス名、変更の種類（追加、修正、削除）などを含む構造化されたXML形式に変換します。
3.  あらかじめ定義されたシステムプロンプト、ユーザーが指定した追加コンテキスト、XML形式の差分情報を結合して、最終的なプロンプTプを生成します。
4.  生成されたプロンプトをクリップボードにコピーします。