Skip to content

Instantly share code, notes, and snippets.

@TAKEDA-Takashi
Last active June 30, 2025 10:10
Show Gist options
  • Save TAKEDA-Takashi/a5b1a5aa04523aa67e7a96ec893db6c3 to your computer and use it in GitHub Desktop.
Save TAKEDA-Takashi/a5b1a5aa04523aa67e7a96ec893db6c3 to your computer and use it in GitHub Desktop.
[Claude Code]適切な粒度でコミットを作成するカスタムコマンド
description allowed-tools
未コミットのファイルを確認し、適切な粒度でコミットを作成する
Bash
Read
Edit
TodoWrite

スマートコミット実行

未コミットのファイルを分析し、論理的に関連する変更を適切な粒度でコミットします。

実行手順

  1. 作業計画の作成

    • TodoWriteツールで必要な作業をリスト化
    • 品質チェック、コード整理、コミット準備の各ステップを明確化
  2. 品質チェック(コミット前必須)

    • プロジェクトで定義されている品質チェックを実行
    • 一般的な例:
      • Linter/Formatter (ESLint, Prettier, ktlint, rustfmt等)
      • 型チェック (TypeScript, Flow等)
      • テスト実行 (Jest, pytest, JUnit等)
    • make lintnpm run checkなどプロジェクト固有のコマンドを確認
  3. 未コミット状況確認

    • git statusで変更されたファイルをリスト
    • git diff --statで変更の統計情報を確認
    • git diffで具体的な変更内容を分析
  4. 変更内容のグループ化

    • 機能追加、バグ修正、リファクタリング、スタイル修正など論理的に分類
    • 関連するファイルをまとめてグループ化
    • 不要なデバッグコード・コメントの削除
  5. 適切な粒度でコミット

    • 各グループごとに独立したコミットを作成
    • Conventional Commits形式でメッセージ作成
    • 日本語で分かりやすい説明を追加
    • 1コミット = 1つの論理的変更の原則
  6. 品質確保

    • lefthookプレコミットフックが実行されることを確認
    • コミットメッセージ検証が通ることを確認
    • 最終的なgit statusでクリーンな状態を確認
  7. プロジェクトメモリ更新検討

    • 作業中に発見した技術的課題・解決方法を CLAUDE.md に追加検討
    • 新しいエラーパターン、ライブラリ使用方法、設定の注意点等
    • 将来の開発効率化につながる知見の蓄積

コミットメッセージ形式

<type>(<scope>): <subject>

<body>

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

実行例

# TodoWriteで作業計画
1. コードのLint/Format実行
2. 型チェック実行(該当する場合)
3. テスト実行
4. 不要なコメント・デバッグコードの削除
5. git status確認とコミット準備
6. プロジェクトメモリ更新の検討

# 品質チェック
✅ すべての品質チェックツールがパス

# コミット作成例
1. feat(auth): ユーザー認証機能を追加
2. fix(api): レスポンスヘッダーの不具合を修正
3. refactor(utils): 共通ユーティリティ関数を整理
4. test: 認証機能のユニットテストを追加
5. docs: APIドキュメントを更新
6. chore: 開発環境の設定ファイルを更新

注意事項

  • 必ず品質チェックを実施してからコミット
  • テストが失敗している場合は、関連するテストか確認
  • エラーや警告は可能な限り解消してからコミット
  • パスに特殊文字が含まれる場合は適切にエスケープ
  • プロジェクト固有のビルドツールやコマンドを確認(Makefile、package.json、build.gradle等)

動作を開始します...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment