name: headless-commit-amend description: 直前のコミットを修正 (amend) する。コミットメッセージを自動生成し、amend コミットを実行する。 disable-model-invocation: true model: haiku
Amending the Last Commit
直前のコミットを修正 (amend) します。ユーザーへの確認なしに直接 amend コミットを実行することが許可されています。
手順
注意:
- CWD がリポジトリルートであることを前提とします。
- ステージは行いません。ステージはユーザーが事前に済ませている前提で、スキルはその時点で staged な内容のみを使って amend します (新たな
git addを実行しない)。
1. 直前のコミットと amend 後の差分を確認
直前のコミットメッセージ:
!git log -1 --format=%B
amend 後に含まれる全差分の --stat (HEAD1 から見た index):
!`git diff HEAD1 --cached --stat`
amend 後に含まれる全差分:
!git diff HEAD~1 --cached
2. コミットメッセージ規約の把握
直近のコミット履歴からプロジェクトの規約を把握する:
git log --oneline -10
CLAUDE.md にコミットメッセージ規約があれば、既にコンテキストに含まれているのでそれに従う。
!git claude-attribution
3. コミットメッセージの生成
直前のコミットメッセージ、amend 後に含まれる全差分の内容、コミット履歴から読み取れる規約、そしてユーザーが渡した経緯メモ ($ARGUMENTS) を統合して、プロジェクトの規約に沿ったコミットメッセージを生成します。
ルール:
- コミットメッセージは${user_config.COMMIT_MESSAGE_LANGUAGE}で生成する
- subject は変更内容を簡潔に表す
- ユーザーが渡した経緯メモ (
$ARGUMENTS) の扱い:- 経緯メモは
git diffには現れない情報 (なぜその変更を行ったか、どういう経緯か) を表すユーザー本人の言葉です。git diffから読み取れる「何を変えたか」とは独立した、捨てると失われてしまう情報なので、必ずコミットメッセージに反映してください。 - 短くて subject の動機部分として収まるなら subject に組み込む。
- 例: 経緯メモ
unused だから消した→refactor(foo): unused な bar を削除
- 例: 経緯メモ
- subject に収めると不自然になる、もしくは複数の文・複数の理由がある場合は body に書く。規約に沿う形に整えてよいが、ユーザーの意図は失わない。
- 例: 経緯メモ
前任者が試験的に入れたが結局使われなかったので整理する→ subject に変更内容、body に経緯
- 例: 経緯メモ
- 経緯メモは
- 経緯メモが空のときは body 原則不要 (subject だけで意図が伝わるケースが多いため)。subject だけでは意図が伝わらない大きな変更に限り body を付ける。
ユーザーが渡した経緯メモ: $ARGUMENTS
4. コミットの実行
コミットメッセージを渡して git commit --amend を実行する。
5. 完了報告
次のフォーマットで修正 (amend) が完了したことをユーザーに報告します:
修正 (amend) が完了しました
~~~
<タイトル・本文・フッターを含む完全なコミットメッセージ>
~~~