使用手冊

會話派生與 Git 協作

本章介紹兩項搭配使用的功能:將子任務派生為獨立的子會話(可選擇使用隔離的 git worktree),以及將並行分支重新合併的圖形化合併功能。兩者結合,可讓多個智慧體在同一個儲存庫中並行工作。

1. 什麼是派生

您可以從任何會話中分出一項子任務。VelaTerm 會在目前節點之下建立新的子會話(樹狀結構因此形成層級:父會話 → 子會話 → 孫會話),可選擇為其提供隔離的 git worktree,並將任務說明作為新會話的第一則訊息傳送。新的智慧體啟動後會立即開始工作,無須額外說明。

派生的結果是樹狀結構中一個真正的會話,擁有自己的處理程序,您可以隨時查看、回應、重新開啟與恢復。它不是隱藏的背景工作。

如果工作需要由不同的智慧體分別規劃、執行與驗收,請改用規劃與執行工作流程;請參閱規劃與執行。

2. 派生方式

入口使用者Worktree
指令 vspawn "task"您或指令碼,可在任何會話中使用預設關閉;--worktree 可開啟
指令 vspawn-tree "task"同上一律開啟
在 Claude Code 中使用 /vspawn task,在 Codex 中使用 $vspawn task由您要求智慧體執行;智慧體會先將任務擴充為內容完整、可獨立理解的提示詞預設關閉
在 Claude Code 中使用 /vspawn-tree task,在 Codex 中使用 $vspawn-tree task同上一律開啟

這兩個指令可在 VelaTerm 啟動的每個會話中使用。智慧體技能則需要 Vela 技能:在設定 ▸ 一般中選擇「安裝」,然後開始新的 Claude Code 或 Codex 對話,讓智慧體載入這些技能。只有在您要求時,智慧體才會呼叫這些技能。

新會話看不到派生它的對話。使用技能時,智慧體會將目標、相關檔案、目前的結論、限制條件與驗收標準寫入任務中。自行執行指令時,請在任務文字中包含這些內容。

3. 目錄、智慧體與模型

  • 目錄。 子會話會在執行指令的目錄中啟動,該目錄也是建立 worktree 時所用的儲存庫。傳入 --cwd <path> 可使用其他專案,例如 vspawn-tree --cwd /work/project "fix the parser"。這在集合中特別重要,因為集合沒有自己的專案資料夾。對話中明確指出單一儲存庫時,技能會自動加入 --cwd。
  • 智慧體。 子會話使用與目前會話相同的智慧體;從一般終端機派生時則使用 Claude Code。--claude、--codex、--copilot 或 --kiro 可選擇其他智慧體,確認卡片中也可選擇所有智慧體類型。
  • 模型與推理強度。 --model <name> 與 --effort <level> 可設定子會話的模型與推理強度,例如 vspawn --model opus --effort high "port the parser"。模型名稱須屬於實際執行的智慧體。智慧體不支援的設定會在建立會話之前遭到拒絕。未使用這些選項時,相同智慧體類型的子會話會繼承父會話的啟動參數與權限設定;不同類型的子會話則使用設定 ▸ 智慧體中該智慧體的預設值。
  • 檢視。 如果子會話與父會話都支援會話檢視,子會話會以與父會話相同的檢視開啟;否則會以該智慧體的預設檢視開啟。

所有選項都列在會話指令 §3 中。

4. 派生前確認

預設情況下,每個派生請求都會先顯示一張確認卡片,標題為「啟動子會話」。這張卡片不會搶走您正在使用之會話的焦點,並會以系統通知(「子會話啟動待確認」)告知您有請求正在等待。

  • 卡片會顯示發出請求的會話及其目錄(「發起會話」)、將成為子會話第一則訊息的「任務說明」、「執行設定」(「會話類型」、「模型」、「推理強度」),以及「工作目錄」選項:「使用目前目錄」或「獨立工作樹」。
  • 模型建議清單來自所選的智慧體。如果沒有可用的清單,您可以直接輸入模型識別碼。欄位保留為「使用智慧體預設值」時,會使用智慧體本身的設定。
  • 一般終端機會在工作目錄中開啟,但不會執行任務說明。
  • 「啟動子會話」(或 ⌘Enter/Ctrl+Enter)會啟動子會話;「取消」會捨棄該請求。其他請求會在佇列中等待,卡片會顯示剩餘數量(「另有 N 項待確認」)。

如要在不顯示卡片的情況下啟動請求,請在設定 ▸ 行為中關閉「派生前確認」,或在單一指令中加入 --yes。

5. Worktree:並行工作而不衝突

使用 worktree 時,子會話會在自己的目錄中以新的分支工作,與主要工作區及其他子會話互相隔離。多個智慧體同時修改同一個儲存庫時,建議採用這種做法。新的 worktree 從目前的提交建立,不包含尚未提交的變更。如果無法為派生的會話建立 worktree,該會話會使用原本的目錄。

在 worktree 中工作的會話,其側邊欄圖示上會顯示一個小徽章;將滑鼠移到上方即可查看 worktree 的名稱與路徑。

使用 worktree 的其他方式:

  • 專案、群組或會話選單中的「新增 worktree 會話…」會開啟建立對話方塊,並將「Worktree」選項設為「新建」。請輸入「worktree 名稱」,此名稱會用於目錄與分支。此對話方塊也可以將會話連結到「選現有」的 worktree,或選擇「不掛」。
  • 群組選單中的「轉移到 Worktree…」會將群組綁定到新的或現有的 worktree。此後在該群組中建立的會話都會使用該 worktree;群組中原有的會話則保留其目錄。綁定 worktree 的群組還會提供「分組資訊」。

如果會話或群組的目錄是 git 儲存庫,其 Git 子選單包含:

項目作用
「查看變更…」以檔案清單與差異內容顯示工作目錄中的變更
「合併…」開啟合併對話方塊(§6)
「複製 worktree 路徑」、「開啟 worktree 目錄」適用於綁定 worktree 的會話與群組
「刪除 worktree…」選擇此儲存庫的一個 worktree,並從磁碟中刪除其目錄;「強制刪除(捨棄未提交的變更)」即使有尚未提交的變更也會將其刪除

綁定的 worktree 被刪除後,會話或群組選單會提供「轉為普通會話」或「轉為普通群組」,以移除綁定,讓會話重新在專案目錄中啟動。

刪除子樹中含有 worktree 的會話時,確認對話方塊會提供一併移除這些 worktree 的選項。

6. 合併:圖形化 Git 合併

工作完成後即可進行合併。對於目錄為 git 儲存庫的任何會話或群組,無論是否使用 worktree,選擇「Git ▸ 合併…」即可開啟「合併分支」對話方塊:

  • 選擇兩個分支。 選擇「來源分支」與「目標分支」;「調換方向」可將兩者對調。同一個對話方塊既可將子會話的分支合併回主要分支,也可將主要分支合併到子會話中以進行更新。
  • 確認之前,對話方塊會列出合併將帶入目標分支的變更。
  • 合併會在已簽出目標分支的工作目錄中執行。如果目標分支沒有在任何地方簽出,則無法執行合併;請先將其簽出。
  • 如果來源分支的工作目錄中有尚未提交的變更,會先以您輸入的訊息提交這些變更(「提交並合併」)。
  • 如果合併發生衝突,VelaTerm 會保留衝突內容,並告訴您應在何處解決。請在該 worktree 的終端機中解決衝突(或請智慧體處理),然後提交。

合併不會刪除 worktree。不再需要時,請使用「Git ▸ 刪除 worktree…」將其移除。

7. 典型工作流程

  1. 在主要會話中與 Claude Code 討論任務,然後執行 /vspawn-tree refactor the checkout module(需要 Vela 技能)。
  2. 在確認卡片上檢查任務,然後選擇「啟動子會話」。子會話會在自己的 worktree 中啟動,並顯示在側邊欄中其父會話之下,工作期間狀態點為綠色。
  3. 繼續在主要會話中工作。子會話提出問題或完成工作時,其狀態點會改變,並顯示通知。
  4. 檢查子會話的工作成果,然後選擇「Git ▸ 合併…」將其分支合併到主要分支。
  5. 使用「Git ▸ 刪除 worktree…」移除 worktree,然後封存子會話以保留記錄。