Agent Skill
2/7/2026

commit

現在のセッションで行った変更を論理単位ごとに分割し、適切なコミットメッセージで複数コミットを作成します。

S
shonenm
0GitHub Stars
1Views
npx skills add shonenm/dotfiles

SKILL.md

Namecommit
Description現在のセッションで行った変更を論理単位ごとに分割し、適切なコミットメッセージで複数コミットを作成します。

name: commit description: 現在のセッションで行った変更を論理単位ごとに分割し、適切なコミットメッセージで複数コミットを作成します。 user-invocable: true

Commit - Git コミット作成

現在のClaudeセッション内で行った変更のみを対象に、論理的な単位に分割して適切なコミットメッセージでコミットを作成します。

重要: 対象範囲

このスキルは現在の会話で自分(Claude)が行った変更のみをコミットします。

  • 会話履歴から Edit/Write ツールで変更したファイルを特定する
  • 会話開始前から存在していた未コミットの変更はコミットしない
  • 他のセッションや手動で行われた変更はコミットしない
  • 不明な変更がある場合はユーザーに確認する

手順

  1. セッション内の変更を特定 - 会話履歴から以下を確認:

    • Edit/Write ツールで変更・作成したファイル一覧
    • 各変更の目的(機能追加、バグ修正、設定変更など)
  2. git状態の確認 - 以下のコマンドを並列で実行:

    • git status - 未追跡ファイルと変更の確認(-uallフラグは使用しない)
    • git diff --staged - ステージ済みの変更を確認
    • git diff - 未ステージの変更を確認
    • git log --oneline -5 - 最近のコミットメッセージのスタイルを確認
  3. 対象ファイルの照合 - git diff の結果とセッション内変更を照合:

    • セッションで変更したファイルのみを対象とする
    • セッション外の変更(会話開始時の gitStatus に記載されていた変更など)は除外
    • 判断が難しい場合はユーザーに確認
  4. 変更の分析とコミット分割計画 - セッション内の変更を論理単位ごとに分割:

    • 各ファイルの変更内容を確認し、関連する変更をグループ化
    • 1コミット = 1つの論理的な変更単位(機能追加、バグ修正、設定変更、ドキュメント更新など)
    • 異なる目的の変更は別コミットに分ける(例: 新機能とドキュメント更新は分離)
    • .envや認証情報などの機密ファイルはコミットしない
    • コミット順序は依存関係を考慮(コードの変更 → それに対するドキュメント更新)
  5. コミットメッセージの規約:

    • フォーマット: prefix(scope): 説明 (英語、小文字始まり)
    • prefix一覧:
      prefix用途
      feat新機能の追加
      imprv既存機能の改善・強化
      fixバグ修正
      rfacリファクタリング(動作変更なし)
      perfパフォーマンス改善
      docsドキュメントのみの変更
      choreビルド、CI、依存関係、その他雑務
    • scope: 変更対象のコンポーネント(nvim, zsh, git, tmux, claude 等)。複数にまたがる場合は省略可
    • 説明: 「何を」ではなく「なぜ」に焦点を当てた簡潔な英語(小文字始まり)
  6. コミットの実行 - 分割計画に従い、グループごとに順番にコミット:

    • 関連するファイルのみをステージング(git add -Agit add .は避け、ファイル名を指定)
    • HEREDOCを使用してコミットメッセージを渡す:
      git commit -m "$(cat <<'EOF'
      prefix(scope): 説明
      
      Co-Authored-By: Claude <noreply@anthropic.com>
      EOF
      )"
      
    • 各コミット後に次のグループをステージングして繰り返す
    • 全コミット完了後にgit statusgit log --onelineで成功を確認

注意事項

  • ユーザーが明示的に要求しない限り、--amendは使用しない
  • プリコミットフックが失敗した場合は、修正して新しいコミットを作成(amendしない)
  • 変更がない場合は空コミットを作成しない
  • git pushはユーザーが明示的に要求しない限り実行しない
  • 変更が単一の論理単位に収まる場合は1コミットで問題ない(無理に分割しない)
  • セッション外の変更には触れない(ユーザーが明示的に指示した場合を除く)
Skills Info
Original Name:commitAuthor:shonenm