| name | commit |
| description | Generate a commit message from staged changes and let the user review before committing. Use when the user wants to commit changes or create a git commit. |
| allowed-tools | AskUserQuestion, Bash(commit-prepare:*), Bash(git commit:*), Bash(konoka-commit-editor:*), Edit, Read, Write, Skill(commit-style) |
| model | opus |
| effort | medium |
Gitリポジトリの変更をコミットします。
AIがコミットメッセージを生成し、
ユーザが確認してからコミットします。
スタイルガイドラインの適用
Skillツールでcommit-styleスキルを呼び出し、
スタイルガイドラインに従ってください。
コミットメッセージファイルの生成
!commit-prepare
上の埋め込みコマンドが失敗した場合はエラーメッセージを報告してスキルを終了してください。
埋め込みコマンドはJSON形式で結果を出力します。
editmsgPathにはCOMMIT_EDITMSGファイルのパスが書かれています。
patchPathにはステージされた差分のパッチファイルのパスが書かれています。
コミットメッセージの内容の生成
ReadツールでpatchPathのパスのファイルを読み、
差分の内容を把握して分析し、
適切なコミットメッセージを生成してください。
WriteツールでeditmsgPathのファイルにコミットメッセージを書き込んでください。
コミットメッセージの確認
AskUserQuestionツールを使って、
生成したコミットメッセージの扱いをユーザに確認してください。
質問文にはコミットメッセージの全文を含めてください。
ユーザがメッセージの内容を見て判断できるようにするためです。
選択肢は以下の2つを設定してください。
- このままコミットする(Recommended): 生成されたメッセージをそのままコミットする。
- テキストエディタで編集する: エディタでコミットメッセージを編集してからコミットする。
AskUserQuestionツールはこれらに加えてOther(自由テキスト入力)の選択肢を自動的に追加します。
Otherが選ばれた場合はユーザがコミットメッセージの修正指示を入力したものとして扱います。
このままコミットする場合
一時ファイルに書き出したコミットメッセージをそのまま使用して、
コミットの実行に進んでください。
テキストエディタで編集する場合
以下のコマンドでユーザにコミットメッセージを編集してもらいます。
値は実際のファイルのパスに置き換えてください。
タイムアウトは最大の600秒(10分)に設定してください。
konoka-commit-editor <editmsgPathの値> <patchPathの値>
エディタが正常終了したら、
COMMIT_EDITMSGファイルをReadツールで読み直してください。
誤字があれば修正してファイルを上書きしてから、
コミットの実行に進んでください。
エディタが異常終了した場合、
ユーザがコミットをキャンセルしたいという意思表示であると解釈して、
コミット作業をキャンセルしてください。
Other(修正指示)の場合
ユーザの修正指示に従ってコミットメッセージを修正してください。
Editツールでコミットメッセージ部分のみを修正してください。
修正後にコミットメッセージの確認ステップに戻ってください。
選択がキャンセルされた場合
ユーザがコミットをキャンセルしたいという意思表示であると解釈して、
コミット作業をキャンセルしてください。
コミットの実行
以下のコマンドでコミットを実行してください。
値は実際のファイルのパスに置き換えてください。
git commit -F <editmsgPathの値>
完了報告
コミットが完了したら報告してください。