このセッションの要点を tmp/handoff/ に markdown 1枚で書き出し、別セッションが続きから着手できるようにする。文脈が長くなったが、まだ Issue にはできない段階の退避に使う。「handoff」「引き継ぎファイルを作って」「別セッションに引き継いで」と指示されたとき。
Resources
1Install
npx skillscat add kasiopeiya/claude-dev-template/handoff Install via the SkillsCat registry.
Handoff
このセッションの要点を tmp/handoff/ に markdown 1枚で書き出し、会話履歴を一切持たない別セッションが続きから着手できるようにするスキル。
使い分け
議論がどこまで固まったかで、書き出し先が変わる。
- 着手できる粒度まで決まった:
/quick-issue(GitHub Issue にする) - 実装計画の形になった:
/to-plan(Plan ファイルにする) - まだ固まっていない。文脈だけ落としたい:このスキル
- 会話を逐語で残したい:
/export(要点抽出ではなく全文ダンプ)
貫く原則:コールドスタート再現性
判断基準は一文。
この1枚だけ読んで、別セッションが 議論の現在地と、次の一手 を再構築できるか。
- 書く(コールドスタートで再構築できない)
- 目的・WHY
- 確定した判断と、その根拠
- 却下した案と、却下した理由
- 未確定の論点と、次にやること
- 触ったファイル・参照した正典のパス
- 書かない(読み手が使わない)
- 会話の逐語再現・やり取りの経過
- まだ検討していないことの推測
- 一般論・教科書的な説明
- 実装コードそのもの
ファイルパスを書いてよいのは、この文書が次のセッションで消費されて役目を終えるからである。数日で用済みになる前提なので、パスが陳腐化するコストより、次のセッションが探索をやり直すコストの方が大きい。
手順
- 対象を決める:引数があればその話題だけを、無ければ会話全体を対象にする。
- 決定が起きた箇所を拾う:会話の末尾だけを見ない。人間が方針を選んだ・調べて事実が判明した・案が却下された——この3つが起きた箇所を先頭から拾う。末尾から要約すると、序盤で決まった前提が丸ごと落ちる。
- 雛形をコピーして埋める:
.claude/skills/handoff/assets/handoff-template.mdを出力先へコピーし、後述の書式に従って中身を書く。 - 報告を出す:後述の形式で、貼り付け用の一行を含めて出力する。
- 埋まっているか検査する:雛形の6セクション(目的・現在地・確定したこと・却下した案・未確定の論点・参照した場所)が全て埋まっているか(該当が無いセクションは「なし」の1行があるか)を確かめる。空のセクションがあれば埋める。
出力先
- ディレクトリ:
tmp/handoff/(無ければ作る。git 管理外) - 日付:
date +%Y%m%dで取る - ファイル名:
YYYYMMDD-<題名のケバブケース>.md(例:20260818-handoff-skill.md) - 題名:引数があればそれを使い、無ければ「目的」の一文から作る
- 既存ファイル:上書きしない。同名なら
20260818-handoff-skill-2.mdのように拡張子の前へ番号を足し、それも在れば空いている番号まで増やす - 古いファイル:消さない。どれが最新かは日付で判断する
書式
雛形のセクションを、この順のまま埋める。該当するものが無いセクションは「なし」と1行書いて閉じる(節ごと消さない)。消すと、次のセッションが「検討していない」のか「検討して該当なしだった」のかを区別できない。
- 目的:何をしようとしているかを一文で
- 現在地:どこまで進んだか。完了したこと・進行中のこと
- 確定したこと:決まった判断と、そう決めた根拠
- 却下した案:検討して捨てた案と、捨てた理由(蒸し返し防止)
- 未確定の論点:まだ決まっていないことと、次にやること
- 参照した場所:読んだ設計書・ポリシー・Issue 番号・触ったファイルのパス
確認した事実と、未確認のことを混ぜない。 未確認は「未確認:〇〇」と明示する。次のセッションは、この1枚を事実として受け取って動く。
[!IMPORTANT]
(AI・必須) 引き継ぎファイルの本文は80行以内に収める。超えたら 対象を絞る(引数で話題を指定し直す)か 削る かの2択で、理由を書いて超えてはならない。長い引き継ぎ書は、次のセッションで結局読み直しになり、退避した意味が消える。
最後に出力する内容
引き継ぎファイルを書き出しました:
tmp/handoff/<ファイル名>
新しいセッションで以下を貼り付けてください:
tmp/handoff/<ファイル名> を読んで続きからtmp/ は .gitignore の対象で検索(Grep・rg)に出てこないので、新しいセッションは自力で探し当てにくい。だからパスの提示は省略できない。