/handoff
会话上下文恢复。新会话开始时使用,从 HANDOFF.md 恢复之前的工作上下文。
Handoff — 会话上下文恢复
从 HANDOFF.md 交接文档恢复上一次会话的工作上下文,确保无缝继续。
步骤
Step 1: 读取交接文档
在项目根目录(含 CLAUDE.md 或 .git/ 的目录)查找 HANDOFF.md。
遇到「文件不存在 / 空文件 / 超过 50 行」任一非常规状态时,必须先 Read references/details.md §1 再按其处理表执行。
Step 2: 提取核心字段
从 HANDOFF.md 提取以下内容:
- Checkpoint 日期 — 从
<!-- /checkpoint at YYYY-MM-DD -->提取,展示文档新鲜度 - Active Plan — 活跃方案名称、路径和进度。如有,额外读取对应的 plan 文件获取整体进度;plan 文件不存在时按
references/details.md§4 降级处理 - Session Tasks — 上次的任务清单,区分已完成和待完成
- Next Actions — 下次会话建议的起手动作(与 Session Tasks 分开)
- Key Files — 当前任务涉及的文件路径列表
- Decisions Needed — 需要人判断的悬而未决项(没有则跳过)
- Dropped — 上轮主动放弃的事项及理由(没有则跳过)
旧格式兼容:检测到非标准标题(如 # Handoff — 主题)或非标准节名(如 ## Completed / ## In Progress / ## Next)时,必须先 Read references/details.md §5 再按其映射规则提取,并在 Step 3 报告末尾注明"检测到旧格式,部分字段可能不完整,建议运行 /checkpoint 重建"。
Step 3: 输出恢复报告
markdown
## 上下文已恢复
**项目**: {项目名称}
**上次存档**: {YYYY-MM-DD}
**活跃方案**: {方案名}(n/m, xx%)→ `docs/plans/{slug}.md`
**上次完成**: {从 Session Tasks 已完成项概括}
### 待完成
1. {未完成的任务 + 文件路径}
2. ...
### 关键文件
- `{file}` — {说明}
### 推荐起手
- {从 Next Actions 提取的第一步}
### 待决策
- {决策项}(没有则省略此节)
### 上轮放弃(Dropped)
- {事项} — {放弃理由}
> 以上是上轮主动放弃的事项,是否需要复活其中某项?(没有则省略此节)内容缺失的节必须整节省略,不保留空标题;各节省略规则详见 references/details.md §2。含 Dropped 小节时,除输出该节外还必须单独播报并询问用户是否复活(规则见 §3)。缺席可选字段代表"没有该事项",不是格式错误。
Step 4: 就绪确认
基于 Next Actions 或 Session Tasks 待完成项,给出默认建议:"建议从 {第一条 Next Action 或待完成项} 开始,确认还是有其他想法?"
如果用户说"继续"或"接着做",直接开始第一条待完成任务。
IMPORTANT
- 快速恢复,不做体检 — 只读 HANDOFF.md 和 Active Plan 文件(如有),不预读其他代码文件、不运行验证命令、不探索代码库。恢复的目标是快,验证留到开始工作后
- 不要重复读已有上下文 — 如果 CLAUDE.md 已加载到上下文中,不需要再读
- 不修改任何文件 — handoff 是纯只读操作,不写入任何内容
- Plan 文件失效时降级 — Active Plan 引用的文件不存在时,跳过进度展示,报告路径失效,不报错中断