jww-handoff について
jww-handoff は、Codex、Claude、Xcode の作業セッション間で引き継ぎを行うエージェントスキルです。会話の要約ではなく、検証済みの事実と次の作業を単一の永続ファイルに記録します。
主な機能
- 01作業の引き継ぎを記録・再開
- 02リポジトリの既存ファイルを再利用
- 03確認済み事実と提案を分離
- 04ブランチ、作業ツリー、ファイルを確認
活用シーン
- 01中断前に進捗を保存
- 02新しいセッションで作業を再開
- 03複数の引き継ぎ候補から対象を選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ justin/ jww-skills --skill jww-handoffインストール後、Claude Code で/jww-handoffを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
INSTALL.mdagents/openai.yamlhooks/pre-compact.shsession-start.shprompts/codex/handoff.mdprompts/copilot/handoff.prompt.md詳細
作業の引き継ぎ
会話履歴ではなく、永続的なファイルに継続性を保持します。 自動コンテキスト圧縮は引き継ぎではありません。発言内容は要約しますが、 検証済みの内容は要約せず、新しいセッションにも引き継がれません。
Xcode の利用
Xcode では、直接依頼すれば「Write」と「Resume」の手順を利用できますが、
このスキルの Codex または Claude のプロンプトラッパーやフックは実行されません。
Xcode の会話でこのスキルを呼び出し、依頼に write または resume と
任意のタスクスラッグを記載してください。中断前の記録は手動で行う必要があります。
モードの選択
ハーネスから $ARGUMENTS が提供される場合は、その値を読み取ります。
resumeが指定されている場合、または既存の引き継ぎを指定した呼び出しの場合は、Resume に従います。writeが指定されている場合、または作業中で引数がない場合は、Write に従います。- 引数がなく、作業中でもない場合は、このリポジトリの引き継ぎファイルがあれば Resume に従い、なければ存在しないことを報告します。
2 つ目の引数はタスクスラッグを指定します。指定がない場合は、ブランチ名または明示された目的から推測します。該当する引き継ぎが複数あり、ブランチ名でも依頼内容でも特定できない場合は、候補を一覧表示し、どの引き継ぎから再開するか尋ねます。
正規ファイルの場所
- リポジトリに引き継ぎファイルまたは計画書の保存場所が記載されている場合は、それに従います。
- それ以外の場合は、リポジトリのルートにある
.handoffs/<task-slug>.mdを使用します。書き込む前に、そのパスがバージョン管理の対象外になっていることを確認してください。対象外でない場合は、引き継ぎをセッション間で保持できるよう、~/.handoffs/<repository-name>/<task-slug>.mdを使用します。/tmpやセッション用の一時領域は使用しないでください。同じ名前のリポジトリを区別する必要がある場合は、リポジトリ名を明確にしてください。次回再開時に使う代替パスを提示してください。記録を妨げることなく、必要な.handoffs/エントリを報告し、リポジトリまたはグローバルの除外設定を変更する前に許可を求めてください。引き継ぎファイルをコミットする前に許可を求めてください。 - タスクの既存ファイルを更新してください。別のバージョンを作成せず、1 つの成果を複数のファイルに分割しないでください。関連タスクは内容を繰り返さず、パスでリンクしてください。
- 引き継ぎを作成または更新した場合は、返信にファイルパスを記載してください。
Write
安定した判断点、リスクの高い操作や長時間かかる操作の前、または中断が予想される前に記録します。リポジトリで定義されている引き継ぎ形式があれば、それに従います。なければ、次のセクションを含めてください。
# <Task title>
Updated: <YYYY-MM-DD>
Branch: <branch name, when the work is in Git>
## Objective
<The outcome, and the constraints that cannot be traded away.>
## Decisions
<Each decision with the evidence that settled it, cited by file and line.>
## Touched
<Files inspected, files changed, and why each matters.>
## Validation
<Each check run, its exact command, result, and when it was observed.>
## Open
<Unresolved risks, checks not run and why, and decisions needing Justin.>
## Next
<The exact next command or edit, precise enough to run without rereading this
whole file.>
確認済みの事実と提案する作業は、別々のセクションに記載してください。検証結果を今のセッションで確認済みの証拠として記録できるのは、出力をこのセッション中に読んだ場合だけです。以前の引き継ぎに記録された有用な検証結果は、観察日を添えて保持して構いませんが、今回新たに実行したものとして記載してはいけません。失敗は、その内容を特定できる最小限の抜粋とともに記録してください。
調査中に証拠台帳を記録していた場合は、その項目を「Decisions」と「Touched」に直接反映します。会話から再導出してはいけません。
既存の引き継ぎを更新する場合は、現在の状態に照らして各セクションを見直してください。同じセクションを重複して追記したり、すでに無効になった主張を残したりしないでください。
Resume
- ソースを読む前に、引き継ぎファイルを読みます。
- ブランチ、作業ツリー、引き継ぎに変更済みと記載されているファイルを確認し、現在の状態が引き継ぎの内容と一致することを検証します。
- ソースを再確認するのは、引き継ぎが古い場合、現在の状態と矛盾する場合、または次の判断に必要な証拠が不足している場合に限ります。
- 引き継ぎとリポジトリの状態に食い違いがあれば、それに基づいて作業する前に報告します。