Community生產力與協作github.com

ce-pickup

使用本地模型從過往 Hermes 工作階段提取對話交接文件,無需消耗前沿模型 token。

ce-pickup 是什麼?

此技能旨在透過本地運行的 Ollama 模型,從過往的 Hermes 工作階段中提取『ce-handoff/v1』格式的對話摘要,完全不需要消耗任何付費的前沿模型 token。它能直接將輸出儲存為標準的 Markdown 文件,因此可以立即使用 `/ce-handoff resume <路徑>` 指令來恢復工作。這項功能適用於 Hermes、Claude Code 等支援此工作流程的開發環境,特別是在避免為重新讀取舊工作階段而浪費訂閱配額時非常有用。其核心運作方式是利用 `sqlite3`、`curl` 和 `jq` 等輕量級工具來讀取工作階段資料庫,並透過 Ollama 的 API 進行本地提取,確保流程快速、可預測且不會觸發 macOS 的 TCC 權限提示。此外,它還附帶一個『上下文天花板監控腳本』(context-ceiling-watchdog),可以持續監控活躍工作階段的上下文使用狀況,並在達到特定門檻時自動觸發提醒或執行提取動作。

相容平台~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/wesleymatosdev/skills/tree/main/workflow/ce-pickup

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

ce-pickup 是做什麼的?

使用本地模型從過往的 Hermes 工作階段中提取 ce-handoff/v1 文件。零前沿模型 token 成本。輸出是標準的 ce-handoff/v1 Markdown 格式,因此可以立即使用 /ce-handoff resume <path> 來恢復工作。

與其在冷工作階段上執行 /ce-handoff 而浪費訂閱配額來追趕進度,不如使用這個指令。

使用時機

  • 使用者想要恢復一個未完成的工作階段,但又不想花費前沿模型 token 來重新讀取它
  • 你需要從一個或多個過往工作階段取得交接文件,但上下文視窗已經被佔滿
  • 使用者要求對舊工作階段進行「拾取」(pickup) 或「追趕」(catch-up)
  • 在一個大型的冷工作階段上執行 /ce-handoff 會非常昂貴

快速開始

bash ~/.hermes/scripts/ce-pickup.sh SESSION_ID[,SESSION_ID,...]

預設輸出至 /tmp/compound-engineering-$(id -u)/ce-pickup/。

然後可以從任何輸出檔案恢復工作:

/ce-handoff resume /tmp/compound-engineering-<uid>/ce-pickup/<slug>.md

參數

  • 參數 1 (必要):以逗號分隔的工作階段 ID(來自 session_search 或 Hermes 瀏覽功能)
  • 參數 2 (選擇性):Ollama 模型名稱 — 預設為 hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF:Q5_K_M
  • 參數 3 (選擇性):輸出路徑覆寫

環境變數覆寫(用於測試和替代主機):CE_PICKUP_DB(預設為 ~/.hermes/state.db)、CE_PICKUP_OLLAMA_URL(預設為 http://localhost:11434/api/chat)、CE_PICKUP_MAX_CHARS(預設為 24000)。

模型路由

預設模型:Ornith-1.5-35B-A3B-GGUF:Q5_K_M — 經驗證提取品質良好,可於本地執行。

如果 Ornith 未載入,任何本地可用的 Ollama 模型都能使用。請勿使用前沿模型(這將失去本技能的意義)。

檢查可用模型:ollama list

運作原理

  1. 透過 sqlite3 讀取 ~/.hermes/state.db — 不需要 Python,不觸發 TCC 提示
  2. 按時間戳排序提取 user 和 assistant 訊息
  3. 將對話記錄截斷至 24,000 字元(約 6k token)— 足以進行有意義的提取
  4. 透過 curl 呼叫 Ollama /api/chat,並附帶結構化的提取提示
  5. 將 ce-handoff/v1 的 frontmatter 和模型主體寫入輸出目錄
  6. 檔案名稱是工作階段標題的 slug;發生衝突時會加上數字後綴

輸出格式

每個輸出檔案都是有效的 ce-handoff/v1 格式,包含:

  • artifact_contract: "ce-handoff/v1" frontmatter
  • 可取得的 session_id、cwd、branch、repository
  • 提取內容涵蓋:目標、已完成工作、當前狀態、決策/限制、障礙、失敗方法、參考資料、後續步驟

上下文天花板監控腳本(附屬工具)

scripts/context-ceiling-watchdog.sh 是一個確定性的、無代理的即時工作階段上下文監控器。它會估算每個活躍工作階段的當前上下文(active=1 的訊息內容 ÷ 4 字元/token — 切勿使用 sessions.input_tokens,因為這是包含上下文重新讀取的累積計費量),並執行以下動作:

  • >= 50k 提醒 — 一行提示,每小時重複一次
  • >= 70k 警示 — 檢查點警告,每 30 分鐘重複一次
  • >= 80k 提取 — 在本機執行 ce-pickup 並報告 ce-handoff/v1 路徑; 提取後,僅在工作階段再增加約 10k 時才會重新發出警示(臨界值)

除非觸發門檻,否則它保持靜默(空輸出),因此可以直接整合到具有變更偵測功能的無代理 cron 工作中。狀態資料儲存在 ~/.cache/context-ceiling-watchdog/(純文字 TSV — 沒有 LLM 記憶體,沒有遞迴連續性)。它永遠不會寫入 Hermes 設定或執行時期狀態;state.db 是以 sqlite3 -readonly 參數開啟。

無需真實模型進行測試:bash scripts/mock-ollama.sh 21143 & 然後執行 bash scripts/test-watchdog.sh(使用固定資料庫和縮放後的門檻值,執行 20 次檢查)。

常見陷阱

來自 Python 的 TCC 對話框(macOS Sequoia+):在具有廣泛授權的應用程式中以子程序方式執行 Python 可能會觸發針對 iCloud Drive 或「文件」的 TCC 提示 — 即使在僅讀取 ~/.hermes/state.db 時也是如此。此 Shell 腳本僅使用 sqlite3 + curl + jq + awk,因此不會觸發 TCC。除非使用者明確接受 TCC 提示,否則切勿使用基於 Python 的此工作流程實作。

對話記錄截斷:24k 字元涵蓋大多數工作階段。非常長的工作階段(200 多條訊息且包含大量工具輸出)會從尾部被截斷。如果交接文件感覺內容薄弱,請將其分割成更狹窄的查詢。

思考模型 + num_predict:Ollama 的 num_predict 會限制產生的 token 總數,這包含 message.thinking。思考模型(Ornith 就是其中之一)可能會將整個預算消耗在思考通道中,並傳回空值或尾端被截斷的 message.content — 而腳本只讀取這個內容。症狀是:「Ollama 回應為空」或交接文件在中間斷句,看起來像是模型品質問題,但實際上是承載(payload)錯誤。腳本會發送 think:false(並帶有一個不使用此旗標的重試備援機制,以應對拒絕該旗標的模型)。Wesley 的備註:這個旗標僅在此機械化提取工作中是正確的 — Ornith 的思考功能在代理工程用途中是一個資產,而一次提取執行並不能說明代理能力。請不要將一次不佳的提取結果概括為對模型的評判。

必須執行 Ollama:在叫用腳本前請先使用 ollama list 確認。

輸出在 /tmp:作業系統可能在重新啟動後回收。如果需要跨重啟恢復工作,請將其複製到穩定的路徑。

腳本

標準實作位於此技能中的 scripts/ce-pickup.sh — 請透過其技能路徑來呼叫它。主機端的副本歷史上位於 ~/.hermes/scripts/ce-pickup.sh(文件記錄為符號連結);如果機器上的該副本存在但不是符號連結,則它已經過時 — 請以技能目錄為準。

另請參閱:ce-handoff 技能,了解在交接文件準備好後的恢復工作流程。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能