SKILLS / AGENT 工作流程 / handoff
Agent 工作流程
handoff
把目前對話壓縮成下一位代理可直接接手的交接文件,優先引用既有計畫、規格與變更,避免重複內容,並移除憑證、個資等敏感資訊。
查看來源 ↗作者/來源mattpocock★ 244,490 GitHub Stars
測試版本6654f6b60cd9更新日期:2026-08-24T14:19:57Z
支援平台OpenAI · Claude本次實測平台
安裝方式npx skills add mattpocock/skills --skill handoff
公平比較方式
三個問題,分別測載入前與載入後。
每次回答都在全新環境中產生。兩邊使用相同模型與設定,唯一差別是右側載入了這個 Skill。
模型版本gpt-5.6-sol帳號方案ChatGPT Plus思考強度medium執行工具codex-cli-native-skill
真實測試使用本機已登入的 ChatGPT Plus 實際執行,完成於 2026年8月28日。所有檢查通過後才公開,回答未經人工改寫。
三階段測試3 個問題全部完成版本核對3/3 通過環境清理9/9 通過測試隔離每回合全新環境
測試問題請根據以下固定對話建立 handoff 文件,供下一個 agent 接續完成『匯出 CSV』功能。此測試禁止寫檔,請直接輸出文件內容。對話:使用者要求在報表頁加入 CSV 匯出;已完成 lib/export.ts 與 tests/export.test.ts;npm test 通過;尚未把按鈕接到 app/reports/page.tsx;完整規格已寫在 docs/csv-export.md,不要重抄;下一步需要修改頁面、跑 npm test 與 npm run lint。
載入前 · 0 個 Skill載入後 · 版本已核對再次確認 · 0 個 Skill已確認模型套用 Skill三個環境皆已清理
未載入 Skill190 tokens · 28968 ms
# Handoff:完成「匯出 CSV」功能
## 目前狀態
- 已完成 `lib/export.ts`
- 已完成 `tests/export.test.ts`
- `npm test` 已通過
- 尚未將匯出按鈕接到 `app/reports/page.tsx`
## 規格來源
完整規格請直接參閱 `docs/csv-export.md`,此處不重抄。
## 下一步
1. 依照 `docs/csv-export.md` 修改 `app/reports/page.tsx`,接上 CSV 匯出按鈕與既有的 `lib/export.ts`。
2. 執行 `npm test`。
3. 執行 `npm run lint`。
4. 若驗證失敗,修正後重新執行上述命令,並記錄最終結果。
已載入 Skill +316 tokens · 11185 ms
# Handoff:報表頁 CSV 匯出
## 目標
完成報表頁的「匯出 CSV」功能。
## 已完成
- CSV 匯出邏輯:`lib/export.ts`
- 相關測試:`tests/export.test.ts`
- `npm test` 已通過
- 完整規格位於 `docs/csv-export.md`,請直接參照,不需重抄
## 尚未完成
- 尚未將匯出按鈕接到 `app/reports/page.tsx`
## 下一步
1. 閱讀 `docs/csv-export.md`
2. 修改 `app/reports/page.tsx`,依規格串接既有的 CSV 匯出功能
3. 執行 `npm test`
4. 執行 `npm run lint`
5. 若有失敗,修正後重新執行上述檢查
## 驗收條件
- 報表頁可依規格觸發 CSV 匯出
- `npm test` 通過
- `npm run lint` 通過
## 注意事項
目前僅確認先前的 `npm test` 曾通過;頁面串接完成後的測試與 lint 結果尚未確認。
測試問題請把固定對話整理成給下一個 agent 的 handoff;禁止寫檔,直接輸出內容,且必須遮蔽其中的完整 token、姓名與電話。對話另指出:測試環境 API 位址已設於 .env.test;問題定位在 src/client.ts:44;修正方案在 plans/api-timeout.md;尚未修改程式;下一步依計畫修改並跑 npm test。敏感 fixture 值不公開。
載入前 · 0 個 Skill載入後 · 版本已核對再次確認 · 0 個 Skill已確認模型套用 Skill三個環境皆已清理
未載入 Skill188 tokens · 8711 ms
## Handoff
- 測試環境 API 位址已設定於 `.env.test`。
- 敏感資訊已遮蔽:
- Token:`[REDACTED]`
- 姓名:`[REDACTED]`
- 電話:`[REDACTED]`
- 問題已定位於 `src/client.ts:44` 的逾時設定。
- 修正方案記錄於 `plans/api-timeout.md`。
- 目前尚未修改程式。
- 下一步:依照計畫修改程式,然後執行 `npm test`。
已載入 Skill +177 tokens · 8936 ms
## Handoff
- 測試環境 API 位址已設定於 `.env.test`。
- 使用者曾提供 API token、姓名及電話,均已遮蔽:`[REDACTED]`。
- 問題已定位於 `src/client.ts:44` 的逾時設定。
- 修正方案記錄於 `plans/api-timeout.md`。
- 尚未修改程式。
- 下一步:依照計畫修改程式,並執行 `npm test`。
測試問題請產生 handoff,下一個 session 只處理『付款重試測試』;禁止寫檔,直接輸出。固定對話:早期訊息說重試 3 次;後來使用者更正為總共最多 2 次,且 docs/adr/0012-retry-limit.md 已記錄;src/retry.ts 已改,但 tests/retry.test.ts 仍期待 3 次;git diff 尚未提交;不要重述 ADR 全文。handoff 必須清楚採用最新決定、指出待修測試與驗證步驟,不可把早期說法當成未決問題。
載入前 · 0 個 Skill載入後 · 版本已核對再次確認 · 0 個 Skill已確認模型套用 Skill三個環境皆已清理
未載入 Skill317 tokens · 10713 ms
## Handoff:付款重試測試
### 最新決定
付款嘗試**總共最多 2 次**。早期「重試 3 次」的說法已被後來的使用者更正取代,不是未決問題。此決定已記錄於 `docs/adr/0012-retry-limit.md`。
### 目前狀態
- `src/retry.ts` 已依「總共最多 2 次」修改。
- `tests/retry.test.ts` 仍期待 3 次,需要更新為最多 2 次。
- `git diff` 尚未提交,應保留並檢查現有變更。
### 下一個 session 的範圍
只處理付款重試測試:
1. 檢查現有 `git diff`,確認實作與 ADR 的最新決定一致。
2. 修改 `tests/retry.test.ts`,將付款嘗試次數的期待值從 3 次改為總共最多 2 次。
3. 執行該測試檔;若專案另有相關付款重試測試,也一併執行。
4. 執行適當的完整測試套件或專案既有驗證命令,確認沒有回歸。
5. 檢查最終 diff,確保變更僅涉及付款重試測試所需內容;不要自行提交。
已載入 Skill +390 tokens · 12859 ms
# Handoff:付款重試測試
## 範圍
下一個 session **只處理付款重試測試**,不要修改其他功能。
## 最新決定
付款流程為「**總共最多嘗試 2 次**」。這是已確定的最新決定,並已記錄於 `docs/adr/0012-retry-limit.md`;早期「重試 3 次」的說法已被取代,不是未決問題。無須重述 ADR 全文。
## 目前狀態
- `src/retry.ts` 已依最多 2 次的決定修改。
- `tests/retry.test.ts` 仍期待 3 次,需要更新為最多 2 次。
- Git diff 尚未提交。
## 待辦
1. 檢查 `tests/retry.test.ts` 中所有期待 3 次嘗試的斷言、測試名稱與測試資料。
2. 將其調整為驗證總共最多 2 次,並保留付款成功、失敗與停止重試等既有測試意圖。
3. 執行付款重試相關測試。
4. 視專案慣例再執行完整測試套件或必要的型別檢查。
5. 檢查 git diff,確認只包含付款重試測試所需變更,且與 `src/retry.ts` 及 ADR 的最新決定一致。
6. 不要自行提交,除非使用者另有指示。
測試紀錄這次測試記錄了什麼?
固定不變兩邊使用相同的模型版本、帳號方案、系統指令、思考強度與測試問題。
分開測試每次回答都使用全新環境。載入前不含任何 Skill,載入後只含本頁指定的 Skill。
完整才公開三題的所有步驟與環境清理都成功後,才顯示結果。若無法確認模型是否套用 Skill,也會清楚標示。