name: 会话结束 description: 在关闭前捕获会话学习内容到持久项目内存中。更新任务文件、项目知识和配置,使下一会话从完整上下文开始,而非从零开始。 version: 1.0.0 when_to_use: 当结束会话时,当用户说“记住一切”、“保存学习内容”、“结束会话”、“总结”或“提交到内存”时 progressive_disclosure: level: 1 references: [] note: 单文件协议。价值在于检查清单结构。
会话结束协议
Claude Code 会话是临时性的。在会话期间发现、调试、决定或学习的一切内容,在对话结束时消失,除非被写入持久文件。此协议系统性地捕获会话知识,使下一会话从完整上下文开始。
在每个会话结束时运行,或当用户要求“记住一切”、“保存学习内容”、“提交到内存”或“总结”时运行。
步骤 1: 识别学习内容
回顾对话并识别任何值得保留的内容。类别:
完成的工作: 完成的任务、打开的 PR、更新的票据、发送的消息。在任何任务跟踪文件中标记这些为完成。
技术发现: 跟踪的代码路径、弄清的 API 模式、遇到的配置陷阱、识别的根本原因。这些是花了 20 分钟弄清楚的东西,没有文档记录的话,下次还需要 20 分钟。
做出的决定: 选择了什么、拒绝了什么,以及原因。包括涉及的人员。没有记录理由的决定会被重新讨论。
新联系人和参考: 用户 ID、频道 ID、页面 ID、电子邮件地址、API 端点、仓库路径。任何查找过的、可能再次需要的东西。
开放线程: 需要的跟进、未回答的问题、发现但未开始的任务。这些成为下一会话的起点。
步骤 2: 更新任务文件
如果项目使用任务跟踪文件(personal-tasks.md、TODO.md 或类似):
- 用今天的日期标记已完成项目为完成
- 添加在会话中发现的新跟进任务
- 将阻塞项目移动到阻塞部分并说明原因
- 添加会话日志条目总结发生了什么:
### YYYY-MM-DD (会话 N)
- 完成: [做了什么]
- 关键发现: [最重要的发现]
- 下一步: [下一会话应该做什么]
保持会话日志条目简洁。使用要点,而非段落。目标是为未来会话提供可扫描的上下文,而非叙述。
步骤 3: 更新项目知识文件
对于会话中出现的每个主题领域,更新相关知识文件:
- 在适当部分下添加新发现
- 标记已解决的问题为完成,添加新开放问题
- 更新“最后更新”日期
- 添加“最近活动”条目,包含具体日期和结果
如果某个主题被深入探索但没有知识文件,则创建一个。结构包括:概述、当前状态、开放问题、最近活动、下一步。
常见知识文件类型:
- 倡议/项目状态文件(每个工作流一个)
- 架构或代码库参考文档
- 集成/API 参考文档
- 会议笔记或决策日志
步骤 4: 更新项目配置
仅当建立了永久性内容时更新 CLAUDE.md 或项目配置文件:
- 添加或配置的新 MCP 服务器
- 应该应用于所有未来会话的新工作流模式
- 发现的新约定或规则
- 设置的新工具或集成
不要为一过性发现更新配置。那些应放入知识文件(步骤 3)。
步骤 5: 提交
暂存并提交所有更改的文件,附带描述性消息总结捕获的内容:
git add [更改的文件]
git commit -m "End-of-session: [关键学习内容的一行摘要]"
质量检查清单
在完成前,验证:
- [ ] 所有完成的任务标记为完成
- [ ] 新跟进任务被捕获(对话中无遗漏)
- [ ] 技术发现已文档化(代码路径、陷阱、API 模式)
- [ ] 决策已记录并附带理由
- [ ] 新参考 ID 已保存(用户 ID、页面 ID、端点)
- [ ] 知识文件已为讨论主题更新
- [ ] 配置文件仅因永久性更改而更新
- [ ] 所有内容已提交到 git
- [ ] 保存内容的摘要已呈现给用户