AI News HubLIVE
サイト内リライト5 分で読了

「/handoff」スキル:別のエージェントに作業をシームレスに引き継ぐ

Matt Pocock の AI スキルシリーズ第17弾「/handoff」は、現在の会話を Markdown の引き継ぎ文書にまとめ、OS の一時ディレクトリに保存する。新しいエージェントがそのファイルを読めば作業を続行できる。圧縮ではなく可搬性を重視しており、ツールやディレクトリの移動、同僚への引き継ぎ、並行タスクの分岐などに適している。

ソースHacker News AI著者: evo_9

/handoff は、Matt Pocock が公開している「AI Skills for Real Engineers」シリーズの17番目のスキルです。このスキルは、現在進行中の会話を Markdown 形式の引き継ぎ文書にまとめ、ワークスペースではなく OS の一時ディレクトリに保存します。新しいエージェントはその文書を読むことで、作業をそのまま引き継ぐことができます。このスキルの本質は圧縮ではなく可搬性にあります。つまり、作業を別のハーネス、別のディレクトリ、同僚、あるいは並行して進めたいサイドタスクへ「移動させる」必要があるときにだけ役立つという意味です。何も移動させる必要がない場合は、引き継ぎ文書は不要で、セッション内で続行するか、/clear やサブエージェント、/compact で対応するほうが適切です。

このスキルは、ユーザーが「/handoff」と入力することで発動します。エージェントが自発的に使うことはありません。次のセッションの目的をメモとして添えると、その目的に沿った文書が生成されます。利用するべき状況は4つあります。1つ目は、Claude から Codex など別のハーネスに乗り換える場合。2つ目は、別のディレクトリやリポジトリに移動する場合(典型的にはプロトタイプ用ディレクトリから離れるとき)。3つ目は、作業を同僚に引き継ぐ場合。4つ目は、作業の途中で見つかったサイドタスクを分岐させ、自分は本来のセッションを続けながら、別のエージェントにそのタスクを並行して処理させる場合です。それ以外の状況、つまり同じハーネス・同じディレクトリで段階の区切りを迎えたなら、/compact を使うのが適切です。

特に見逃されがちなのが分岐の使い方です。深い設計議論の最中に、実際にコードを動かしてみないと答えが出ない疑問が生じることがあります。そのたびに今までの会話の流れを壊したくない場合、/handoff でプロトタイプ用のセッションを分岐させ、答えを得てから元のセッションに戻す、という往復が有効です。これなら生きた会話を維持したまま、必要な検証だけを別のエージェントに任せられます。

引き継ぎ文書には、進行中の作業の核心——何が進行中で、なぜそれが重要で、次に何をすべきか——に加えて、次に使うべきスキルを提案するセクションが含まれます。文書が書き出される前に、シークレットや機密情報は削除されます。一方で、すでに文書化されているものは意図的に含めません。仕様書、計画、ADR、issue、コミット、diff などはパスや URL で参照されるだけで、本文にコピーされることはありません。これによりファイルを小さく保ち、確定済みの詳細が複数箇所に存在して混乱するのを防ぎます。

よくある質問として、/compact との違いがあります。基本的には、何かを移動させる必要がない限りは /compact を使います。同じ作業を同じ環境で続けるなら、それはハンドオフではなくコンパクトの対象です。/handoff の利点は要約が上手なことではなく、/compact では届かない場所に持ち運べるファイルが生成されることです。/compact はコンテキストを圧縮して新たなウィンドウで継続し、意図を保持します。/clear はウィンドウを空にしてゼロから始めるもので、後ろにあるものがすべて破棄可能な場合に適しています。/handoff は作業を別の場所へ移すことができるファイルを書き出します。いずれも一次情報である会話を二次情報の要約に変換する点は共通しています。

ファイルがどこに保存されたかという質問もあります。一時ディレクトリは OS ごとにパスが異なり、Windows ではエージェントが正しい場所を見つけるのに何度も試行錯誤することがあります。先に進む前に、パスを確認して覚えておきましょう。一時ディレクトリを選んでいるのは、ハンドオフ文書が維持すべき成果物ではなく、通過するための文書だからです。ただし、環境によってはセッション間で一時ディレクトリがクリアされることや、Codex のように次のセッションが別の場所で始まる場合があるため、1時間以内に次のセッションを開始しない場合や別のハーネスで開始する場合は、自分で永続的な場所にコピーしておく必要があります。

新しいエージェントに渡すときは、ファイルパスを指定して「このファイルを読んで続きをやってください」と指示するのが安全です。要約をシェルコマンドに貼り付けると、バッククォートや $(...) が展開されて壊れる可能性があり、多くの場合はエラーではなく静かに切り詰められてしまうため、新エージェントは不完全な指示を受け取ることになります。

また、/branch や --fork-session などのフォーク機能とは似ていますが同一ではありません。フォークはコンテキストの完全なコピーを継承しますが、このスキルは指定された次のタスクに向けてターゲットを絞った圧縮をファイルとして生成します。同じマシン、同じハーネス、同じディレクトリで済むならフォークのほうが手間がかかりません。ファイルの出番は、目的地がフォークの届かない場所にあるときです。

CLAUDE.md との使い分けについては、その情報が来月も真実であるかどうかを考えます。CLAUDE.md はプロジェクトに関する常設コンテキストで、関連するかどうかにかかわらず毎セッション読み込まれます。ハンドオフ文書は進行中の単一の作業に関するもので、その作業が完了すれば役目を終えます。繰り返し説明される事実は CLAUDE.md の問題であり、半ば完成したタスクはハンドオフの問題です。

このスキルに対するよくある批判として、「なぜ」ではなく「何」しか記録されないという点があります。対処法は二つあります。一つは、次のセッションの目的を引数として渡し、関連する推論が失われずに残るようにすること。もう一つは、セッション中に実際には検証されていないのに自信を持って書かれた主張、例えば「X はまだ作られていない」「Y は完了している」といった記述に注意することです。次のエージェントは文書を契約として扱い、再確認しないため、思い込みを事実として書くと、その後のすべてが誤った前提の上に進んでしまいます。渡す前に文書を読み返し、仮定にすぎない記述は曖昧な表現に変えましょう。

スラッシュコマンドではなくスキルとして実装されている理由は、どちらも動作するが、スキルとして提供すると他のスキルと同じインストール経路で配布・更新でき、共有しやすいからです。エージェントが自発的に発動しないという制約は、frontmatter によって設定されています。

このスキルが機能しているかどうかは、いくつかの指標で判断できます。文書が会話全体のごく一部のサイズであること。仕様や issue、diff がコピーされたテキストではなくパスや URL として載っていること。元のセッションを開かなくても冷静に読み、次に何をすべきか分かること。新しいエージェントが再説明を求めずに作業を開始すること。分岐を使った場合は、元のセッションがそのまま残っていること。提案されたスキルセクションが、自分なら選ぶであろうスキルを示していること。文書内に鍵やトークン、パスワードが一切含まれていないこと。

/handoff は、ビルドチェーンの中ではなくセッションとセッションの継ぎ目に位置する、いつでも使えるスタンドアロンのスキルです。ただし、その適用範囲は狭く、正直なところ、段階境界で使える他の4つの選択肢より使用頻度は低いでしょう。最も近い隣人は prototype です。プロトタイプは独自のディレクトリに置かれ、外に出て戻ってくるという往復が、まさにこのスキルが最も得意とする動きだからです。段階の境界で「続行」「クリア」「ハンドオフ」「委譲」「コンパクト」のどれを選ぶべきか迷ったときは、ask-matt がその5つを整理した判断ツリーを提供してくれます。