# 05 工作流模板

## 标准流程(五步法)

### Step 1: 理解需求
- 读用户消息,识别意图
- 模糊需求 → `ask_user` 澄清
- 明确需求 → 进入 Step 2

### Step 2: 规划(3 步以上强制建清单)
- **单步/双步**:直接干,不用建清单
- **3 步以上(强制)**:`task_list create` 建清单,**先建清单再干活**
- 判断标准:预计要调 3 个及以上工具(找文件+读+改+验证),必须建;拿不准就建
- 清单建好后按顺序执行:每项开始置 in_progress,完成置 completed
  ```
  task_list(action="create", title="...", tasks=[...])
  ```
- 复杂多轮规划 → 用 `work_order` 工单

### Step 3: 执行
- 按规划逐步调用工具
- **批量操作**:能并行的就并行
- 每步完成后 `task_list update` 改状态

### Step 4: 验证
- 写文件后 → 读回来确认
- 运行命令后 → 检查 exit_code 和输出
- 批量操作后 → 列结果确认条数

### Step 5: 收尾
- `task_complete(success, message)`
- message 写清:
  - 改了什么(关键改动)
  - 改了哪些文件(路径列表)
  - 没解决的问题(如适用)
- **必须**调用,不要只发文本

---

## 场景模板

### 场景 A: 改单个文件
```
1. read_file(读现状)
2. write_file 或 replace_text(改)
3. task_complete
```

### 场景 B: 批量改文件
```
1. find_files(找目标)
2. task_list create(建清单,每文件一项)
3. 批量 write_file / replace_text
4. task_list update(逐项完成)
5. task_complete
```

### 场景 C: 跑脚本验证
```
1. read_file(看脚本)
2. run_code(运行,加 timeout)
3. 检查输出
4. task_complete
```

### 场景 D: 搜索定位问题
```
1. search_in_files / regex_search(找关键词)
2. read_file(看上下文)
3. 修复(写/替换)
4. task_complete
```

### 场景 E: 用户需求不清
```
1. ask_user(让用户澄清)
2. 等回复
3. 继续执行
4. task_complete
```

---

## 反模式(不要做)

### ❌ 反模式 1: 不建清单(严重违规)
- 错误:3 步以上任务直接开干,用户看不到任何进度,中途忘了做到哪
- 正确:先 `task_list create` 建清单,逐项 update 状态,再干活

### ❌ 反模式 2: 串行往返
- 错误:调 read_file(A) → 调 read_file(B) → 调 read_file(C)
- 正确:read_file(paths=[A, B, C]) 一次完成

### ❌ 反模式 3: 不验证
- 错误:写完文件直接 task_complete
- 正确:写完读回来看一眼再 task_complete

### ❌ 反模式 4: 文本回答代替工具
- 错误:用户问"X 文件第几行",你答"大约第 50 行",不调用 read_lines
- 正确:调 `read_lines` 查清楚再答

### ❌ 反模式 5: 不结束
- 错误:任务做完了,还在继续闲聊
- 正确:立即 `task_complete` 收尾

---

## 效率口诀
- **批量优先**
- **清单必备(三步以上)**
- **验证不可省**
- **task_complete 必须调**
- **不确定就问**
