| name | x-commit |
| description | Gitコミットを適切な粒度に分割し、有用なメッセージを付けて作成するスキル。「コミットして」「commitして」「変更をコミット」「まとめてコミット」など、コミット操作を依頼されたら必ず使う。 |
| allowed-tools | ["Bash","TaskCreate","TaskUpdate","TaskList"] |
x-commit
Gitコミットを論理単位の粒度で「人とAIに有用なメッセージ」を付けて作成するスキルです。履歴を読む人(自分・他人・AI)にとって価値のある情報だけを残します。
メッセージ作成(現状把握・規約確定・「なぜ」収集・計画提案)はcommit-message-writerサブエージェントに委譲し、このスキルは承認受領と実行(副作用)だけを担当します。
タスク登録
フローを開始する前に、全ステップをTaskCreateで登録します。各ステップを開始するときTaskUpdateでin_progressへ、完了したときcompletedへ更新します。
| # | subject | blockedBy |
|---|
| 1 | Step 1: commit-message-writerでコミット計画を作成する | — |
| 2 | Step 2: 計画を提示して承認を得る | 1 |
| 3 | Step 3: 承認後、計画通りに実行する | 2 |
ワークフロー
Step 1: commit-message-writerでコミット計画を作成する
Task toolでcommit-message-writerサブエージェントを起動し、「コミット計画を作成してください」と伝えます。ユーザーの元の依頼に追加の文脈(特定のscope指定・分割方針・関連issue番号など)があれば、その部分を添えます。
返却物は、対象ファイルとメッセージ全文を含む構造化されたコミット計画です。
Step 2: 計画を提示して承認を得る
サブエージェントから返ってきた計画をそのままユーザーへ提示し、末尾に以下の確認文を付けます。
この計画でコミットしてよいですか?修正点があれば指示してください。
ユーザーから修正指示があれば、サブエージェントへ再依頼します。
Step 3: 承認後、計画通りに実行する
承認を得たら、全コミットを一括実行します。途中でコミットごとに確認は取りません。各コミットの手順は以下の通りです。
- インデックスを計画に合わせます。
git reset(ワーキングツリーには影響しないunstageのみ)で既存のステージング状態を一度クリアし、git add -A -- <files>で計画通りのファイルだけをステージングします
-Aを使うのはgit mvによるリネームが含まれる場合でも削除側を取りこぼさないためです
git commit -m "..."またはgit commit -F <tmpfile>で実行します
完了後はgit log -n <作成したコミット数> --onelineの結果を提示します。エラーで中断した場合は、完了済み・失敗・未着手を区別して報告します。
エラー時の挙動
| 状況 | 対応 |
|---|
| pre-commit hookによる自動修正 | 変更をgit addで再ステージし、再コミットします。確認は不要です |
| commitlint違反 | エラー出力を読んでメッセージを修正し、1回だけ再試行します。2回目も失敗したらエラー内容とメッセージ案をユーザーに伝え、判断を仰ぎます |
| その他のエラー(hook失敗、テスト失敗など) | 止まります。状況を報告してユーザーの判断を仰ぎます |
禁止事項
--no-verifyを付けてhookをスキップしません
- 依頼されていないのに
git pushしません
- 依頼されていないのに
git commit --amend / git rebaseで履歴を書き換えません