# ExitPlanMode

将计划模式期间起草的实施方案提交给用户审批，并——若获批准——让会话退出计划模式，以便开始编辑。

## 何时使用

- 在 `EnterPlanMode` 中撰写的计划已完成并准备接受审阅。
- 任务以实施为核心（代码或配置改动），而非纯粹的调研，因此需要明确的计划。
- 所有前置阅读与分析已完成；在用户决定前无需进一步调研。
- 助手已列出具体的文件路径、函数和步骤——而不只是目标。
- 用户要求查看计划，或计划模式流程即将交接给编辑工具。

## 参数

- `allowedPrompts` (array, 可选)：用户可在审批界面上输入的提示，用于自动批准或调整计划。每个元素指定一个带作用域的权限（例如操作名与适用的工具）。留空使用默认审批流。

## 示例

### 示例 1：标准提交

在计划模式中调研完认证重构并将计划文件写入磁盘后，助手无参数调用 `ExitPlanMode`。运行时从约定路径读取计划，展示给用户，等待审批或驳回。

### 示例 2：预先批准的快速操作

```
ExitPlanMode(allowedPrompts=[
  {"tool": "Bash", "prompt": "run tests"},
  {"tool": "Bash", "prompt": "install dependencies"}
])
```

让用户提前为例行后续命令授权，这样助手在实施期间就不必因每次权限弹窗而中断。

## 注意事项

- `ExitPlanMode` 只适用于实施型工作。若用户请求的是调研或解释类任务，没有文件改动，请直接作答——不要仅仅为了退出而先走计划模式。
- 计划必须已写入磁盘后再调用本工具。`ExitPlanMode` 不接受计划正文作为参数；它从运行时约定的路径读取。
- 若用户驳回计划，你将回到计划模式。请根据反馈修订并再次提交；在计划获批之前不要开始编辑文件。
- 审批授予你退出计划模式并使用变更类工具（`Edit`、`Write`、`Bash` 等）的权限，范围就是计划中描述的。事后扩大范围需要新的计划或用户明确同意。
- 在调用本工具前，不要用 `AskUserQuestion` 询问「这个计划看起来如何？」——请求计划审批正是 `ExitPlanMode` 的职责，并且在提交之前用户看不到计划。
- 计划要简短且可执行。审阅者应能在一分钟内扫完并完全理解将要发生什么改动。
- 若在实施中途发现计划有误，请停下并向用户汇报，而不是默默偏离。重新进入计划模式是合理的下一步。
