CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-04-22中級

Claude Code で Conventional Commits を自動生成する — git diff から type と scope を推論させる

コミットメッセージがいつのまにか「update」ばかりになっていませんか。Claude Code に git diff を読ませて Conventional Commits 形式に変換する、小さな運用ルールをまとめました。

claude-code129git16conventional-commitsworkflow24automation54

変更量が多い日ほど、コミットメッセージが「update」「fix」「wip」だけで埋まっていく — そんな経験はないでしょうか。私自身、一人で複数サイトのコードを触っているとログが荒れがちで、あとで「どのコミットで何を直したのか」を追うのに時間を取られることがありました。

Claude Code は git diff をそのまま読める環境にいるので、コミットメッセージ生成は本来とても得意な作業です。ただし、何の手当てもせずに「いい感じでコミットして」と頼むと、件名だけが整っていて本文が空、あるいは毎回違う書式、という状態になりがちです。

なぜ Conventional Commits を Claude Code に任せたいのか

Conventional Commits は feat:fix:refactor: などの接頭辞で変更種別を明示する規約です。feat: add login form のように一目で意図が分かるため、後から履歴を掘り返すときの負担が大幅に下がります。

手で書けば済む話ではあるのですが、毎回 typescope を考え直すのは思っている以上に疲れます。そして疲れると、冒頭で挙げたような「update」一辺倒の履歴が出来上がります。これは Claude Code が肩代わりするのに向いている、典型的な「判断の繰り返し」です。

前提として、Conventional Commits の全体像や周辺ツールを押さえたい方は、先にClaude Code の Git ワークフロー自動化に目を通しておくと、この記事の位置づけがよく分かります。

最小構成で試す — 1つのプロンプトから始める

いきなりフックやスラッシュコマンドを作る前に、まずは単発のプロンプトで動きを確認するのがおすすめです。Claude Code のチャットに次のテキストをそのまま貼って、挙動を見てください。

次の手順でコミットメッセージを作成してください。
 
1. `git diff --staged` を実行して、ステージされた差分を確認する
2. 変更内容を 1〜2 行で要約する
3. 下記のテンプレートに沿って出力する(本文は不要なら省略可)
 
<type>(<scope>): <subject>
 
<body>
<footer>
 
type は feat / fix / refactor / perf / docs / test / chore / build / ci
のいずれかを選び、推論の根拠も 1 行だけ示してください。

ここで重要なのは「推論の根拠を 1 行だけ示す」という指示です。ただ結果だけを受け取ると、featfix の境界があいまいなコミットで違和感が残ります。根拠が見えると、その場で「これは refactor だから書き直して」と返しやすく、会話を1往復で終わらせやすくなります。

/commit スラッシュコマンドに育てる

挙動に満足したら、毎回貼り付けるのは面倒なのでスラッシュコマンド化します。プロジェクト直下の .claude/commands/ に次のファイルを置くだけで、/commit と打つだけで呼び出せるようになります。

---
description: "Conventional Commits 形式でコミットメッセージを生成する"
allowed-tools: Bash(git diff:*), Bash(git status:*)
---
 
`git diff --staged` を実行し、Conventional Commits 形式でコミットメッセージを
提案してください。規則は以下の通りです。
 
- type は feat / fix / refactor / perf / docs / test / chore / build / ci から選ぶ
- subject は 50 文字以内、命令形で書く
- body は「何を」「なぜ」の順で 1 段落以内にまとめる
- 機能追加か既存挙動の変更か迷ったら fix ではなく feat を選び、根拠を body に書く
 
最後に `git commit -m "..."` 形式で貼り付けやすい1行も併記してください。

allowed-toolsgit diffgit status だけ許可しておくと、コミットの内容と関係ないコマンドが差し込まれる余地がなくなり、挙動が安定します。スラッシュコマンド全般の設計はClaude Code のカスタムスラッシュコマンドガイドにまとめたので、複数のコマンドを整理したい方は併せてご覧ください。

PostToolUse フックで差分を要約する自動化

もう一歩進めて、ステージングのタイミングで差分要約を自動生成したくなったら、フックを使います。PostToolUse で git add を検知し、そのまま差分の要約をメモリファイルに書き出す、という流れです。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash -c 'echo \"$(date -Iseconds)\" >> .claude/last-stage.log && git diff --staged --stat >> .claude/last-stage.log'"
          }
        ]
      }
    ]
  }
}

この構成の狙いは「コミットメッセージを書く直前に、そのセッション中に何をステージしたかを思い出せる」ことです。フックの仕組みそのものはClaude Code のフック自動化で詳しく扱っているので、イベント種別の全体像を押さえたい場合はそちらを参照してください。

注意点として、フックから直接 Claude に問い合わせるような設計は避けるのがおすすめです。コミット前は差分の「ログ化」だけに留め、メッセージ生成はユーザーが /commit を叩いたときに行う、と役割を分けたほうが、意図しないコミットが発生しにくくなります。

chore / refactor / fix の誤判定を減らす工夫

Conventional Commits の運用で一番もめるのが type の選び方です。Claude Code も例外ではなく、放っておくと以下のような取り違えが起きます。

  • バグ修正なのに feat: 欠けていた機能を「追加した」と解釈してしまう
  • リファクタなのに fix: 動作は変わらないはずなのに、差分を見て「壊れていたから直した」と誤認する
  • 設定変更なのに chore: 依存関係の更新を全部 chore にまとめてしまい、build や ci が埋もれる

対策は、判断基準をプロジェクトの CLAUDE.md に短く書いておくことです。私が 4 サイト運用で使っている書き方を抜き出すと、次のような形になります。

## コミットメッセージの方針
 
- ユーザーから見て挙動が変わる追加/変更: feat
- 既にあった挙動が意図通りに戻る修正: fix
- 挙動を変えない内部構造の変更: refactor
- 依存更新はパッケージ名が分かる場合 build、わからなければ chore
- CI ファイル (`.github/workflows/` 等) のみの変更: ci
- 迷ったら feat か refactor を優先し、fix は使わない

「迷ったら fix を使わない」の一文が、体感でいちばん効きます。理由は単純で、fix は後から CHANGELOG に書くときに重み付けが強くなるため、安易に使うと「何も壊れていなかったのに fix が並ぶ」履歴になりやすいからです。プロジェクトのリリースノートをきれいに保ちたい方は、このルールを入れてみてください。

CLAUDE.md の設計そのものを見直したい場合は、CLAUDE.md とメモリの使い方で運用パターンをいくつか紹介しています。

実際のビフォー/アフター

イメージが掴みにくいと思うので、私が先週実際に行ったコミットで比較してみます。疲れた頭のまま手で書いた場合と、/commit に差分を読ませて生成した場合の違いです。

Before(手書き・疲れた状態):

fix article slug

After(差分から生成):

fix(articles): correct category path for newly-migrated MDX files

Two MDX files were moved from api-sdk/ to claude-code/ but their
internal links still pointed at the old category, causing 404s in
production. Update the links to match the new category.

手書きのほうは、後から何を直したのか分かるためにコミット本体を開く必要があります。生成されたほうは「どの不具合をどう直したのか」がコミットメッセージだけで完結しています。1 コミットごとに数分ずつしか変わらない差ですが、何百コミットも積み重なると、履歴を遡る時間として跳ね返ってきます。

明日からできる最初の一歩

すべての仕組みを一度に入れようとすると、かえって運用が続きません。まず今日は、.claude/commands/commit.md を 1 ファイルだけ作って /commit を叩いてみてください。5 分で設定でき、それだけでも履歴の品質は目に見えて変わります。

フックや CLAUDE.md の整備は、/commit が自分の書き方に馴染んできてから手を付けても遅くありません。道具は、自分の手に馴染んだ順に足していくのがいちばん長続きします。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Claude Code2026-07-14
push先がいつの間にか一つ増えていた — /commit-push-pr が origin 以外のリモートへも押し始めた変更に、許可リストで蓋をする
7月14日の更新で /commit-push-pr が origin に加えて設定済みの push リモートへも自動で押すようになりました。便利な一方、ミラーやバックアップ用の第二リモートを持つ環境では、意図しない push が静かに増えます。どのリモートへ押し得るかを棚卸しし、許可リスト外の push を pre-push フックで止め、無人実行でも安全に回す設計を実装込みで整理しました。
Claude Code2026-06-18
Claude Code に /cd が来た — キャッシュを温存したまま複数リポジトリを横断する運用設計
Claude Code に追加された /cd で作業ディレクトリを移すと、プロンプトキャッシュを作り直さずにセッションを別リポジトリへ運べます。複数リポジトリを順に処理する運用での設計判断と落とし穴をまとめました。
Claude Code2026-06-10
git add -A が .bak バックアップまで巻き込む — in-place 修正スクリプトと自動コミットの落とし穴
sed -i や自作の --fix スクリプトが残す .bak バックアップを git add -A が無言で取り込み、本番リポジトリに混入させてしまう問題。なぜ気づきにくいのか、scoped add と .gitignore でどう塞ぐかを実例で整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →