
我的 Claude Code 自訂指令-並行開發工作樹
先說結論
- 使用 Git Worktree 功能,就像是直接複製好幾個專案同時並行開發,最後可以使用 git 合併回去
- 我設計了四個指令:
create、status、done、cleanup - 配合 Claude Code Max 20x 方案(或其他家類似方案),同時開 5 個工作樹,token 燒好燒滿
Token 大殺器
傳統開發的流程
以前在開發
因為我沒有什麼和人協同開發的經驗
因此版控我也很少開分支
差不多就是做一個功能就 commit
切來切去對我來說反而多此一舉
AI 開發的新思維
有了 AI 後就不一樣了
大部分程式都不是由我寫了
我主要工作變成規劃和分派 AI 執行任務
以效率上來說
讓孜孜不倦的 AI 不停的幫我們開發是最理想的
就好像公司有好幾個工程師
大家都 clone repo 下來
你做 A 功能
我做 B 功能那樣
大概可以這樣理解
把工程師 ⇒ AI
把 clone repo 這個動作 ⇒ git worktree
什麼是 Worktree?
每個工作樹都是獨立的資料夾
但共用同一個 .git
你可以看下面圖片的資料夾結構可以理解了

工作樹的數量沒有限制
你可以一直建立新的工作樹
因為他等於複製了你的專案
會有限制的是你硬碟的大小
工作樹就是你的專案的分靈體
獨立目錄互不影響
物理上他就是一個獨立的目錄
只是受到 Git 追蹤
所以你可以直接切到該目錄
用 Claude Code 等工具開始開發
或用 IDE 開啟工作樹的目錄開始開發
我習慣分功能開工作樹
或是要寫測試時我也會獨立開工作樹
愛到才知影痛
AI 開發有一個問題會讓人類很痛苦
就是鬼打牆
以前我會跟他拼了
不管是拼命下新的 Prompt
希望 AI 突然開竅
或者下去一行一行看他寫的 code
通常不是一個低級錯誤
就是一大坨大便要重來
最終是可以搞定
但命也去了半條
現在我通常會讓 AI 針對鬼打牆的狀態分析出原因
經過我判斷八九不離十後
我就把這個工作樹刪掉
重新建立新的工作樹
更新需求文件
加上剛剛分析的原因
然後要他開始重做
他也不會抱怨又要重做
而我更像一個奴隸主
不是一個負責擦屁股的救火隊
甘特圖
從圖來看很明顯就可以看出並行開發的效率

工作樹指令
自從有了 AI 後
懶惰的個性被徹底開發了
什麼工作樹的 git 指令要我背那是不可能的
因此我也讓 AI 規劃出了四個工作樹專用的指令
/worktree-create:建立工作樹/worktree-done:合併完成的工作樹/worktree-cleanup:刪除工作樹/worktree-status:目前有幾個工作樹
其中建立工作樹的指令有一個小巧思
指令後面可以接著用簡單文字輸入你要建立這個工作樹的目的
系統會幫你用英文命名工作樹名稱和git分支
指令我放在文章最後面
/worktree-done 合併工作樹指令的流程
這個流程圖說明合併工作樹執行的過程
可以感覺一下工作樹的 flow

工作樹生命週期
我讓 AI 幫我畫整個生命週期
我覺得不明覺厲就放上來了
可以幫助你了解整個 flow

累積經驗建立自己的工作流
工作樹概念很簡單
AI 出現後可以玩出各種花來
UI 設計
可以開好幾個工作樹
提供不同的設計風格文件
讓 AI 同時開發
完成後再來挑你喜歡的
或繼續迭代
實驗新技術
開工作樹測試
不行就直接砍掉
不會污染主分支
重構或測試
重構可以和新功能並行開發
不用等重構完才能加新功能
有問題也可以儘早發現問題
砍掉工作樹沒有負擔
再重新優化重構
注意事項
工作樹不是完整複製你的專案
他只會複製有被 Git 版控的檔案
因此像是環境變數 .env 這類型沒有進版控的檔案
新的工作樹目錄是不會有的
因此如果要在工作樹目錄執行
需要把這些重要檔案複製過去
硬碟空間
每個工作樹都是獨立的檔案
如果你的專案很大
記得定期清理
我的 Prompt
我的做法是把指令放在使用者根目錄下
/Users/jackle/
│
└─── 📁 .claude/
│
└─── 📁 commands/
│
└─── 📁 WorkTree/
│
├─── 📄 cleanup.md
├─── 📄 create.md
├─── 📄 done.md
└─── 📄 status.md
這樣在 Claude Code 打斜線就能有這樣的指令出現
美觀又直覺

create
---
argument-hint: [name]
description: 建立新的 Git Worktree
---
根據提供的參數建立新的 Git Worktree 並自動設置完整的開發環境。
參數格式:`/worktree-create [name]`
- `name`: 功能描述或識別名稱(必填,AI 會根據內容自動判斷類型)
範例:
- `/worktree-create user-dashboard` → feature/user-dashboard
- `/worktree-create 使用者儀表板重設計` → feature/user-dashboard-redesign
- `/worktree-create 權限驗證修復` → hotfix/permission-validation-fix(AI 識別為修復)
- `/worktree-create 快取效能實驗` → experiment/cache-performance-experiment(AI 識別為實驗)
- `/worktree-create story-1.5-工作流程整合` → story/1.5-workflow-integration(AI 識別為 story)
執行以下流程:
1. **解析和優化參數**:
- 分析 `$ARGUMENTS` 中的 name 參數
- AI 根據內容自動判斷 type:
- 包含「修復」、「fix」、「bug」→ hotfix
- 包含「實驗」、「experiment」、「測試」→ experiment
- 包含「story」或數字編號 → story
- 其他情況 → feature(預設)
- **中文名稱轉換**:將中文任務名稱轉換為符合命名規則的英文
- 翻譯成語意清晰的英文詞彙
- 轉換為 kebab-case 格式(小寫,用連字號分隔)
- 避免縮寫,確保名稱具描述性
- 遵循 Fortuna 專案的 4-6 個單字命名原則
2. **建立工作樹**:
- 使用 `git worktree add` 建立新工作樹
- 確保目錄和分支命名符合專案規範
3. **完成報告**:
提供建立結果摘要,包含:
- 原始中文輸入 → 轉換後的英文名稱
- 工作樹路徑和分支名稱
- 下一步指令
執行所有必要的安全檢查,確保不與現有工作樹衝突。done
---
description: 合併工作樹分支並清理
---
在主目錄中執行工作樹完成流程:選擇並合併工作樹分支到 main,然後清理工作樹。
**使用場景**:當您完成工作樹開發,希望將變更合併回主分支並清理工作樹時使用。
執行以下流程:
1. **環境檢查**:
- 確認當前位於主目錄中
- 檢查主目錄工作狀態是否清潔
- 驗證當前在 main 分支
2. **工作樹分支發現**:
- 自動掃描所有現有的工作樹
- 檢查每個工作樹分支的狀態和提交情況
- 顯示可合併的工作樹分支清單(已有提交且工作目錄清潔)
3. **互動式分支選擇**:
- 顯示工作樹分支清單,包含:
- 分支名稱
- 最新提交訊息
- 提交時間
- 工作樹路徑
- 讓使用者選擇要合併的分支
- 確認合併操作
4. **執行合併流程**:
- 更新 main 分支:`git pull origin main`
- 合併選定的工作樹分支到 main
- 推送合併後的 main 分支到遠端
- 執行品質檢查確保合併成功
5. **自動清理**:
- 刪除已合併的工作樹目錄
- 移除本地工作樹分支
- 顯示清理結果
**使用範例**:
```bash
# 在主目錄執行
cd /Users/jackle/workspace/Fortuna
/WorkTree:done
```
**輸出範例**:
```
🔍 發現以下可合併的工作樹分支:
1. feature/strapi-typescript-optimization
📂 /Users/jackle/workspace/fortuna-feature-strapi-typescript-optimization
📝 feat(typescript): 完成 Strapi v5 TypeScript 優化與 shared 套件建置修正
🕐 2025-07-19 23:41:23
2. feature/workflow-engine-v2
📂 /Users/jackle/workspace/fortuna-feature-workflow-engine-v2
📝 feat(workflow): 實作工作流程執行引擎核心功能
🕐 2025-07-19 15:30:45
請選擇要合併的分支 (輸入數字):
```
**安全檢查**:
- 僅顯示已提交且工作目錄清潔的工作樹
- 合併前確認 main 分支是最新狀態
- 提供合併預覽和確認步驟
**注意事項**:
- 必須在主目錄中執行(非工作樹目錄)
- 確保選定的工作樹已完成所有開發工作
- 合併後工作樹將被自動清理,請確保重要變更已提交
cleanup
---
argument-hint: [target]
description: 智能清理 Git Worktrees
---
智能分析並安全清理 Git Worktrees,確保不遺失重要開發成果。
參數格式:`/worktree-cleanup [target]`
- `target`: 清理目標(可選)
- 特定工作樹名稱(如 "story-1.4", "feature-dashboard")
- 不指定:顯示清理建議但不執行
範例:
- `/worktree-cleanup` (僅分析和建議)
- `/worktree-cleanup story-1.4` (清理特定工作樹)
執行以下清理流程:
1. **解析清理參數**:
- 分析 `$ARGUMENTS` 中指定的清理目標
- 根據參數選擇適當的清理策略
- 設定安全檢查級別
2. **清理候選識別**:
根據參數執行不同的檢測策略:
- **特定工作樹**:直接清理指定目標
3. **風險評估**:
- 標記需要使用者確認的工作樹
- 檢查有未推送提交的完成分支
4. **執行清理**:
- 提供清理建議和互動選項
- 自動備份重要資訊到 `.claude/worktree-backups/`
- 使用 `git worktree remove` 安全移除
- 清理對應的本地分支
5. **清理報告**:
- 顯示清理統計(移除數量、釋放空間)
- 提供備份位置和恢復指令
- 分析清理後的效能提升
為每個清理候選提供詳細的影響分析和恢復選項。status
---
description: 列出所有 Git Worktrees 狀態
---
列出目前所有的 Git Worktrees 狀態。
執行 `git worktree list` 並格式化輸出:
- 顯示工作樹路徑
- 顯示對應分支
- 顯示當前所在工作樹(標記 \*)