# Long Task

> 长时间任务的防降级与状态管理。当任务预计超过 30 分钟、需要跨会话持续、或涉及多步骤复杂流程时使用。

- Skill: `mike22890/long-task` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mike22890/long-task`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mike22890/long-task/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: mike22890 (https://skillmd.com/u/mike22890)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/mike22890/long-task

---


# Long Task（长任务防降级）

## 何时触发

关键词：长任务、复杂任务、多步骤、跨会话、持续几天、大项目、防降级、断点续传、状态保持。

---

## AI 长任务的 5 大问题

### 1. 上下文窗口溢出
```
问题：任务太长，上下文塞满，AI 开始遗忘早期决策
解决：每完成一个阶段，写一个状态文件（task-state.md）
```

### 2. 注意力衰减
```
问题：任务进行到后面，AI 开始偷懒、跳过步骤
解决：每个阶段开始时，重新读取 task-state.md + 原始 spec
```

### 3. 错误级联
```
问题：早期一个小错误，后面全错
解决：每个阶段完成后，验证产出物是否符合 spec
```

### 4. 状态丢失
```
问题：会话重启，AI 忘了之前在干什么
解决：task-state.md = 唯一真相来源
```

### 5. 35分钟降级
```
问题：连续工作 35 分钟后，AI 质量明显下降
解决：每 30 分钟强制休息 + 重新加载上下文
```

---

## 状态文件模板

```markdown
# Task State

## 目标
[一句话描述任务目标]

## 当前阶段
阶段 N / 总阶段数

## 已完成
- [x] 阶段 1：xxx
- [x] 阶段 2：xxx

## 进行中
- [ ] 阶段 3：xxx

## 待完成
- [ ] 阶段 4：xxx
- [ ] 阶段 5：xxx

## 关键决策
- 决策 1：xxx（原因：yyy）
- 决策 2：xxx（原因：yyy）

## 已知问题
- 问题 1：xxx

## 下一步
[具体可执行的下一步]
```

---

## 操作流程

### 开始任务

```
1. 创建 task-state.md
2. 列出所有阶段
3. 设置检查点（每阶段结束）
4. 开始执行
```

### 每个阶段结束

```
1. 验证产出物（对照 spec）
2. 更新 task-state.md
3. 写明"下一步"
4. 如果超过 30 分钟 → 休息 + 重新加载上下文
```

### 会话重启

```
1. 读取 task-state.md
2. 读取原始 spec
3. 确认"下一步"
4. 继续执行
```

---

## 断点续传协议

### 保存断点

```markdown
## 断点 [时间戳]
- 当前文件：src/foo.ts（已修改 3/5 个函数）
- 下一个文件：src/bar.ts
- 等待确认：xxx 设计决策
```

### 恢复断点

```
1. 找到最新断点
2. 确认"下一个文件/任务"
3. 检查未完成的修改
4. 继续
```

---

## 与 mem 插件的区分

| | mem 插件 | task-state.md |
|---|---|---|
| 存什么 | 长期知识/偏好/经验 | 当前任务进度 |
| 生命周期 | 永久 | 任务完成即删 |
| 触发 | auto-capture | 手动读写 |
| 范围 | 跨项目 | 单任务 |

### 避免冲突

1. **位置**：task-state.md 放 `.opencode/temp/` 根目录（mem 不索引临时文件）
2. **命名**：用 `task-<name>-state.md` 方便识别
3. **清理**：任务完成后立即删除，不残留
4. **不同步**：task-state.md 是临时的，不进 mem 的记忆存储
5. **索引排除**：如果 mem 索引了 task-state 内容，手动 forget 掉

---

## 使用示例

用户："帮我重构这个 50 个文件的项目"

```
1. 创建 .opencode/temp/task-refactor-state.md
2. 列出 50 个文件，分 5 个阶段
3. 每完成一个文件 → 更新状态
4. 每完成一个阶段 → 验证 + 休息
5. 如果中断 → 读取 task-state.md 继续
6. 任务完成 → 删除 task-state.md
```

