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 はセッション開始時に読み込まれるので、設定を変えたらセッションを再起動する必要がある