Handover — エージェント間引き継ぎ文書の生成
Claude → Codex / Cursor / OpenCode / 次セッションへの引き継ぎ文書を生成する。抜け漏れ(worktree パス、禁止事項、完了条件、委任契約)を防ぐ。
委任契約(必須欄 — 埋まらない委任は発射しない)
- 停止条件と最大反復: 既定 10(超えたら停止して報告)
- 報告間隔 / 無進捗タイムアウト: 既定 30 分 / 45 分(機械強制は harness H1)
- 課金上限: $<実値を書く。既定 $25>
機械強制(harness H1)は CODEX_H1_RESTRICTED_MODELS に一致するモデルでのみ
掛かる。既定は
sol。それ以外のモデルでは上限を評価せず、消費は台帳の measure / warn 行にだけ残る。2026-09-02 に一律 $5 の上限が通常作業を止めた (301 tool call で spend=$5.34、budget_source はunknown-model:gpt-5.6-luna@max-rate)ため、実績のある最上位モデルへ絞った。 この欄に書く値は 制限対象モデルに対する上限である。 - 発射前の実現可能性チェック: 「この委任が不可能であることを示す最安のクエリ」を
先に実行し、コマンドと結果をここに貼る(貼付なしは欠陥)。
到達の前提条件を含める: 委任が依存する強制点・設定・workflow が
対象リポ・対象 locus に実在するかを
gh api/lsで実測して貼る。 「配備されているはず」は欠陥。〔2026-08-22 追加。Phase 11/20/21 で監督が テンプレ・payload・h5 の配備を確認せずに設計し、到達 0% / 3-4 欄 / 1/4 を招いた〕 - 人間ゲート列挙(「リマインドのみ」セクションに分離)+ 待ち中の可否: 準備=可 / 本番系の迂回経路新設=不可(迂回するなら停止・権限・巻き戻しの 1 枚合意を先に)
- 反証可能な完了条件: 「何を実測すれば偽と分かるか」を 1 行で
- [P7] 事前スパイク回答欄: 新規フレームワーク/外部 API は実ソース・実レジストリで 確認したか。性能仮説は実測したか。org ポリシー(allowlist/quota)は確認したか。 (「確認せず採用する」と明記して進むことは許可 — 空欄のみ不可)
- 完了条件の検査: 着手前に、各完了条件について「満たしても目的未達の入力」を 1 つ構成できるか試み、できたら着手前に差し戻す(着手後の追記は無効)
- 追加を提案しない: 新しいガード・hook・workflow・required check が必要と判断したら
実装せず提案して停止する(Issue #27 凍結)。
ただし「装置の追加」と「既存装置の被覆修復」を区別する。
既存の強制点が塞ぐべき形を塞げていないと分かった場合、それは追加ではなく修復であり、
その場で塞ぐことが required。発見だけして「スコープ外」「追加しなかったもの」に
計上して閉じてはならない(無効化条項の禁止 = completion-criteria-spec.md §2-1)。
判定: 新しいファイル・新しい登録・新しい required check が要る → 追加(禁止)。
既存ファイルの判定条件を直すだけ → 修復(必須)。
修復した場合は F1(入力空間の列挙)で修正前 red を実測して示すこと。
〔2026-08-11 追加。本欄が無かった 2 波で、Codex の
+HEAD:mainと Claude Code のrefs/heads/系の穴が、発見済みのまま連続して放置された〕 - 強制点の実測表: 2 ツール以上に触れる委任は、設計節より前に次の表を埋める。
空欄が 1 つでもあれば着手前に差し戻す。
ツール 強制点のパス 入力契約 同一マトリクスでの実測 測定コマンド (測定器: claude-code-skills/tests/test-cross-tool-force-matrix.sh)
欄名は受領側(Codex / Cursor / OpenCode AGENTS・rules)と一字一句一致させること。
H8 発射前補助欄(必須)
委任契約の既存 10 欄は変更せず、以下の 7 欄を別節として持たせる。 各欄の本文は 20 文字以上。これは宣言形式の強制であり、内容の真実性や 実装前に書かれたことまでは機械判定できない。
- 一次資料: 要求を抽出した Issue・ADR・仕様のパスまたは URL
- 要求インベントリ: 実装と照合する要求の全件一覧
- 突合表: 要求と受入基準・証跡の対応表
- 標準質問: ユーザー像・審美・LLM 挙動境界・安全境界・セキュリティ境界
- 北極星: メトリクスと測定周期
- 反証軸: F1 の軸・真理値、F2 の事故入力・再現入力、F3 の片側変異のいずれかを実装前に記載
- 撤収: 回収先と
active / recover / preserve / retireのいずれか
テスト greenのみは反証軸として扱わない。
手順
- 現状を実データで収集(すべて read-only):
git rev-parse --show-toplevel && git branch --show-current && git log --oneline -5 git worktree list git status --porcelain | head -20 gh pr list --state open --limit 10 --json number,title,headRefName,isDraft gh issue list --state open --limit 15 --json number,title,labels - 会話コンテキストから埋める: 目的、経緯、未完了タスク、判断済み事項、ハマりポイント。
- 委任契約の必須欄を必ず埋める(上記)。空欄のまま発射しない。
- 宛先別の調整:
- Codex: 絶対遵守ルールブロックを含める。
- Cursor / OpenCode: 所有ファイル範囲と他 lane 非干渉を明記。
- 次セッション: TaskList 状態と最初に読むファイルを明記。
- 共通条項を機械的に連結する(下記「共通条項」節)。
- テンプレートで文書化し、保存先を確認: 標準は
docs/handover/YYYY-MM-DD-<topic>.md。
共通条項(common-clauses.md が正本)
全レーンに共通する注意書きは skills/handover/common-clauses.md の 1 ファイルだけに置く。
生成する各ブリーフへは、その中身を そのまま挿入する。
cat skills/handover/common-clauses.md
要約・抜粋・言い換えをしない。 それをした瞬間に不揃いが戻る。 レーン固有の事情は共通条項ではなく、各ブリーフの「所有範囲」欄に書く。
〔2026-08-27 / #91 項目 3〕手書きで各ブリーフへ注意書きを写した結果、 同じ日に、同じ注意書きを片方のブリーフだけ落とした。 落とした側が develop 既存の 4 ファイルを独立に再実装し、add/add 競合 4 件・ 650 行 対 290 行でブランチ側が全損した。不揃いは記憶に依存するので、 レーン数に比例して漏れる。連結すれば漏れは構造的に消える。
条項を変えるときは common-clauses.md だけを直す。
過去のブリーフへ写した文言を個別に追いかけない。
文書テンプレート
# Handover: <topic>
**作成日**: YYYY-MM-DD / **作成者**: Claude Code / **宛先**: <Codex|Cursor|OpenCode|次セッション>
## 作業環境
- Repo: <パス> / Branch: <name>
- Worktree: <パス>
- 現況: <clean / dirty>
## 目的(1〜2行)
## 経緯(3〜5行)
## 委任契約(必須)
1. 停止条件と最大反復: ...
2. 報告間隔 / 無進捗タイムアウト: ...
3. 課金上限: ...
4. 実現可能性チェック: <cmd + 結果>
5. 人間ゲート: ...
6. 完了条件(反証可能): ...
7. 事前スパイク(レジストリ/実物照合): ...
8. 完了条件の検査: ...
9. 追加を提案しない: ...
10. 強制点の実測表: <横断時のみ。空欄なら差し戻し>
## 一次資料
<Issue・ADR・仕様のパスまたは URL と、どの要求の出典か>
## 要求インベントリ
<実装と照合する要求を漏れなく列挙する>
## 突合表
<各要求と受入基準・実測証跡の対応を表示する>
## 標準質問
<ユーザー像・審美・LLM 挙動境界・安全境界・セキュリティ境界への回答>
## 北極星
<目的到達を測るメトリクスと測定周期、判定に使う数値の出典>
## 反証軸
<F1 の軸・F2 の事故入力・F3 の片側変異のいずれかを 20 文字以上で記載>
## 撤収
<回収先と active / recover / preserve / retire のいずれかを記載>
## タスク
1. <task> — 完了条件: <検証可能条件>
## 共通条項
<skills/handover/common-clauses.md の中身をそのまま貼る。要約・抜粋しない>
## 所有範囲
<共通条項に**書かれていない**、このレーン固有の範囲だけを書く>
- 触ってよい: <実パスを列挙。「関連ファイル」のような参照だけの記述は欠陥>
- 触ってはいけない: <実パスを列挙>
- 禁止事項枠: <このレーン固有の禁止。共通の禁止は共通条項にあるので繰り返さない>
## 完了時の報告形式
- Evidence: <コマンド> | <要点 or ログパス> | <時刻>
- 回収コミット SHA / 削除 worktree・ブランチ / 判断待ち在庫
## 絶対遵守ルール(Codex宛のとき)
...
注意・禁止事項
- 認証情報を文書に含めない。
- 完了条件のないタスクを書かない。
- one-shot 委任(検収往復なし)は禁止(delegation.md)。