Quest は Local や Worktree などの実行環境をサポートしています。この記事では、各環境の適用シナリオと構成について説明し、タスクを安全かつ効率的に分離して実行できるよう支援します。
| 環境 | 挙動 | 向いている用途 |
|---|
| Local | 開いているワークスペースに直接変更を書き込む | 軽量タスク、迅速な検証 |
| Worktree | メインとは別の Git worktree で作業し、適用・マージまで本流と分離 | 中規模、Apply の反復、同一リポジトリで並列タスク |
Worktree
Worktree モードは Git worktree に基づいてバックグラウンドで独立したワークスペースのコピーを作成し、Agent が隔離された環境でタスクを実行できるようにします。メインのワークスペースはクリーンに保たれ、複数の Worktree を並行して実行できます。
適用シナリオ
| シナリオ | 説明 |
|---|
| 並列マルチタスク | 複数の要件やリファクタリングを同時に処理し、各トラックを互いに干渉せず独立して進める |
| 高リスクなリファクタリング | Agent に大胆なアーキテクチャ変更や大規模なリネームを試させ、気に入らなければそのまま破棄でき、メインのワークスペースは無傷 |
使用方法
Worktree の作成
- チャットパネル上部の実行環境エリアで、現在のモード(「Local」など)をクリックします。
- ドロップダウンから Worktree を選択します。
- モードセレクターの横にあるブランチドロップダウンで、Agent が Worktree を作成する際の起点となるローカルブランチを選択します。
- タスクを入力して送信すると、Agent は独立した Worktree で作業を実行します。
メインのワークスペースにコミットされていない変更がある場合、パネルに Include uncommitted changes トグルが表示されます。オンにすると、作成時にそれらの変更が Worktree に同期され、Agent が最新のコード状態を確認できるようになります。
Move to local
Agent が Worktree での作業を完了したら、結果をメインのワークスペースに持ち帰って開発を続けることができます。
左側のタスクリストで対応する Worktree セッションを見つけ、そのセッションの Move to local 操作をクリックすると、worktree のブランチ状態とコミットされていない変更がローカルのメインワークスペースに移され、以降のタスクをそのままローカルで続行できます。
Move to local を実行する前に、ローカルのワークスペースはクリーンな状態(コミットされていない変更がない状態)である必要があります。先に現在の変更を commit または stash してください。
Review & Commit
変更をローカルに持ち帰る必要がない場合は、Worktree 内で直接コミットできます。セッション右側の Changes パネルを開いて、Agent が行ったすべてのファイル変更を確認します。問題がなければ、パネルで新しいブランチを作成してコードをコミットします。
起動スクリプト
Worktree の作成時に初期化操作(依存関係のインストールや環境変数ファイルのコピーなど)を自動的に実行する必要がある場合は、設定の Worktree configuration for local tasks で起動スクリプトを編集できます。
クリーンアップ
自動クリーンアップ
システムは古い Worktree を自動的にクリーンアップしてディスク容量を解放します。クリーンアップポリシーは管理パネル下部で設定できます。
- 最大保持数: 各ワークスペースはデフォルトで 15 個の Worktree を保持します。
手動クリーンアップ
- 左側のセッションリストで Worktree セッションを 削除 すると、対応する Worktree も一緒に削除されます。
- 設定から、不要になった Worktree をまとめて管理・削除することもできます。
注意事項
- Git リポジトリが必要: プロジェクトが Git リポジトリである場合にのみ、Worktree オプションが表示されます。
- 移行前にワークスペースをクリーンに保つ: Move to local を実行する際、ローカルのワークスペースにコミットされていない変更があってはなりません。
- ディスク使用量: 各 Worktree は独立したファイルのチェックアウトです。プロジェクトが大きい場合、複数の Worktree が相応のディスク容量を消費します。最大保持数を適切に設定し、容量不足を回避してください。