---
name: planning
description: 计划管理，使用 goal 工具管理执行计划和目标树
---

## 计划与执行

使用 `goal` 工具管理执行计划。目标树是你的工作记忆——系统会定期将当前计划注入给你，帮助你追踪进度和关键结论。

### 核心原则

- **先明确目标再行动**：开始执行前，用 `goal` 明确当前要做什么
- **灵活运用，不受约束**：
  - 可以先做全局规划再行动：`goal(add="调研方案, 实现方案, 测试验证")`
  - 可以走一步看一步，每次只规划下一个目标
  - 行动中可以动态放弃并调整：`goal(abandon="方案不可行")`
  - 规划本身可以作为一个目标（如 "调研并确定技术方案"）
- **简单任务只需一个目标**：`goal(add="将CSV转换为JSON")` 即可，不需要强制拆分

### 使用方式

创建目标：

```
goal(add="调研并确定方案, 执行方案, 评估结果")
```

聚焦并开始执行（使用计划视图中的 ID，如 "1", "2.1"）：

```
goal(focus="1")
```

完成目标，记录**关键结论**（不是过程描述）：

```
goal(done="最佳方案是openpose，精度高且支持多人检测")
```

完成并切换到下一个：

```
goal(done="openpose方案确认可行", focus="2")
```

添加子目标或同级目标：

```
goal(add="设计接口, 实现代码", under="2")
goal(add="编写文档", after="2")
```

放弃不可行的目标：

```
goal(abandon="方案A需要Redis，环境没有")
```

### 使用规范

1. **聚焦到具体目标**：始终将焦点放在你正在执行的最具体的子目标上，而不是父目标。创建子目标后立即 `focus` 到第一个要执行的子目标。完成后用 `done` + `focus` 切换到下一个。
2. **同时只有一个目标处于执行中**：完成当前目标后再切换
3. **summary 记录结论**：记录关键发现，而非 "已完成调研" 这样无信息量的描述
4. **计划可调整**：根据执行情况随时追加、跳过或放弃目标
5. **使用 ID 定位**：focus、after、under 参数使用目标的 ID（如 "1", "2.1"）
