Worksets(ベータ)
ストアと、それを利用するリポジトリを1つのエディタウィンドウで開き、エージェントが両方を参照できるようにします。
ストアを使うと、エージェントが必要とするコンテキストは複数のフォルダに分かれます。スペックとチェンジはストアにあり、コードは各リポジトリにあります。1つのリポジトリで起動したエージェントは、そのリポジトリしか読み取りや grep の対象にできないため、全体像の半分しか見えていない状態で作業することになります。
Worksets は、この課題のために OpenSpec が提供するユーティリティです。workset とは、まとめて開くフォルダに名前を付けて保存したリストです。このページは、ストアがすでにセットアップされ、お使いのマシンに登録されていることを前提としています。その手順は Stores(ベータ) で説明しています。
仕組み
- 概要: 名前を付けたフォルダのリストで、お使いのマシンにのみ保存されます。メンバーフォルダには何も書き込まれず、何もコミットされません。
- 開くときの動作: OpenSpec はリストから
.code-workspaceファイルを生成し、それを対象にエディタを起動します。すべてのメンバーフォルダが1つのウィンドウに表示されます。 - 得られるもの: エディタの検索機能と、そのウィンドウ内で実行するエージェントが、すべてのメンバーフォルダを読み取れるようになります。エージェントは1つのセッションでストアのスペックとリポジトリのコードを grep できます。
- 変わらないもの: コマンドが使用する
openspec/フォルダです。これは引き続きアーティファクトが作成される場所に従います。
セットアップ
workset を保存する(マシンごとに1回)。リポジトリとストアをメンバーとして指定し、それらを開くツールも指定します:
bash# まとめて開くフォルダのリストに名前を付けて保存する openspec workset create platform \ --member ~/src/web-app \ --member ~/openspec/team-plans \ --tool codeyamlSaved workset 'platform' (2 members) to your machine. Open it any time with: openspec workset open platform開く — 作業を始めるときに毎回実行します:
bash# すべてのメンバーを1つの 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使い方: 1つのチェンジ、2つのフォルダ
たとえば、add-login チェンジが team-plans ストアにあり、そのコードが web-app にあるとします。platform workset を開き、エージェントにそのチェンジの実装を依頼します。この1つのセッションで、エージェントは次のことができます:
team-plans/openspec/changes/add-login/とその隣にあるスペックを読むweb-app/のコードを編集するweb-appの中からopenspecコマンドを実行する
workset がなければ、エージェントは起動したフォルダしか見えません。
すぐに使えるツール
- VS Code(
--tool code)と Cursor(--tool cursor): 標準で組み込まれています。どちらもすべてのメンバーフォルダを1つのウィンドウで開きます。 - ターミナルでの Claude Code と Codex: このフローを再設計中のため、workset を開くツールとしては一時的に無効化されています。
--tool claudeまたは--tool codexを指定すると、その旨を示すエラーで停止し、VS Code または Cursor を案内します。 - その他のエディタ: CLI 設定(config.json) の
openersキーに追加します。