handoff
/handoff — 跨 context 接手 prompt
當你要切換 context(開新對話 / 即將 /compact / 換機器繼續 / 隔天再戰),本 skill 會掃描當前狀態與對話脈絡,產出自包含的接手 prompt——貼到任何新 context 都能無縫接手,不需要再口頭交代背景。
使用情境(共用同一流程):
- 新 context 接手 — 「給我新 context 完整需要的 prompt」
- /compact 前準備 — 「我要準備 compact 了,給我 compact 之後可以用的 prompt」
- 跨機器 / 跨日繼續 — 「幫我整理 handoff」
與其他 skill 的差異:
everything-claude-code:save-session存整份 JSON,需配resume-session載入;本 skill 只輸出純文字 prompt,跨環境通用everything-claude-code:strategic-compact提示何時該 compact;本 skill 解決 compact 之後怎麼接手/update沉澱長期知識庫;本 skill 為短期接手橋樑
Step 1:偵測當前狀態(事實層)
並行收集當前環境快照(避免接手者誤判):
git rev-parse --abbrev-ref HEAD # 當前 branch
git status --short # 未 commit 變更
git log --oneline -10 # 近期 commit
git stash list # stash 狀態
pwd # 工作目錄
額外掃描(依當前情境條件性執行):
- 是否在 worktree:檢查
.git是檔案還是目錄 - 是否有進行中的 plan:
ls plans/active/*.md 2>/dev/null - 是否有 background process:本對話中尚未結束的
Bash run_in_background - 是否有 stash:
git stash list
路徑、branch、commit hash、檔名都必須記錄絕對值——接手者沒有當前對話的記憶,模糊指涉(「那個檔案」「剛剛的 branch」)會直接報廢。
⚠️ 相關性標註(必要): 並非所有偵測到的環境項目都與本次工作相關。 stash、
plans/active/*.md、background process、其他 untracked 檔案——逐項判斷是否屬於本次任務脈絡:
- 相關:直接列出
- 不相關:在 Step 3 的「環境快照」中明確標註「不相關於本任務」(例:
Stash(不相關):stash@{0}: 舊的 plan-archive 工作)不標註會讓接手者誤判:以為 stash 是任務遺留 → 嘗試 pop → 污染工作目錄。
Step 2:對話脈絡萃取(建立 Context Manifest)
回顧本次對話,逐項建立 manifest(依據:DAMA-DMBOK Completeness)。Manifest 總數 = Step 5 完整率分母:
| # | 區塊 | 內容摘要 | 已寫入 prompt? |
|---|---|---|---|
| 1 | 任務目標 | 使用者最初提出什麼需求? | 待比對 |
| 2 | 當前進度 | 已完成哪些步驟?已跑過哪些指令? | 待比對 |
| 3 | 決策脈絡 | 為什麼選 X 不選 Y?已放棄哪些方案? | 待比對 |
| 4 | 環境快照 | branch / worktree / 修改檔案 / 進行中 plan | 待比對 |
| 5 | 重要 context | 不會反映在 git diff 的隱含資訊(外部討論、效能數據、ticket 編號、社群共識/反面意見) | 待比對 |
| 6 | 待辦項目 | 還沒做的事,依優先順序排列 | 待比對 |
| 7 | 立即可執行的下一步 | 接手者第一個 prompt 該下什麼?(必須具體到檔案路徑與動作) | 待比對 |
萃取原則:
- 只記錄真正討論/做過的事,禁止揣測或補白
- 若某區塊不適用,明確標記
N/A並附理由(例:「N/A — 本次無放棄方案」) - 引用使用者原句時保留原文,不擅自改寫
Step 3:產出 Handoff Prompt
依下列模板輸出,所有區塊必須對應 Step 2 manifest 七項:
# Handoff Prompt(產出時間:{{YYYY-MM-DD HH:MM}})
> **給接手 Claude:** 先讀完整個 prompt,再從「立即可執行的下一步」開始。
> 動手前先 `git status` 與 `git rev-parse --abbrev-ref HEAD` 確認與下方環境快照一致。
## 1. 任務目標
{{使用者原始需求,盡量保留原句}}
## 2. 當前進度
- **已完成:**
1. ...
2. ...
- **進行中:** ...
- **被擋住的事項:** {{若無則 N/A}}
## 3. 決策脈絡
- **採用:** 選 X 不選 Y,因為 ...(含依據:RFC/業界實踐/效能數據/社群共識)
- **已放棄:** 試過 A,因 B 放棄
- **反面意見/已知陷阱:** ...
## 4. 環境快照
- 工作目錄:`{{absolute path}}`
- Branch:`{{branch}}`
- Worktree:{{是 — 主 repo 在 X / 否}}
- 未 commit 變更(**本任務相關**):
```
{{僅列出本次工作產生的變更}}
```
- 未 commit 變更(**不相關**):{{若有與其他任務交雜的變更,列在此處避免接手者誤動,或 N/A}}
- 進行中 plan:`{{plans/active/<slug>.md}}` 或 N/A
- 進行中 plan(不相關):{{列出與本任務無關的 active plans 提醒接手者忽略,或 N/A}}
- Stash:{{若與本任務相關列出,否則明確標註「不相關 — stash@{0}: ...」或 N/A}}
- Background process:{{列出未結束的,或 N/A}}
## 5. 重要 context(不會反映在 diff)
- Ticket:{{TICKET-XXXX / Notion URL / N/A}}
- 外部依據:{{引用過的 RFC/文件/社群討論連結}}
- 隱含知識:{{調查數據、效能比較、業界慣例}}
## 6. 待辦項目(依優先順序)
1. ...
2. ...
## 7. 立即可執行的下一步
> **直接複製以下作為第一個 prompt:**
```
{{1–2 句具體指令,含完整檔案路徑與要做的動作。
範例:「打開 /abs/path/to/file.ts 第 42 行,把 X 改成 Y,然後跑 npm test」}}
```
Step 4:輸出方式(HITL)
使用 AskUserQuestion 確認:
Handoff prompt 已準備好,要怎麼輸出?
- 直接顯示 — 印在對話中供你複製
- 寫入檔案 — 存到
.claude/handoff/handoff-{{YYYY-MM-DD-HHMM}}.md- 兩者皆要 — 顯示 + 存檔(建議:compact 前用此選項,compact 後若 prompt 沒留下還有檔案可救)
若選 2 或 3,自動建立目錄:
mkdir -p .claude/handoff
Step 5:完整性驗證(依據:DAMA-DMBOK Completeness)
輸出後逐條比對 Step 2 manifest,產出驗證表:
| # | 區塊 | 涵蓋狀態 | 備註 |
|---|---|---|---|
| 1 | 任務目標 | ✅ / ⚠️ / N/A | |
| 2 | 當前進度 | ✅ / ⚠️ / N/A | |
| 3 | 決策脈絡 | ✅ / ⚠️ / N/A | |
| 4 | 環境快照 | ✅ / ⚠️ / N/A | |
| 5 | 重要 context | ✅ / ⚠️ / N/A | |
| 6 | 待辦項目 | ✅ / ⚠️ / N/A | |
| 7 | 立即可執行的下一步 | ✅ / ⚠️ / N/A |
完整率 = (✅ + N/A) / 7
- 完整率 = 100%:直接交付
- 完整率 < 100%:警告使用者哪些區塊缺漏,附建議補充方向
- 完整率 < 70%:阻止輸出 — 對話資訊不足,要求使用者補充後重跑
觸發語句範例
下列任一句話應觸發本 skill:
- 「給我新 context 完整需要的 prompt」
- 「我要準備 compact 了,給我 compact 之後可以用的 prompt」
- 「幫我整理 handoff」
- 「這個對話太長了,幫我寫個接手 prompt」
- 「我要換機器繼續,給我接手用的 prompt」
設計原則
- 自包含:接手者不需要看到當前對話,光憑 prompt 就能繼續工作
- 絕對路徑:所有引用都用絕對路徑/branch 名/commit hash,禁止相對指涉
- 動作明確:「立即可執行的下一步」必須是可直接複製貼上的具體指令
- manifest 驗證:產出後逐條比對,避免遺漏區塊
- 不揣測:對話中沒提到的事一律標 N/A,禁止補白
More from ashe-li/agent-skills
update
更新知識庫 — 依序執行 doc-updater、code-reviewer、對話 context 整理、learn-eval,將本次 session 的變更沉澱為文件與知識。
37design
開發設計 — 自動盤點 ECC 資源,透過 planner 建立完整實作計畫,輸出至 plans/active/<slug>.md 供使用者確認後才進入實作。
37pr
總結當前工作、commit、推送並建立或更新 PR。自動將對話脈絡寫入 PR description,確保 reviewer 能快速理解背景。
36assist
萬用助手 — 自動分析情境、盤點 ECC 資源、智慧路由至最佳 agent pipeline,一鍵完成複雜工作流。
35ecc-skill-defer
Manage ECC skill loading — defer unused skills to save init tokens, restore on demand. Use when user wants to check, defer, or restore ECC skills.
31plan-archive
將已完成的 plan 從 plans/active/ 歸檔至 plans/completed/,補上驗證結果與完成時間。適合在實作結束後呼叫。
27