Communityライティング&編集github.com

引き継ぎ (Handover)

変更内容をレビュアーに明確に伝えるための、最小限かつプロジェクトに依存しないスキルとルール。

引き継ぎ (Handover) とは?

このスキルは、AIコーディングエージェント(Claude Code、Cursorなど)が、完了した変更をレビュアーに効果的に引き継ぐための手順を提供します。レビュアーは差分(diff)のみを手にしており、計画ドキュメントや過去のセッション情報にアクセスできないことを前提に、変更の意図や判断の根拠を明確に伝えることを目的としています。具体的には、タスクを特定し、関連するアーティファクト(チケット、計画、決定ログなど)と差分を収集・照合した上で、「何をなぜ変更したか」「注目すべき決定事項」「レビューガイド」「既知のギャップ」という4つのセクションからなる引き継ぎドキュメント(HANDOVER.md)を生成します。このドキュメントはPR説明としてそのまま利用でき、レビュアーは差分だけを見て変更内容を完全に理解できるようになります。重要なのは、推測を禁止し、根拠は必ずソースに基づいて記述すること、そしてレビュアーがアクセスできない情報(計画ドキュメントやセッションの内容など)には言及しないことです。

対応~Claude Code~Codex CLI~Cursor
npx skills add eai-org/agent-toolkit

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

引き継ぎ (Handover) は何をしますか?

完了した変更を、レビュアーが差分から意図を再構築する必要がないようにパッケージ化します。レビュアーが差分のみを手にしており、計画ドキュメント、セッション、それらの存在に関する知識のいずれも持っていないことを前提として記述します。

タスクを特定する

入力は、チケットID、スラッグ、計画アーティファクトのパスなどの部分的な参照、または何もなし(そのセッションのタスクを意味する)です。新しいセッションでは、ブランチ名と最近のコミットから推測します。それをタスクの計画ホームに解決します。計画ホームとは、プロジェクトの計画ディレクトリ内の <id>-<slug>/ ディレクトリ、または共有ファミリディレクトリ内のフラットな <id>-<slug>.* ファイル群です。明確な一致が1つ → 続行し、ホームと見つかったアーティファクトを明示します。推測された場合、または複数の候補がある場合(-vN、…)→ 最初に確認します。ローカルに一致するものがない明示的な参照 → 停止して質問します。決して推測しないでください。

収集する

以下を読みます。存在しないものはスキップします。

  1. タスクアーティファクト — 計画ホーム内のすべての <id>-<slug>*.md:チケット、要件、計画、決定ログ、以前のレビューと引き継ぎラウンド、その他該当するもの。
  2. 関連チケット — 1ホップのみ:親(薄いコンテナのみを通過して上位に移動)、直接の先行/後続、明示的な関係、ファミリディレクトリの兄弟。自身の関係は決して拡張しません。ローカルの .TICKET.md を最初に確認します。関連チケットにローカルファイルがなく、それが「なぜ」の判断に影響を与えるように見える場合にのみ、トラッカーから取得します。取得するかどうか迷ったら、質問します。
  3. セッション — 変更を生成した場合の決定、方向転換、制約。
  4. ターゲットに対する差分とコミットの件名。

各ソースは1回だけ、アーティファクトが必要とする以上に深くは読みません。差分全体をざっと読み、レビューガイドで名前を挙げるファイルのみを深く読みます。決してコミットごとに履歴を再構築しません。どのコミットが何を変更したかは差分の役目であり、あなたの役目ではありません。

次に、計画のステップと受け入れ基準を差分と双方向で照合します。計画されているが存在しないもの、存在するが計画されていないもの。すべてのソースが読まれたか存在しないことが確認され、すべての計画された項目が照合された時点で完了です。

根拠を決して発明しない

「なぜ」を述べるのは、ソースがそれを与えている場合のみです。何も説明していない逸脱は、作成者に一度質問します。回答がないか質問できない場合は、そのまま平易な言葉でフラグを付けて出荷します(「なぜ記録されていない—確認する価値あり」)。意図しないギャップである可能性があるためです。ソーシングはあなたのゲートであり、レビュアーの読み物ではありません。それはあなたが何を書いてよいかを決定し、テキストには決して現れません。 確信が持てない場合は、常に質問します。決して推測しないでください。

アーティファクト

計画ホーム内の <slug>.HANDOVER.md。すでに存在する場合は <slug>.HANDOVER-2.md、-3、… — 決して上書きしません。計画ホームがない → 内容を提示し、保存場所を尋ねます。その本文はPR説明としてそのまま貼り付け可能で、単独で完結します。

  • レビュアーが開けるもののみに言及 — トラッカーのURL、またはブランチにコミットされていることを確認したファイル。計画ドキュメント、決定ログ、セッション、コミットハッシュなど、その他すべてはリンクも名前も付けません。それが言っていることを書きます(「これは〜を意図していた」)、それがどこで言っているかは書きません。
  • 関連チケットは、「なぜ」がそれに依存している場合を除き、言及しません(「に備えてこのように構築した」)— その場合はトラッカーのURLを引用します。
  • 画面1つ分以下、約400語。以下の上限は目標ではなく制限です。
  • 平易なレビュアー向けの言葉遣い、このスキルの語彙は決して使いません。ドラフトを作成する前に、実際に use-conversational-language を呼び出します。そのルールを記憶から暗唱してもカウントされません。

セクションは、本当に空の場合のみスキップします。

  1. 何を、なぜ — 2〜3行。
  2. 知っておくべき決定事項 — 最大5行。各行:何が選ばれたか、または計画から逸脱した点、その理由または理由なしのフラグ、そしてコードのどこで確認できるか。
  3. レビューガイド — 判断が重要ないくつかのファイルとその理由。残りは機械的なものとして名前を挙げます。
  4. 既知のギャップ — 最大3つ:欠点、前提、未解決の質問。

すべてのセクションが埋められるか、意図的にスキップされ、確認されたことが確認されていないように読めず、テキスト内でレビュアーが開けないものを指しているものがなくなった時点で完了です。

境界

  • ソースファイルは変更しません。引き継ぎドキュメントのみが書き込まれるファイルです。
  • プッシュしたり、PRを開いたりコメントしたりすることは決してありません。公開はユーザーの明示的な判断です。

関連スキル