---
title: 計畫優先工作流程
description: 為複雜任務運用 AI 輔助規劃
---

計畫優先工作流程運用 **Plan Mode**，這是一種唯讀執行模式，Verdent 會在執行任何變更前先分析程式碼、進行研究並建立詳細計畫。此工作流程將策略規劃與實作分離，讓你能在投入程式碼修改前先審查與修正。

### 何時使用 Plan Mode

- 需要協調的複雜跨檔案變更
- 對最佳實作方式不確定
- 對生產關鍵程式碼進行高風險變更
- 在陌生程式碼庫中需要探索的任務
- 需要在執行前獲得核准的策略規劃需求

---

## AI 輔助任務拆解

Verdent 會透過 AI 輔助任務拆解，自動將複雜請求分解為可管理的循序步驟。

### 拆解流程

<Steps>
  <Step title="請求分析">
    Verdent 會分析你的自然語言請求，以辨識：
    - 主要目標與期望成果
    - 受影響的檔案、元件或系統
    - 所需的技術操作與相依關係
    - 潛在的複雜度因素
  </Step>
  <Step title="程式碼庫上下文">
    Verdent 會檢視你的專案結構，以理解：
    - 既有架構與已建立的模式
    - 檔案組織與技術堆疊
    - 需要修改的現有實作
  </Step>
  <Step title="任務分解">
    Verdent 會將請求拆解為合理的子任務：
    - 辨識自然的斷點與實作階段
    - 依相依關係排序任務（先處理前置任務）
    - 將相關操作分組
    - 評估每個子任務的範圍與複雜度
  </Step>
  <Step title="互動式釐清">
    Verdent 可能會提問以精煉拆解結果：
    - 「我應該修改既有的驗證，還是建立新的驗證器？」
    - 「你是否希望更新所有受影響元件的測試？」
    - 「這項變更是否應同時套用到網頁與行動端元件？」
  </Step>
</Steps>

### 拆解特性

<Tabs>
  <Tab title="細緻度">
    - 任務規模適合 15-45 分鐘的專注工作
    - 設有測試與驗證的自然斷點
    - 足夠複雜以具備意義，又足夠簡單可以執行
  </Tab>
  <Tab title="排序">
    - 遵守相依關係（先設定再實作）
    - 合理推進（資料層 → 業務邏輯 → UI）
    - 在主要階段後設有驗證步驟
  </Tab>
  <Tab title="自訂">
    計畫拆解格式可透過 `plan_rules.md` 自訂，以控制：
    - 詳細程度（高層次 vs 細緻）
    - 計畫結構與章節
    - 包含的資訊（時間估計、風險、相依關係）
  </Tab>
</Tabs>

---

## 計畫審查與核准

在 Plan Mode 中提交請求後，Verdent 會產生一份結構化計畫，顯示於 Chat View 供你審查。

### 審查流程

<Steps>
  <Step title="接收結構化計畫">
    Verdent 會產生一份具備清楚章節、編號步驟、受影響檔案與已辨識相依關係的計畫
  </Step>
  <Step title="分析計畫品質">
    審查以下面向：
    - **正確性：** 此方法能否解決問題？
    - **完整性：** 是否包含所有必要步驟？
    - **效率：** 這是否是最佳方法？
    - **風險：** 可能出現什麼問題？是否有邊界情況或安全疑慮？
  </Step>
  <Step title="提出釐清問題">
    若有任何不清楚之處，請要求補充資訊：
    ```
    Can you explain step 3 in more detail?
    Why are we modifying both the service and controller?
    What happens if the API call fails in step 5?
    ```
  </Step>
  <Step title="要求修改">
    提供回饋以修訂計畫：
    ```
    Let's use JWT tokens instead of OAuth2
    Can we break step 4 into smaller substeps?
    Add error handling considerations to the plan
    ```
  </Step>
  <Step title="選擇下一步動作">
    在 Verdent 產生計畫後，會呈現兩個選項：
    - **Edit**：要求修改、提出釐清問題，或進一步精煉計畫
    - **Start Building**：切換至 Agent Mode 並開始執行已核准的計畫
  </Step>
</Steps>

### 計畫互動選項

審查產生的計畫後，Verdent 會呈現兩個選項：

**Edit：**

選擇此選項以：
- 要求對計畫方法進行特定變更
- 詢問實作細節的釐清問題
- 補充缺少的元素或考量
- 簡化或擴充特定步驟
- 探索替代方法

這會讓你保持在 Plan Mode 中進行反覆精煉，而不會執行任何變更。

**Start Building：**

選擇此選項以：
- 切換至 Agent Mode 並開始執行
- 以完全自主的方式實作已核准的計畫
- 依計畫進行檔案修改並執行指令

你也可以選擇：
- **手動實作**：審查計畫並自行實作變更
- **漸進式執行**：要求 Verdent 實作特定階段，並在各階段之間設置檢查點供審查

<Tip>
使用 **Edit** 依需要反覆迭代計畫。只有在你確信方法正確且完整時，才選擇 **Start Building**。
</Tip>

---

## 反覆規劃

使用者可以選擇 **Edit** 並提供對話式回饋，自由地修改與迭代計畫。Verdent 將計畫產生視為一種互動式、反覆迭代的過程。

### 修改方式

**要求特定變更：**
```
Change step 3 to use Redux instead of Context API
Add input validation before the database insert
Swap the order of steps 4 and 5
```

**補充缺少的元素：**
```
Add error handling for network failures
Include rollback procedures
Add performance optimization considerations
```

**簡化或擴充：**
```
This is too complex - can we simplify the approach?
Break down step 5 into more detailed substeps
Give me more detail on the database schema changes
```

**探索替代方案：**
```
What if we used webhooks instead?
Show me an alternative plan using microservices architecture
Can we accomplish this without changing the database schema?
```

### 迭代流程範例

```
User: "Add user authentication to the API"

[Verdent generates initial plan with JWT tokens]

User: "Actually, let's use OAuth2 instead of JWT"

[Verdent revises plan to use OAuth2]

User: "Add step for migrating existing users"

[Verdent adds migration step to plan]

User: "Can you break down the migration step more?"

[Verdent expands migration with detailed substeps]

User: Chooses **Start Building**

[Verdent switches to Agent Mode and begins execution]
```

**無限次迭代：**
- 修訂次數沒有限制
- 每次迭代都會維持對話上下文
- 先前版本會保留在聊天記錄中
- 可以參照較早的計畫版本：「回到第一個方法」

<Note>
計畫被否決是反覆規劃過程中自然的一環。它確保只有經核准、充分理解的策略才會被執行，減少在錯誤實作上浪費的精力。
</Note>

---

## 常見問題（FAQ）

<Accordion title="Plan Mode 真的會寫入任何程式碼到我的檔案嗎？">
**不會。** Plan Mode 嚴格保持唯讀：

- Verdent 可以讀取檔案、搜尋程式碼並分析你的程式碼庫
- 在 Plan Mode 期間**不會發生任何檔案寫入、編輯或刪除**
- 計畫只會顯示於 Chat View
- 只有在你明確核准並切換至 Agent Mode 後，程式碼執行才會開始

**安全保證：** Plan Mode 不會意外修改你的程式碼。它的設計用於安全的探索與策略開發。
</Accordion>

<Accordion title="我可以漸進式執行計畫，而不是一次全部執行嗎？">
**可以。** 漸進式執行受到完整支援：

**漸進式核准模式：**
```
Let's start with Phase 1 first, then we'll review before continuing
Implement steps 1-3, then stop for review
Do the database migration first, I'll review before the API changes
```

**運作方式：**
1. Verdent 執行指定的步驟
2. 在審查檢查點停下
3. 你審查結果並提供回饋
4. 繼續下一階段或調整方法
5. 重複直到完成

**最適合：** 高風險變更、陌生模式、以及分階段推出可降低風險的生產關鍵程式碼。

<Tip>
漸進式執行讓你能核准計畫的部分內容，同時延後其他部分，在任務中途優先順序變動時很有用。
</Tip>
</Accordion>

<Accordion title="如果我否決一份計畫會怎樣？">
**否決計畫是完全正常且在預期之內的：**

- Verdent 會依你的回饋產生新計畫
- 先前的計畫版本會保留在聊天記錄中供參考
- 不會發生任何程式碼變更（Plan Mode 為唯讀）
- 你可以無限次迭代直到滿意

**常見的否決原因：**
- 方法過於複雜或過於簡單
- 缺少邊界情況或錯誤處理
- 存在更好的替代架構
- 誤解了需求

**專業提示：** 否決是過程的一部分。反覆精煉計畫比浪費精力執行錯誤策略要好。
</Accordion>

<Accordion title="我要如何在 Plan Mode 與 Agent Mode 之間切換？">
**透過 Input Box 即時切換：**

**進入 Plan Mode：**
- 點選 Input Box 中的 **Switch Mode** 按鈕
- 從下拉選單選擇 **Plan Mode**
- 或者說：「Switch to Plan Mode」

**退出 Plan Mode：**
- 點選 Input Box 中的 **Switch Mode** 按鈕
- 從下拉選單選擇 **Agent Mode**
- 或在審查計畫後選擇 **Start Building**

**模式持久性：**
- 模式選擇會在目前工作階段中持續
- 新的工作階段會以預設的 Agent Mode 開始
- 你可以隨時自由切換模式

**典型工作流程：** Plan Mode → 審查 → Agent Mode → 執行 → 回到 Plan Mode 處理下一個複雜功能。
</Accordion>

<Accordion title="我可以自訂產生計畫的格式與詳細程度嗎？">
**可以，透過 `plan_rules.md`：**

**位置：** `~/.verdent/plan_rules.md`（全域設定目錄）

**你可以自訂的項目：**
- **詳細程度：** 高層次概覽 vs 細緻的逐步說明
- **計畫結構：** 要包含的章節（摘要、風險、相依關係、測試）
- **包含的資訊：** 時間估計、檔案路徑、驗證步驟
- **格式偏好：** 編號清單、階段、分類

**plan_rules.md 範例：**
```markdown
# Plan Rules

## Plan Structure
- Start with a brief summary (2-3 sentences)
- Include estimated time for each major step
- List prerequisites before implementation steps
- Identify potential risks and mitigation strategies

## Level of Detail
- Break tasks into subtasks of 15-30 minutes
- Include specific file paths for modifications
- List functions or components to create/modify
- Provide verification steps for each phase
```

**變更會立即套用**到新的 Plan Mode 工作階段。
</Accordion>

<Accordion title="Plan Mode 與 Agent Mode 使用相同的上下文嗎？">
**不，Plan Mode 有獨立的上下文管理：**

- **Plan Mode 上下文：** 針對分析與策略思考最佳化
- **Agent Mode 上下文：** 針對執行與實作最佳化
- **好處：** 計畫不會以探索性研究污染執行上下文

**為何分離很重要：**
- Plan Mode 可以探索多種方法而不會弄亂 Agent Mode
- 被否決的計畫嘗試不會消耗 Agent Mode 的上下文
- 切換至執行時可從乾淨狀態開始

**上下文重置：** 切換模式為新的任務類型提供全新的上下文。
</Accordion>

<Accordion title="如果 Verdent 在規劃期間提出釐清問題該怎麼辦？">
**釐清問題是拆解流程的一部分：**

**為何會提問：**
- 模糊的需求需要釐清
- 存在多種有效方法（需擇一）
- 尚未指定邊界情況或限制
- 從最初請求中無法清楚得知偏好

**如何回應：**
- 以對話式語言直接回答
- 若有幫助可提供範例
- 若你信任 Verdent 的判斷可說「你決定」
- 若不確定可提出反問

**對話範例：**
```
Verdent: "Should I modify the existing validation or create a new validator?"
You: "Create a new validator - we'll deprecate the old one later"
Verdent: [Updates plan with new validator approach]
```

**專業提示：** 提問能幫助 Verdent 產生符合你特定需求、準確且相關的計畫。
</Accordion>

---

## 另請參閱

<CardGroup cols={2}>
  <Card title="執行模式" icon="sliders" href="/docs/verdent-for-vscode/execution-modes/overview">
    深入了解 Plan Mode 與其他執行模式
  </Card>
  <Card title="最佳實踐：提示詞" icon="message" href="/docs/verdent-for-vscode/best-practices/prompts">
    為 Plan Mode 撰寫有效的提示詞
  </Card>
</CardGroup>
