Claude Code のセッション引き継ぎを自動化する

要約
/handover カスタムスラッシュコマンドと PreCompact hook で、セッション跨ぎの文脈ロストをゼロにする方法
意見はこのエリアに表示されます

Claude Code の /handover っていうカスタムスラッシュコマンド、やってみた

セッション終わりに打つだけで、引き継ぎノートを自動生成してくれる

Zara Zhang (@zarazhangrui) さんのポストで知って、自分でも作って試した

何が解決されるのか

最初に断っておくと、これはデフォルトで用意されてるものではない

カスタムスラッシュコマンドなので、後述する方法で作る必要がある

Claude Code はセッションが切れると文脈がリセットされる。CLAUDE .md にプロジェクトのルールは書けるけど、今日どこまでやったか、なぜその設計にしたかは残らないよね

次のセッションで、さっき何やってたっけ?ってなるのを、解決できるかも

/handover の仕組み

.claude/commands/handover .md にカスタムスラッシュコマンドを置く。セッション終了時に /handover と打つだけで、HANDOVER .md がプロジェクトルートに生成される

コマンドの全文。意外と簡単

HANDOVER.md はプロジェクトルートに置くだけだと Claude Code が自動で読むわけじゃない。次のセッションで「HANDOVER.md を読んで」と言うか、CLAUDE.md に一行入れておく必要がある。

例えば、セッション開始時に HANDOVER.md が存在すれば、最初に読み込むこと

この一行を CLAUDE.md に追記する運用。ここが抜けてると「作ったけど次のセッションで読まれない」ってなる人が出そう

CLAUDE .md との違い

ここが一番大事なポイント

  • CLAUDE .md → プロジェクト全体のルール(不変)
  • HANDOVER .md → 今日の作業の引き継ぎ(毎回更新)

この2つを分けるだけで、セッション跨ぎの精度が変わる。CLAUDE .md に作業ログを書き足していくと膨れ上がるし、ノイズになる。役割を分けるのが正解

そもそも、CLAUDE .md は100行以内に収めたい

試してみた結果

実際にセッション中に何回か /handover を打ってみた

  • 毎回ちゃんと上書きされて、最新の状態だけが残る
  • 「捨てた選択肢と理由」が地味に一番ありがたい。次のセッションで「それもう検討して却下した」って無駄な議論を防げる
  • 「関連ファイル」も便利。セッションが変わると「どのファイル触ってたっけ」ってなりがちだけど、パス一覧があるだけで再開が速い

PreCompact hook で自動化する

ここからが応用編。リプで出てた「pre auto compact hook に仕込む」ってアイデアを実際に試した

Claude Code にはコンテキストウィンドウが溢れそうになったとき、自動で圧縮する仕組みがある。その直前に hook を発火させて HANDOVER .md を生成する

設定は .claude/settings.local.json に書く

スクリプトの例。よしなに作って試してください

/compact を手動で打ったら hook が発火して HANDOVER .md が自動生成された。トリガーが manual か auto かも記録される

注意点として、hook はセッション開始時に読み込まれるので、設定を変えたらセッションを再起動する必要がある

ファイル構成まとめ

Explore More
関連記事はありません。