| name | handoff |
| description | セッションのコンテキストが肥大化したときに、現在のタスク状況・変更ファイル・作業サマリを収集し、 新しいセッションへ引き継ぐためのドキュメントを生成する。 会話が長くなって新しいセッションで作業を続けたい場合に使用する。
|
| disable-model-invocation | true |
ハンドオフドキュメントの生成
現在のセッションの状態をまとめ、新しいセッションがすぐに作業を再開できるハンドオフドキュメントを生成する。
ファイルは OS の一時ディレクトリ($TMPDIR が設定されていればそこ、なければ /tmp)に handoff-<YYYYMMDD-HHMMSS>.md という名前で保存する。
手順
ステップ 1: 環境とリポジトリの状態を収集する
以下のコマンドを並行して実行する:
date '+%Y-%m-%d %H:%M:%S'
date '+%Y%m%d-%H%M%S'
pwd
git branch --show-current
git status --short
git log --oneline -5
git diff --stat HEAD
git コマンドがエラーになった場合(git リポジトリ外など)、「リポジトリの状態」セクションはドキュメントから省略する。
ステップ 2: 会話コンテキストを整理する
会話の履歴から以下を読み取る:
- 何に取り組んでいたか: セッションの目的と背景
- 完了した作業: このセッションで達成したこと
- 未完了の作業: 残っているタスクと優先度
- 重要な判断・制約: 設計判断、却下したアプローチ、発見した制約
すでにコミット・ファイル・プランなどの成果物に記録されている情報は重複して書かない。パスやコミットハッシュで参照する。
ステップ 3: ドキュメントを生成して保存する
以下の構成でドキュメントを生成し、Write ツールで一時ディレクトリに保存する:
# ハンドオフドキュメント
生成日時: <YYYY-MM-DD HH:MM:SS>
作業ディレクトリ: <working directory>
## セッションサマリー
<このセッションで何を・なぜ・どこまで行ったかを 3〜5 文で説明する>
## リポジトリの状態
- **ブランチ**: <current branch>
- **未コミットの変更**:
<git status --short の出力>
- **最近のコミット**:
<git log --oneline -5 の結果>
- **変更サマリー**:
<git diff --stat HEAD の出力(変更がある場合のみ)>
## 完了した作業
- <完了項目 1>
- <完了項目 2>
...
## 残タスク
次のエージェントがすぐに着手できる粒度で記述する。
1. **<タスク名>** — <具体的な内容・開始点・注意点>
2. **<タスク名>** — <具体的な内容・開始点・注意点>
...
## 重要な判断・制約
- **<判断/制約>**: <理由と背景>
...
## 次のセッション開始プロンプト
次のセッションにそのままコピー&ペーストして使えるプロンプト:
---
<作業ディレクトリ、ブランチ、残タスクの概要、最初に取り組むべきことを含む、具体的で即座に使えるプロンプト>
---
ステップ 4: 引き継ぎの案内を出力する
ドキュメントの保存後、以下の形式でユーザーへの案内を出力する:
ハンドオフドキュメントを保存しました:
<保存したファイルのフルパス>
新しいセッションを始めるには:
1. 新しいターミナルで Claude Code を起動するか、/clear でコンテキストをリセットする
2. 以下のプロンプトをそのまま貼り付けて送信する:
─────────────────────────────────────────
<「次のセッション開始プロンプト」セクションの内容をそのまま転記する>
─────────────────────────────────────────
または、ドキュメントを直接読ませる場合:
<保存したファイルのフルパス> を読んで作業を続けてください
ルール
- センシティブ情報は含めない: API キー・パスワード・トークン・個人情報は必ずリダクトする。
- 重複しない: ファイル・コミット・プランなどの成果物に記録済みの情報は参照するだけにとどめる。
- 簡潔に保つ: 目的は会話の完全な転記ではなく、次のエージェントへの素早いコンテキスト移転。