# Plan Mode SOP
**触发**：3步以上有依赖/多文件协同/条件分支/需并行 | **禁用**：1-2步简单任务直接做
**工作目录**：`./plan_XXX/`（XXX=任务英文短名）
## 规划态（按序执行）
**步骤1：创建文件夹 + 存checkpoint**
```
[任务] 产出 ./plan_XXX/plan.md | [需求] 一句话 | [约束] 关键限制
[进度] 即将读领域SOP | ⚡写完plan后必须重读本SOP步骤3切换执行态
```
**步骤2：读领域SOP → 写plan骨架**
先读相关SOP，立即写骨架。允许"⚠待确认"，禁止以"没调研清楚"推迟。
**骨架格式**：
```
# 任务标题
需求：一句话 | 约束：关键限制
1. [ ] 步骤1简述
2. [P] 步骤2简述（并行，读subagent_sop.md执行Map模式）
   依赖：1
3. [?] 步骤3（条件分支）
   条件：X成功→3.1，否则→3.2
```
**标记**：`[ ]`待做 | `[✓]`完成 | `[✗]`失败 | `[P]`并行 | `[?]`条件分支
**[P]标记条件**（全YES才可标）：
□ 2+步骤可同时？ □ 无数据依赖？ □ 产出不同文件？ □ 节省>20%时间？
**子任务目录**：subagent产出放 `./plan_XXX/subtask_name/`
**探索规则**：有⚠项→逐项探索，每轮更新plan+checkpoint | 连续3轮无进展→用当前最佳方案
**⛔ 写完骨架后禁止执行。必须先完成步骤3。**

**步骤3：转入执行态**
```
CALL update_working_checkpoint(
    key_info='[执行] plan.md | 当前：1.1 | ⚡有[P]标记必须读subagent_sop.md执行Map模式'
)
```
## 执行态循环
1. 读plan.md → 定位当前`[ ]`项
2. **检查并行**：
   ```
   IF has_mark('[P]'):
       CALL file_read('subagent_sop.md')
       # 按SOP创建context.json（含绝对路径）+ input.txt
       # ⚠ subagent必须从context.json读取绝对路径写入文件
   ELSE:
       执行当前步骤
   ```
3. 执行该项
4. **收尾（必须执行，不可跳过）**：
   ```
   # ⚠ 进度标记更新是强制要求，每步完成后必须执行
   file_patch(plan, '[ ] 当前步骤' → '[✓] 当前步骤')
   file_read(plan)  # 验证标记已更新 + 找下一步
   update_working_checkpoint('[进度] 步骤N已完成 | 下一步：...')
   ```
5. **Checkpoint验证（每3步或关键节点）**：
   ```
   file_read(plan)  # 检查：所有已执行步骤是否标[✓]
   IF 有遗漏标记:
       立即补标 file_patch(...)
   ```
6. 全部完成 → 汇总结果 → 清理checkpoint
## 失败处理
1. **记录**：checkpoint中 `step_X: [FAILED] 原因 (retry: N/3)`
2. **重试**：网络超时→自动重试3次(2s/4s/8s) | 配置错误→询问用户 | 其他→标[✗]跳过
3. **subagent失败**：查stderr.log→明确错误主agent修正重启 | 未知错误重试1次 | 最多重启2次
4. **依赖传播**：步骤失败后，后续依赖项标[SKIP]
## 强制约束
- 每项必须有独立完成判据
- 禁止"处理所有文件"，必须展开具体条目
- 一次只做一项；计划有误回规划态修正
- 不可逆操作前多验证一步