dropoff · git:20260730.864bb3f · 2026-07-30 · sha256 ec30878ee973ad4c

dropoff git:20260730.864bb3fA

Immutable. This exact content never changes and is served at /api/v1/blob/ec30878ee973ad4c.

---
name: dropoff
description: 跨專案/跨 session 交接「推球」。把一件事連同完整脈絡交給另一個專案(或同專案的未來 session)的 Claude。當使用者說「交接給 X」「handoff 給某專案」「推球給 X」「把這件事丟給下個 session」時觸發。產出=目標專案 `.claude/handoffs/` 下的一張交接卡(Markdown 檔),對面 session 用 /pickup 接手。 English triggers: "hand this off to X", "drop this off for <project>", "pass this to the next session".
---

# /dropoff — 交接·推球

把一件事**可靠地**交給另一個 Claude session(別的專案、或同專案的下一個 session)。

核心問題:對面 session 讀不到你這個對話的 context。口頭交代會漏、聊天記錄會斷 —— 所以交接卡必須是**磁碟上的檔案**,寫清楚到「陌生 session 光看這張卡就能接手」。

> 🤖 R2-D2 時刻:Leia 把 Death Star 圖紙和求救訊息存進 R2 的記憶體 —— 這就是 dropoff。
> 訊息不靠 Leia 本人送達,靠的是那台會自己滾去找 Obi-Wan 的機器人。

## 交接卡格式

一張卡 = 一個 Markdown 檔,放在**目標專案**的 `.claude/handoffs/` 目錄:

```
<目標專案根目錄>/.claude/handoffs/YYYYMMDD-HHMM-<短slug>.md
```

```markdown
---
status: pending          # pending → picked → done
from: <來源專案或 session 描述>
to: <目標專案>
created: YYYY-MM-DD HH:MM
priority: high | normal | low
---

# <事項一句話>

## 要做什麼
<具體、可執行的任務描述>

## 脈絡(陌生 session 也看得懂的程度)
<為什麼要做、之前做到哪、決策背景>

## 相關檔案/連結
- <路徑或 URL,一行一個>

## 完成的定義
<怎樣算做完 —— 可驗證的條件,不是感覺>
```

## 用法

`/dropoff <目標專案路徑或名稱> <事項>`

- 沒給目標 → 問使用者。
- 目標是「同專案的未來 session」→ 寫進本專案自己的 `.claude/handoffs/`。

## 動作

1. **建目錄**(若不存在):`mkdir -p <目標專案>/.claude/handoffs`
2. **寫卡**:依上述格式。「脈絡」與「完成的定義」是卡的靈魂 —— 只寫標題的交接卡等於沒交接。
3. **驗證落地**:寫完 `cat` 回讀確認內容完整(寫入可能靜默失敗,別信工具回的成功訊息字面)。
4. **回報**:卡片路徑+一句摘要+提醒「對面 session 跑 `/pickup` 即可接手」。

## 鐵律

- **一卡一事**。兩件事就寫兩張卡,別打包。
- **脈絡自包含**:假設讀卡的 session 對你的對話一無所知。需要的背景、連結、路徑全放卡上。
- **時效性高的事**,除了寫卡,再用你手上現有的即時通道(通知、訊息)提醒使用者一聲 —— 卡是 pull 模型,對面不開工就不會讀。
- 配對命令=`/pickup`(對面接手)。

## 進階:接上你自己的任務系統

如果你有跨專案的任務管理系統(CLI todo、Notion、Linear、GitHub Issues…),可以把「寫卡」替換成「在你的系統建一筆 type=dropoff 的任務」,`/pickup` 端同步替換查詢方式。檔案版是零依賴的最小公倍數,不是天花板。