From syou6162-claude-code-commands
Analyzes git diff to split changes into logical semantic units, stages hunks sequentially using git-sequential-stage, and commits with Conventional Commits. Activates on mentions of commit, git add, or split changes.
npx claudepluginhub syou6162/agent-skillsThis skill uses the workspace's default tool permissions.
大きな変更を論理的な単位に分割してコミットしてください。git diffを分析して意味のある最小単位を特定し、`git-sequential-stage`ツールで段階的にステージングします。
Reviews git changes, stages intended work with patch mode, splits into logical commits, and writes Conventional Commits messages with verification.
Organizes git workspace changes into clean, atomic commits following conventional formats. Activates after features, refactors, or explicit commit requests.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
大きな変更を論理的な単位に分割してコミットしてください。git diffを分析して意味のある最小単位を特定し、git-sequential-stageツールで段階的にステージングします。
&&や;で繋ぐなど、手順にない方法でコマンドを実行してはいけないgit add . / git add -A の使用は禁止ですgit-sequential-stageを使用してhunk単位でステージングすること.claude_work/plans/ 配下のファイルはコミット対象外です。gitignoreされているファイルを無理にステージングしようとしないでくださいpre-commitの事前実行
.pre-commit-config.yamlが存在する場合は、事前に実行してください:
pre-commit run --all-files
差分を取得
最初に必ずintent-to-addで新規ファイルを追加してください:
git ls-files --others --exclude-standard | xargs -r git add -N
差分を取得してください:
git diff HEAD | tee .claude_work/current_changes.patch
変更内容を分析
hunk単位で変更を分析し、最初のコミットに含めるhunkを決定してください:
各ファイルのhunk数を確認してください:
git-sequential-stage count-hunks
分析例:
# 分析結果例
# - コミット1(fix):
# - src/calculator.py: hunk 1, 3, 5(ゼロ除算エラーの修正)
# - src/utils.py: hunk 2(関連するユーティリティ関数の修正)
# - コミット2(refactor):
# - src/calculator.py: hunk 2, 4(計算ロジックの最適化)
コミットメッセージの形式(Conventional Commits形式):
feat: 新機能fix: バグ修正refactor: リファクタリングdocs: ドキュメントtest: テストstyle: フォーマットperf: パフォーマンス改善build: ビルドシステムや外部依存関係の変更ci: CI設定ファイルやスクリプトの変更revert: コミットの取り消しchore: その他分析が完了したら、コミット用のメッセージを作成してください:
コミットメッセージの作成方法:
.claude_work/commit_message.txt にコミットメッセージを書くことcatとheredocを使ってファイルに書き込む(例:cat <<EOF > .claude_work/commit_message.txt)git commit -mで直接メッセージを指定する# Writeツールで .claude_work/commit_message.txt にコミットメッセージを書く
# 例:
# fix: ゼロ除算エラーを修正
#
# 計算処理で分母が0の場合の適切なエラーハンドリングを追加
ステージングとコミット
ワイルドカード(*)の使用判断:
| 状況 | 判断 | 理由 |
|---|---|---|
| ファイル内のすべての変更が意味的に一体 | * 使用 | 単一の目的で分割不要 |
| 新規ファイル追加 | * 使用 | すべて新規のため |
| ドキュメントファイルの変更 | * 使用 | 通常は単一目的 |
| 異なる目的の変更が混在 | hunk番号指定 | バグ修正とリファクタリング等を分離 |
| hunk数が不明 | まず確認 | 盲目的な*使用は厳禁 |
重要: 「hunkを数えるのが面倒」という理由での*使用は厳禁
# パターン1: 部分的な変更をステージング(hunk番号指定)
git-sequential-stage stage -patch=".claude_work/current_changes.patch" -hunk="src/calculator.py:1,3,5"
# パターン2: ファイル全体をステージング(意味的に一体の変更の場合)
git-sequential-stage stage -patch=".claude_work/current_changes.patch" -hunk="tests/test_calculator.py:*"
# パターン3: 複数ファイルの場合(混在使用)
git-sequential-stage stage -patch=".claude_work/current_changes.patch" -hunk="src/calculator.py:1,3,5" -hunk="src/utils.py:2" -hunk="docs/CHANGELOG.md:*"
# コミット実行(手順3で作成したコミットメッセージを使用)
# 注意: ファイルパスは .claude_work/commit_message.txt であり、/tmp ではない
git commit -F .claude_work/commit_message.txt
残りの変更を処理
残りの変更があるかを確認してください:
git diff HEAD
判断フロー:
パッチファイルの再生成:
git diff HEAD | tee .claude_work/current_changes.patch > /dev/null
最終確認
すべての変更がコミットされたか確認してください:
git diff HEAD
git status
リモートへのプッシュ
現在のブランチ名を確認してプッシュ:
# ブランチ名を確認
git rev-parse --abbrev-ref HEAD
# ブランチ名を指定してプッシュ(例: git push origin feature/new-feature)
git push origin <branch-name>