---
name: session-continuity
description: >
  会话暂停/恢复技能，融合 GSD 的 session pause/resume 机制。
  在上下文即将溢出或需要跨会话接续时，生成最小化的恢复上下文，
  确保新会话可以无缝接续。
---

# Session Continuity

## 用途

- 把"上下文溢出时丢失关键信息"改成"主动暂停并生成恢复快照"。
- 把"新会话从头理解项目"改成"读取恢复快照直接继续"。
- 适合长期任务、跨天工作、上下文窗口接近上限的场景。

## 两种触发方式

### 主动暂停（pause）

用户或 agent 决定暂停当前工作，触发条件：
- 用户说"暂停"、"明天继续"、"save progress"
- 上下文使用率达到 70%+ 时建议暂停
- 任务进入等待外部输入的阻塞状态

### 自动恢复（resume）

新会话开始时检测并恢复之前的工作状态：
- 检查 `docs/memory/sessions/` 下是否有未关闭的会话摘要
- 读取最近的恢复快照
- 将关键上下文重新注入

## 暂停时产出（STATE.md）

在 `docs/memory/sessions/` 下创建会话状态文件：

```markdown
---
artifact: session-state
date: {YYYY-MM-DD}
status: paused
task-slug: {slug}
---

# 会话状态 — {日期} #{序号}

## 当前任务
{一句话描述当前正在做什么}

## 完成进度
- [x] 已完成项
- [ ] 进行中项（标注进度百分比）
- [ ] 未开始项

## 关键上下文
- 当前分支：{branch name}
- 最近 commit：{hash + message}
- 修改中的文件：{file list}
- 待运行的验证命令：{commands}

## 关键决策
{本次会话中做出的重要决策，带简要原因}

## 阻塞项
{当前无法推进的事项}

## 恢复指令
{新会话开始时应执行的步骤}
```

## 恢复时做法

1. **定位状态文件**：读取 `docs/memory/sessions/` 下最新的 `paused` 状态文件。
2. **恢复上下文**：按恢复指令执行，通常包括：
   - 切换到正确分支
   - 读取关键文件
   - 验证当前代码状态
3. **继续执行**：从"进行中项"继续，按 todo list 推进。
4. **更新状态**：将会话状态从 `paused` 改为 `active`。
5. **完成后收口**：任务完成时将状态改为 `completed` 并同步 session summary。

## 与现有机制的关系

| 能力 | 职责 |
|------|------|
| `session-continuity` | 会话级暂停/恢复，保留工作状态 |
| `strategic-compact` | 上下文压缩，在同一会话内释放空间 |
| `context-lifecycle` | 四层记忆架构（L0-L3），跨会话的知识管理 |
| Session Summary（现有） | 会话结束后的总结，偏向文档归档 |

## 触发信号

- 上下文使用率 ≥70%（建议暂停）
- 上下文使用率 ≥85%（强烈建议暂停）
- 用户主动要求暂停
- 任务进入阻塞等待状态
- 跨天工作的自然断点

## 配套约束

1. **STATE.md 必须可操作**：恢复指令必须足够具体，让新实例可以直接执行。
2. **不替代 session summary**：暂停状态是临时的可恢复快照，不是永久的交付记录。
3. **及时清理**：任务完成后将 `paused` 状态文件标记为 `completed`，避免积压。
