Community生產力與協作github.com

aapastech/claude-skill-session-backlog

每次工作階段開始及執行任務前,務必載入。捕捉每項任務與子任務到一個存放於使用者本機電腦的待辦清單中,包含領域、預估工時與工作階段,並在每次回合更新,確保長時間或平行工作階段中的任務不會被遺忘。

claude-skill-session-backlog 是什麼?

此技能專為 AI 助手設計,解決長時間或多任務提示中遺失工作的問題。它透過一個儲存在使用者本機電腦上的待辦清單(backlog),將對話記憶與實際任務清單分離,確保每個任務都被妥善追蹤。 支援所有能執行本機 shell 命令或呼叫 MCP 工具的助手或代理,包括 Claude Desktop、Claude Code、Codex 和 Cursor 等。待辦清單以一個包含 `bl.py` 引擎、JSON 任務文件和 `board.html` 視覺化看板的資料夾形式存在,並遵循嚴格隱私規則:所有資料僅留在執行設備,不複製到雲端。 運作流程是:每次工作階段開始時建立唯一 ID,每回合透過 `bl open --session <SID>` 重新讀取待辦清單以確保不遺漏,然後批量捕捉新任務,使用 `bl claim` 鎖定任務後執行,並透過 `bl update` 和 `bl done` 記錄進度與結果。跨工作階段規則(例如 24 小時未更新的任務視為過期,可被其他工作階段接管)確保了協作的正確性。若無法連接使用者設備,則有離線模式支援佇列操作。

相容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/aapastech/claude-skill-session-backlog/tree/HEAD/plugin/skills/session-backlog

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

在你喜歡的 AI 中提問

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

說明文件

Aapastech Session Backlog:不再遺失任何任務

長時間工作階段與多任務提示常使 AI 助手遺漏工作。早期的請求和稍後的深入細節往往被忽略。此技能透過一個存放於使用者本機電腦的待辦清單來解決這個問題。對話記憶並非事實來源;待辦清單才是。不在待辦清單中的任務不存在,而在待辦清單中的任務必須標記為「完成」或「放棄」才算結束。

此技能適用於任何能在使用者電腦上執行 shell 命令或呼叫 MCP 工具的助手或代理。在同一台電腦上的所有工作階段,無論使用何種工具或模型,都共用同一個待辦清單。

隱私規則: 任務資料保留在執行工作的設備上。切勿將待辦清單複製到雲端服務、託管頁面、連接器或共用文件中。若無法存取使用者設備,請改用離線模式(第 9 節)。

1. 尋找待辦清單並執行引擎

如果您的工具清單中有 backlog_* 工具(即 MCP 伺服器,參閱第 11 節),請使用它們。這些工具與下列命令一一對應,並自動處理資料夾、編碼和升級事宜。請跳過本節其餘內容。

否則,待辦清單是一個包含 bl.py(引擎)、config.json、tasks/(每個任務一個 JSON 檔案)、sessions/、board.html 和 BOARD.md 的資料夾。請按以下順序尋找:

  1. 使用者已告知您的位置,無論是在其偏好設定、記憶或專案指示中。
  2. 若已設定 BACKLOG_DIR 環境變數。
  3. ~/Documents/Aapastech-Backlog(預設位置)。
  4. ~/Documents/Claude-Backlog(v3 之前使用的資料夾名稱;如果使用者的任務存放在那裡,請繼續使用)。

執行它。 在此文件中 bl <command> 是簡寫。請始終鍵入完整命令;切勿將其儲存在 shell 變數中($BL … 在 zsh(macOS 預設 shell)中會失敗)。

Shell命令
macOS / Linux (bash, zsh)python3 ~/Documents/Aapastech-Backlog/bl.py <command> …
Windows PowerShellpy -3 "$HOME\Documents\Aapastech-Backlog\bl.py" <command> …(若 py 不存在,請嘗試 python)
Windows cmdpy -3 "%USERPROFILE%\Documents\Aapastech-Backlog\bl.py" <command> …
Git Bash (Windows)py -3 ~/Documents/Aapastech-Backlog/bl.py <command> …

bl where 會列印所使用的資料夾和引擎版本。在 Windows 上,Documents 常被移至 OneDrive(%USERPROFILE%\OneDrive\Documents)。如果 ~\Documents 不存在,請查看該位置,並提議設定 BACKLOG_DIR,以便每個工作階段都能找到同一個資料夾。

Python。 引擎需要 Python 3.8 以上版本,且無需其他依賴。

  • macOS:首次呼叫 python3 時,全新的 Mac 可能會跳出 Apple 的「安裝命令列開發者工具」對話框。請告知使用者這是預期行為,可以安全接受,或從 python.org 安裝 Python。
  • Windows:Python 通常未安裝。如果 py -3 和 python 都失敗,請要求使用者從 python.org 安裝 Python 3,並勾選「Add python.exe to PATH」,或使用 winget install Python.Python.3.12。切勿回退到其他方案。

2. 首次在設備上執行(引導程序)

如果尚無待辦清單:

  1. 建立資料夾 ~/Documents/Aapastech-Backlog(或使用者選擇的位置)。
  2. 從此技能自己的資料夾將 scripts/bl.py 複製到其中。這是一個僅使用標準庫的單一 Python 檔案,內建看板功能。
  3. 向使用者提出一個簡短問題:要以什麼名稱顯示待處理的任務(等待使用者),以及他們的工作涵蓋哪些領域(3–8 個領域,例如客戶、產品、行政、個人)。根據您對他們的了解來建議領域。然後執行: bl init --owner "<名稱>" --areas "領域1,領域2,…,個人,AI-Ops" 如果他們想要自訂看板名稱,請加上 --title "<看板標題>"(預設為「Aapastech Backlog」)。
  4. 告知看板位置:file://…/Aapastech-Backlog/board.html。提議開啟它(bl board --open),並建議將其固定到分頁。
  5. 建議他們將此技能設為永遠啟用,例如在助手的個人偏好設定或指示檔案中:「始終在每次工作階段開始時及執行包含工作的任務前,載入 session-backlog 技能。」

升級: 如果 bl version 顯示的版本低於此技能中 scripts/bl.py 的版本(尋找 VERSION = "…"),請將新的 bl.py 覆蓋舊的。任務資料和設定保持不變。

3. 工作階段識別(每次工作階段一次)

選擇一個穩定的工作階段 ID 並在每次呼叫中重複使用:

  • 如果您的平台為工作階段提供了 URL 或 ID,請使用它,並將 URL 作為 --url 傳遞。
  • 否則:<表面>-<YYYYMMDD-HHMM> 使用工作階段開始時間,例如 desktop-20261018-1652、code-20261018-0910、api-20261018-1200、sched-20261019-0600。
bl session --id <SID> --label "<表面> · <主要主題>" --surface code|desktop|cloud|api|scheduled [--url <連結>]

這會列印該工作階段的未完成任務,以及其他工作階段中未認領或過期的任務。用一行提及過期或等待使用者的任務。不要傾印整個清單。

4. 回合迴圈(每回合包含工作時)

A. 先重新讀取。 在首次之後的每個回合開始時,執行 bl open --session <SID>。當提示是深入探討某個子任務時,尤其要這麼做。此步驟是確保其他工作不被遺忘的關鍵。切勿跳過。

B. 在工作前捕捉。 每一項新的請求和旁白(例如「還有…」、「提醒我…」、「之後…」、「別忘了…」)都會在開始任何工作前被批量捕捉。將此批次寫入一個 JSON 檔案(使用您的檔案寫入工具),然後傳遞該路徑。使用檔案可在所有 shell 中正常運作;透過 echo 將 JSON 序列傳輸到管道在 Windows shell 中會失敗,並會破壞非 ASCII 文字。

[
 {"title":"重新設計定價頁面","area":"產品","eta":"1h","priority":"P1",
  "source":"提示 16:52: 重做定價頁面","next":"取得目前版本",
  "children":[{"title":"審核目前版本","eta":"10m"},
              {"title":"草擬 2 種版面","eta":"30m"},
              {"title":"發布所選版面","eta":"20m"}]},
 {"title":"回覆供應商","area":"行政","eta":"15m","status":"waiting_user","next":"使用者確認數量"}
]

bl batch --session <SID> <檔案路徑.json>(將此檔案放在您的暫存或暫用資料夾中,而非使用者的專案中)。

以一行簡潔的方式回放捕捉到的內容,以便使用者修正:

已捕捉:T-0042 定價頁面 (1h) → T-0043 審核 (10m)、T-0044 版面 (30m)、T-0045 發布 (20m);T-0046 供應商回覆(等待您)。

請先檢查 bl list,並更新現有任務,而非建立重複項。加入 "parent":"T-0042"(或在 bl add 後加上 --parent T-0042)即可將子任務置於現有任務下。

C. 認領,然後開始工作。 在開始每個任務前執行 bl claim <ID> --session <SID> [--eta 20m]。如果認領被拒絕(因為另一個活躍工作階段擁有它),請不要處理該任務。認領是鎖定的,因此兩個工作階段不可能同時贏得同一個任務。盡可能平行工作。協調工作階段會為其子代理更新待辦清單,並將各自的任務 ID 傳遞給每個子代理。

D. 邊做邊更新。 bl update <ID> --session <SID> --log "決策 / 發現" [--next "…"] [--output <路徑或連結>] [--status blocked|waiting_user|ready]

  • 以使用者自己的話記錄下他們的決策。
  • 您產生的每個檔案或連結都應放入 --output 中。
  • 等待使用者時使用 --status waiting_user --next "<您確切需要什麼>"。

E. 誠實關閉。 只有在您驗證結果後,才執行 bl done <ID> --session <SID> --log "已交付 …" --output …。當父任務仍有開啟的子任務時,無法關閉。若要放棄任務,請執行 bl drop <ID> --session <SID> --reason "…"。切勿刪除任何內容。

F. 頁尾。 在每個涉及工作的回覆結尾,加上 bl footer --session <SID> [--exclude <剛回報的 IDs>] 的單行輸出。

5. 領域

每個頂層任務都會從 config.json 獲得一個領域(bl areas 可列出所有領域)。子任務會繼承其父任務的領域。選擇最接近的。僅在明顯出現新的持續性工作類別時,才新增一個領域(bl areas --add "名稱"),並在新增時告知使用者。bl areas --rename OLD NEW 可以在設定和所有任務上重新命名領域。

6. 預估工時(每個任務都有)

  • 預估工時是助手在平行工作假設下的時鐘時間。通常為 5–60 分鐘,有時數小時,極少數情況下為天。格式:10m、45m、2h、1h30m、1d。
  • 包含驗證結果的時間。
  • 倒數計時從認領或建立時開始。看板會以紅色標記過期的任務。
  • 當您預估會超時時,請立即重新估算:--eta 1h --eta-reason "…"。切勿讓任務默默過期。
  • 對於 waiting_user 任務,預估工時是指使用者回覆後完成所需的時間。

7. 跨工作階段規則

  • 認領在其工作階段持續更新任務的期間保持有效。超過 24 小時未觸碰的任務即為過期,任何工作階段都可以接管(接管行為會被記錄)。
  • 未經使用者同意,切勿對有效的認領使用 --force。
  • 在長時間工作結束前,請為每個已認領的任務留下一個新工作階段可以冷啟動的 --next。使用 --status ready --log "已釋放:<狀態>" 釋放未完成的工作。
  • 對於「有哪些未完成」、「我們到哪裡了」或「另一個工作階段做了什麼」等問題,請從 bl list(--all、--area X、--session Y)回答,而非從對話記憶中回答。
  • 待辦清單屬於一個設備。其他設備或雲端上的工作階段僅能透過連接到該設備的方式使用它。
  • 如果某個命令回報任務忙碌中,表示另一個工作階段正在此刻寫入它。請稍後重試一次。

8. 何時跳過捕捉

僅對在同一次回覆中完全回答的一次性問題跳過捕捉。捕捉所有其他內容:任何具有可交付成果的事項、任何跨越超過一個回合的事項,以及任何已延遲的事項。如有疑問,請捕捉它。

9. 離線模式(無法連接使用者設備)

  1. 將任務鏡像到您平台自身的任務清單(如果有),否則鏡像到您回覆中的核取清單。
  2. 將每個預定的 bl.py 操作排成佇列,每個操作一行 JSON 物件,存放在您的暫用空間中的 backlog-pending.jsonl(切勿放在使用者專案中):{"cmd":"add","args":{…},"at":"<iso>"}。
  3. 一次性告知使用者:「無法連接您的電腦,因此待辦清單更新已排入佇列,並將在恢復連線時同步。」
  4. 每回合重試連接設備。一旦可連接,按順序重播佇列並執行 bl open。
  5. 如果工作階段在同步前結束,最後的回覆必須完整列出未同步的任務。

10. 看板

board.html 在每次寫入時重新產生,並每 30 秒自動重新整理。它顯示:

  • 按領域劃分的游泳道,包含欄位:待辦 / 進行中 / 受阻 / 等待 <擁有者> / 完成
  • 每張卡片上的預估工時與倒數計時,過期任務以紅色標記
  • 哪個工作階段建立了、處理了和完成了每個任務
  • 可點擊查看完整日誌與輸出

BOARD.md 是相同看板的文字版本。

當使用者要求查看時(例如「顯示我的待辦清單」、「開啟看板」、「有什麼未完成?」):

  • 在持有待辦清單的電腦上,執行 bl board --open 以在預設瀏覽器中開啟。
  • 如果該電腦上的瀏覽器無法存取(例如透過手機聊天),則從 bl list 貼上按領域分組的簡短摘要,並先列出過期和等待使用者的任務。
  • 看板是本機檔案。絕不發布、上傳或分享。

11. 平台備註

  • MCP 用戶端(任何助手或代理框架)。 scripts/backlog_mcp.py 是一個基於 stdio 的標準函式庫 MCP 伺服器,公開了 backlog_session、backlog_open、backlog_add、backlog_claim、backlog_update、backlog_done、backlog_drop、backlog_list、backlog_show、backlog_footer、backlog_board、backlog_init 和 backlog_where。使用命令 python3(Windows 使用 py,引數 -3 <路徑>)和引數 <backlog_mcp.py 的路徑> 註冊,可選環境變數 BACKLOG_DIR。它執行相同的 bl.py,因此 shell 和 MCP 路由共用同一個待辦清單。
  • API 驅動的代理。 透過 API 呼叫的模型本身無法存取使用者檔案。開發人員在擁有待辦清單的機器上執行 MCP 伺服器(或在其自己的工具背後執行 bl.py),並為模型提供這些工具。託管的程式碼沙箱是暫時的,因此當沙箱結束時,其中的待辦清單會遺失;請勿將其保留在那裡。
  • 連結到使用者電腦的 Claude Desktop / 雲端 / 手機工作階段(設備工具,例如 device_bash、device_request_folder_access、device_commit_files;如果它們被延遲載入,請透過您的工具搜尋來載入)。待辦清單資料夾或其父資料夾(例如 ~/Documents)必須是已連接的資料夾;如果不是,請呼叫 device_request_folder_access 一次,並附上原因「為了在此電腦上保留您的任務待辦清單」。然後使用已連接的路徑(例如 python3 $HOME/mnt/Documents/Aapastech-Backlog/bl.py …)透過 device_bash 執行命令。若要透過橋接器安裝 bl.py,請暫存該檔案並將其提交到設備(device_commit_files)。
  • Claude Code / Codex / Cursor / 其他編碼代理 根據第 1 節的表格,直接在其 shell 中執行引擎。

命令參考

bl init    [--owner NAME] [--areas "A,B,C"] [--title T]       首次設定 / 更改擁有者、領域或看板標題
bl version                                                     引擎版本
bl where                                                       待辦清單資料夾、引擎版本、看板連結
bl areas   [--add NAME …] [--rename OLD NEW]                   列出 / 新增 / 重新命名領域
bl session --id SID --label L --surface S [--url U]           註冊工作階段;列印未完成任務
bl open    --session SID                                       此工作階段的未完成任務 + 未認領的任務
bl batch   --session SID file.json|-                           新增多個任務(巢狀 "children" = 子任務)
bl add     --session SID --title T --area A --eta 20m [--parent ID] [--status S] [--next N] [--priority P1]
bl claim   ID --session SID [--eta 20m] [--force]
bl update  ID --session SID [--status S] [--eta E --eta-reason R] [--next N] [--log L] [--output O] [--area A] [--title T]
bl done    ID --session SID [--log L] [--output O] [--force]
bl drop    ID --session SID --reason R
bl list    [--all] [--area A] [--session SID] [--json]
bl show    ID
bl footer  --session SID [--exclude IDS]
bl board   [--open]

相關技能