| name | handover |
| license | MIT |
| description | 現在のセッションの作業コンテキストを handover ファイル(デフォルト docs/handover.md、 環境変数 HANDOVER_FILE で変更可)に書き出し、 別セッション・別エージェントが作業を再開できるようにする引き継ぎスキル。 ユーザーが「handover」「引き継ぎを書いて」「コンテキストを書き出して」「作業を保存して」 「今日はここまで」「セッションを終わる」「別のセッションで続きをやる」などと言った場合、 またはコンテキストが逼迫して作業を中断せざるを得ない場合に必ず使用する。 再開側は takeover スキルを使う。 |
handover
セッション内の作業コンテキストを handover ファイルに書き出す。読み手は「このセッションの会話を一切見ていない別のエージェント」。その読み手が handover ファイルと参照ファイルだけで作業を再開できることがゴール。
保存先
環境変数 HANDOVER_FILE で変更できる。未設定ならデフォルトの docs/handover.md を使う:
handover_file="${HANDOVER_FILE:-docs/handover.md}"
以降「handover ファイル」はこのパスを指す。takeover スキルも同じ解決方法を使うため、両セッションで同じ環境変数を設定すること。
手順
git status --short / git branch --show-current / git log --oneline -5 / git stash list を実行し、現在の git 状態を取得する。あわせて上記の方法で保存先パスを解決する
- セッションを振り返り、下記テンプレートの各セクションを埋める
- handover ファイルに書き出す(親ディレクトリがなければ作成する。既存ファイルがあっても確認せず上書きする。handover ファイルは常に最新のスナップショット 1 つだけを保持する運用)
- 書き出した内容の要点(タスク・次の一手)を 1-2 行でユーザーに報告する
テンプレート
以下の構成で書く。該当がないセクションは「なし」と明記する(省略すると読み手が「書き忘れ」か「本当にない」か判別できない):
# Handover
作成日時: YYYY-MM-DD HH:MM (タイムゾーン)
## タスク
<ユーザーの元の依頼と、現時点でのタスクの全体像を 2-5 行で>
## 進捗状況
- [x] 完了したこと
- [ ] 未完了のこと(着手中のものは状態を具体的に)
## 次の手順
1. <再開後に最初にやるべきこと。具体的なコマンドやファイル・関数名まで書く>
2. ...
## 設計判断と経緯
- <下した判断>: <理由>
- <却下した案>: <却下理由>(再開者が同じ検討を繰り返さないため)
## 関連ファイル
- `path/to/file` — <なぜ関係するか / 何をしたか / 読むべき箇所>
## git 状態
- ブランチ: `branch-name`
- 未コミット変更: <git status の要約。ない場合は「なし」>
- 直近コミット: <このセッションで積んだコミットの要約>
## 注意事項・ハマりどころ
<環境依存の罠、失敗したアプローチ、未検証の仮説、ユーザーから受けた指示・好みなど>
書き方の指針
- 事実と判断を区別する。「〜のはず」「未確認」といった確度も明記する
- ファイル内容のコピペは避け、パス+行範囲+要点で参照させる(handover ファイルを肥大化させない)
- ユーザーからセッション中に受けた修正・指摘・好み(コードスタイル、進め方など)は「注意事項」に必ず残す。再開者が同じ指摘を受け直すのが最も体験を損なう
- 秘密情報(トークン、認証情報、個人情報)は書かない