Skip to content

Worksets (測試版) ​

在同一個編輯器視窗中開啟 store 和使用它的 repos,讓您的 agent 能同時看到兩者。

有了 store 之後,您的 agent 所需的上下文會分散在各個資料夾中。specs 和 changes 存放在 store 裡,而程式碼則存放在各自的 repo 中。在某個 repo 中啟動的 agent 只能讀取和 grep 該 repo,無法存取其他內容,因此它只能看到片面資訊。

Worksets 是 OpenSpec 為解決這個問題而提供的工具。workset 是一份已儲存、具名的資料夾清單,讓您可以一次開啟這些資料夾。本頁假設 store 已經在您的機器上設定並註冊。Stores (測試版) 涵蓋了這部分內容。

運作方式 ​

  • 它是什麼:一份具名的資料夾清單,僅儲存在您的機器上。不會寫入任何內容到成員資料夾中,也不會有任何提交。
  • 開啟時的作用:OpenSpec 會根據清單產生一個 .code-workspace 檔案,並在其中啟動您的編輯器。所有成員資料夾都會位於同一個視窗中。
  • 您獲得的功能:您編輯器的搜尋功能,以及在該視窗中執行的任何 agent,都可以讀取每個成員資料夾。agent 可以在同一個工作階段中 grep store 的 specs 和 repo 的程式碼。
  • 它不會改變的部分:命令使用哪個 openspec/ 資料夾。這仍然遵循 成品建立位置。

設定方式 ​

  1. 儲存 workset(每部機器一次)。將 repo 和 store 列為成員,以及用來開啟它們的工具:

    bash
    # 儲存一份您會一起開啟的具名資料夾清單
    openspec workset create platform \
      --member ~/src/web-app \
      --member ~/openspec/team-plans \
      --tool code
    yaml
    已將 workset 'platform'(2 個成員)儲存到您的機器。
    隨時可使用以下命令開啟:openspec workset open platform
  2. 開啟它,每次開始工作時:

    bash
    # 在同一個 VS Code 視窗中開啟所有成員
    openspec workset open platform

openspec workset list 會顯示您儲存的內容,而 openspec workset remove <name> 會刪除 workset 而不觸及成員資料夾:

yaml
platform  (opens in VS Code)
  web-app     /Users/you/src/web-app
  team-plans  /Users/you/openspec/team-plans

使用方式:一個變更,兩個資料夾 ​

假設 add-login 變更位於 team-plans store 中,而其程式碼位於 web-app 中。開啟 platform workset 並要求您的 agent 實作該變更。在那同一個工作階段中,它可以:

  • 讀取 team-plans/openspec/changes/add-login/ 及其旁邊的 specs
  • 編輯 web-app/ 中的程式碼
  • 從 web-app 內部執行 openspec 命令

如果沒有 workset,agent 只能看到它啟動時所在的資料夾。

內建工具 ​

  • VS Code (--tool code) 和 Cursor (--tool cursor):已內建。每個都能開啟一個包含所有成員資料夾的視窗。
  • 終端機中的 Claude Code 和 Codex:在流程重新設計期間,暫時停用作為 workset 開啟器。--tool claude 或 --tool codex 會停止並顯示錯誤訊息,引導您使用 VS Code 或 Cursor。
  • 其他編輯器:在 CLI 設定 (config.json) 中的 openers 鍵下新增。