如何用 ECC 保存会话并在下次用 /resume-session 恢复工作状态?
如何用 ECC 保存会话并在下次用 /resume-session 恢复工作状态【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC用 Claude Code 做了一段时间的工作后换一个会话就丢失了上下文哪些东西验证过、哪些方案试过已经失败、下一步该做什么。ECC 用一对配套的斜杠命令解决这个交接问题/save-session把当前会话的工作状态写成一份带日期的 Markdown 文件存到~/.claude/session-data/下次开始新会话时用/resume-session把这份文件完整读回恢复时会自动输出一份结构化的状态简报并停在原地等你指示不会直接动手改文件。两个命令分别定义在 save-session 和 resume-session 中本文只覆盖这两个命令构成的完整保存—恢复闭环。前置条件让 Claude Code 能加载这两个斜杠命令这两个命令是 ECC 仓库commands/目录下的 Markdown 命令定义迁移期保留的维护中命令。如果你是通过插件安装方式使用 ECC通常已经可用手动安装的话按 README 中的组件复制方式把commands/目录拷进 Claude Code 的命令目录即可mkdir -p ~/.claude/commands cp commands/*.md ~/.claude/commands/上面的commands/*.md指的是 ECC 仓库中的commands/目录。拷完后在 Claude Code 里输入/save-session能触发命令说明就说明命令已就位。什么时候执行 /save-sessionsave-session 定义的适用时机一次工作会话结束、准备关闭 Claude Code 之前上下文快要用完、准备开新会话之前先存再开新会话刚解决了一个复杂问题、希望以后记得是怎么解决的任何需要把上下文交接给未来会话的场合。保存/save-session 实际做了什么执行/save-session后命令按固定流程处理你可以对照检查它是否完整执行收集上下文读取本次会话修改过的文件用git diff或对话回忆、回顾讨论过和决定过的事项、记录遇到的错误及解决情况并在相关时检查当前测试/构建状态。确保会话目录存在mkdir -p ~/.claude/session-data写入带日期的会话文件创建~/.claude/session-data/YYYY-MM-DD-short-id-session.tmp。文件名必须满足 session-manager.js 中SESSION_FILENAME_REGEX的规则short-id 只能是字母、数字、连字符、下划线至少 1 个字符新文件建议使用小写字母、数字和连字符且 8 位以上以避免同日撞名例如2024-01-15-abc123de-session.tmp。旧格式YYYY-MM-DD-session.tmp仍然合法但新文件应优先用带 short-id 的形式。按固定模板填写全部内容文档要求每个章节都如实填写没有内容就写 Nothing yet 或 N/A——不完整的文件比诚实的空章节更糟。核心章节包括What We Are Building让完全没有记忆的下一个会话能看懂目标What WORKED (with evidence)只列确认有效的项每项附证据测试通过、Postman 返回 200 等What Did NOT Work (and why)文档明确称这是最重要的章节——没有它未来会话会盲目重试已经失败的方案每个失败项要写确切原因和错误信息What Has NOT Been Tried Yet看起来有希望但还没试的方案Current State of Files本会话碰过的每个文件及状态PASS: Complete / In Progress / FAIL: Broken / Not StartedDecisions Made已定的架构取舍防止下个会话重新争论Blockers Open QuestionsExact Next Step恢复后最该做的第一件事写精确到恢复时不用思考从哪里开始Environment Setup Notes仅在非标准环境时填写否则整个章节省略。向你展示文件并等确认写完后命令会显示完整内容并询问Session saved to [actual resolved path to the session file] Does this look accurate? Anything to correct or add before we close?你确认或提出修改前它不会结束。两条使用规则要注意每个会话一个文件永远不要往旧会话文件里追加如果会话中途而不是结束时让你保存就保存当前已知状态并把进行中的项明确标出来。恢复/resume-session 的三种调用方式下次开会话时按 resume-session 的用法有三种形式/resume-session # 加载 ~/.claude/session-data/ 中最新的文件 /resume-session 2024-01-15 # 加载该日期最新的一个会话 /resume-session ~/.claude/session-data/2024-01-15-abc123de-session.tmp # 加载指定的当前格式文件三种方式的查找逻辑不同不带参数在~/.claude/session-data/中匹配所有*-session.tmp候选文件并做排名加载排名最高者。目录不存在或没有合格文件时命令会直接告知No session files found in ~/.claude/session-data/ Run /save-session at the end of a session to create one.然后停止。传日期先在~/.claude/session-data/找、再找旧的~/.claude/sessions/匹配YYYY-MM-DD-session.tmp旧格式或YYYY-MM-DD-shortid-session.tmp当前格式在同日所有匹配中按排名选最高者。传文件路径直接读取该文件不做排名、不替换成其他文件——即使文件为空或存在更新的文件。排名规则只作用于自动发现核心逻辑是先剔除不可读、空文件、只有标题/占位符内容的文件再剔除只有单条任务且各章节均未填充的自动摘要回声合格候选中修改时间最新的优先时间相同则依次比较填充章节数、非占位内容量、字节大小最后用字典序更小的路径做确定性兜底。也就是说一份有实质内容的旧会话会胜过一份更新的空壳文件。恢复后如何判断成功/resume-session会完整读取会话文件然后输出固定格式的简报简报格式不可省略章节。文档示例如下文档示例实际值取决于你的会话文件SESSION LOADED: /Users/you/.claude/session-data/2024-01-15-abc123de-session.tmp ════════════════════════════════════════════════ PROJECT: my-app — JWT Authentication WHAT WERE BUILDING: User authentication with JWT tokens stored in httpOnly cookies. ... WHAT NOT TO RETRY: FAIL: Next-Auth — conflicts with custom Prisma adapter, threw adapter error on every request NEXT STEP: In app/api/auth/login/route.ts — set the JWT as an httpOnly cookie ... ════════════════════════════════════════════════ Ready to continue. What would you like to do?判断恢复成功的标志是看到了SESSION LOADED: 实际解析出的文件路径开头、各章节齐全尤其WHAT NOT TO RETRY即使为空也必须显示为 None的简报且命令停在 Ready to continue. What would you like to do? 处等待你的指示没有自动改任何文件。之后你说 continue 或 yes它会执行会话文件中定义的Exact Next Step如果文件里没定义下一步它会先问你从哪里开始并可选地建议 What Has NOT Been Tried Yet 里的方案。简报过程中还会附带两个检查会话文件引用的磁盘文件已不存在时会标注 WARNING:path/to/file.tsreferenced in session but not found on disk会话文件距今超过 7 天时会标注 WARNING: This session is from N days ago (threshold: 7 days). Things may have changed.然后照常继续。会话文件在加载时是只读的历史记录命令不会修改它。如果隐式或按日期查找时所有候选文件都是空的或不可读命令会报告 Session files were found but appear empty or unreadable. You may need to create a new one with /save-session.——此时按提示重新用/save-session创建即可。用 /sessions 管理多份会话文件可选当天保存过多份会话或想找历史文件时可以用配套的 sessions 命令浏览和定位再配合上面带路径的/resume-session/sessions # 列出 ~/.claude/session-data/ 中的会话默认展示含 ID、日期、分支、别名 /sessions list --limit 10 # 显示 10 条 /sessions list --date 2026-02-01 # 按日期过滤 /sessions list --search abc # 按会话 ID 搜索 /sessions load id|alias # 查看某份会话内容 /sessions alias 2026-02-01 today # 为会话建别名sessions读取的是同一个~/.claude/session-data/目录并兼容读取旧的~/.claude/sessions/别名存在~/.claude/session-aliases.json中。它适合在恢复前先确认要加载哪一份属于可选步骤不影响/save-session→/resume-session的主路径。边界与下一次循环会话文件是给下一次会话开头的/resume-session读的所以文件路径固定为全局的~/.claude/session-data/不要另存到项目目录里指望被自动发现显式传路径除外文件名不合SESSION_FILENAME_REGEX例如日期不是YYYY-MM-DD开头、short-id 以连字符开头的文件不会被识别为会话文件恢复完成后新会话结束时应再次运行/save-session生成一份新的带日期文件而不是改旧文件——这是文档明确给出的收尾动作。【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考