| name | commit |
| description | 変更を意図単位で分析しコミットする。複数の意図が混在していれば分割を提案し、意図ごとに順番にコミットする。「コミットする」「変更を保存したい」「git commit したい」時に使う。 |
commit — 意図単位のコミット
「1コミット = 1意図」を保証するスキル。Conventional Commits形式で意図が明確なメッセージを生成する。
Step 1: 現状確認
git status
git diff --staged
git diff
ステージ済みの変更がない場合は git diff だけ確認し、何をステージするかユーザーに確認する。
Step 2: 意図の分析
差分全体を読み、変更を「意図」の単位でグルーピングする。
判断基準:
- feat: 新機能・新しい振る舞いの追加
- fix: バグ修正・意図しない動作の修正
- refactor: 振る舞いを変えないコードの整理
- test: テストの追加・修正
- docs: ドキュメント・コメントのみの変更
- chore: ビルド設定・依存関係・自動生成ファイル
単一意図と判断した場合 → Step 4へ
複数の意図が混在している場合 → Step 3へ
Step 3: 意図が複数の場合 — 分割提案
以下の形式で分割案を提示し、ユーザーの確認を得る:
複数の意図が検出されました。以下の順番でコミットすることを提案します:
コミット1: fix(auth): トークン有効期限チェックのオフバイワンを修正
対象: src/auth/tokenValidator.ts
コミット2: refactor(auth): バリデーションロジックを AuthService に移動
対象: src/auth/authService.ts, src/api/middleware.ts
コミット3: test(auth): AuthService のユニットテストを追加
対象: test/auth/authService.test.ts
この順番でコミットしますか?変更があれば教えてください。
承認後、意図ごとに以下を繰り返す:
git add <該当ファイルのみ>
git commit -m "<message>"
Step 4: 単一意図のコミット
ステージ済みの変更がある場合はそのまま、なければ確認してステージする:
git add <ファイル>
コミットメッセージを生成して確認:
コミットメッセージ案:
<type>(<scope>): <subject>
<body — Whyがある場合のみ>
このメッセージでコミットしますか?
git commit -m "<message>"
コミットメッセージの規則
<type>(<scope>): <subject>
[body: なぜこの変更をしたか — Whatでなく Why を書く。1行で済む場合は省略可]
- subject: 50文字以内・現在形(「追加する」「修正する」または英語命令形)
- scope: 変更のモジュール・機能名(省略可)
- body: Issueに書いた「解決策の意図」から引用してよい
完了後の案内
コミット完了です。
次の意図がある場合: 実装を続けてから再度 /commit を使ってください
PRを作る準備ができたら: /pr-create を使ってください