---
name: session-resume
type: procedure
when: '会话启动, 恢复, resume, 继续开发'
scope:
  - backend
  - frontend
products:
  - '*'
id: ka-procedure-会话恢复流程
asset_kind: procedure
lifecycle_status: active
authority: supporting
routes:
  - code_change
  - planning
primary_triggers:
  - 会话恢复流程
secondary_triggers:
  - 恢复上下文
  - 继续上次工作
negative_triggers: []
priority: P1
specificity: 5
version: 1.1.0
last_reviewed: '2026-06-01'
stages: ["需求分析", "架构设计", "详细设计", "任务规划", "编码与单元测试", "代码审查", "联调验证"]
owner_mechanism_id: mc-session-recovery
consumes:
  - mc-task-context-lifecycle
  - mc-knowledge-injection-boundary
emits:
  - session_resume_report
  - task_context_snapshot
required_evidence:
  - session_resume_report
---

# 会话恢复流程

## 目的

确保每次 AI 编码会话启动时，能够正确恢复历史上下文，避免重复工作和信息丢失。

## 前置条件

- 工作区已初始化（.soloforge/ 目录存在）
- 有历史任务上下文（tasks/ 目录非空）

## 步骤

### 步骤 1: 检查工作区状态

1. 读取 `.soloforge/config.yaml` 获取项目配置
2. 检查 `tasks/` 目录中是否存在未完成的任务
3. 检查 git 工作区是否有未提交的变更

### 步骤 2: 恢复任务上下文

1. 调用 `sf_status` 获取当前任务状态
2. 对每个未完成任务，读取其上下文（阶段、变更文件、验证结果）
3. 汇总恢复报告：哪些任务在进行中、哪些被阻断、阻断原因

### 步骤 3: 确认恢复策略

- **无历史任务**：正常启动新会话
- **有进行中任务**：向用户确认是否继续上次任务
- **有被阻断任务**：向用户展示阻断原因，确认恢复路径

### 步骤 4: 执行恢复

1. 按用户确认的恢复策略，恢复任务上下文到工作区
2. 重新加载知识库注入（确保机制规则与当前阶段匹配）
3. 进入对应的阶段流程继续执行

## 输出

- 恢复报告（恢复了哪些任务、当前阶段、下一步操作）
- 或新会话就绪确认

## 异常处理

- 配置文件损坏 → 提示用户修复后重试
- 任务上下文不一致 → 建议用户使用 `sf_status archive_stale` 清理陈旧任务
- Git 工作区冲突 → 提示用户手动解决后再恢复
