context-save

其他 已审计 @garrytan v1.0.0
信任分
92/100
兼容 Agent
1
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
通用
兼容 Agent
Claude Code
信任分
92 / 100 · 已通过审计
作者 / 版本 / 许可
@garrytan · v1.0.0 · 未声明 license
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

设计思路

context-save 把你当前 session 的工作状态——意图、进展、剩余事项——序列化成一份带 frontmatter 的 markdown,写到 ~/.gstack/checkpoints/。文件名用 YYYYMMDD-HHMMSS-<title>.md 格式,作者特地强调find + sort -r 而不是 ls -1t——文件名前缀是稳定时序,filesystem mtime 在复制 / rsync 后会乱。frontmatter 必须包含 branch,是 context-restore 跨分支恢复的钥匙。

工作流

写入:从 git 状态(branch、staged / unstaged diff、最近 commit)和当前对话上下文里推断出标题、状态、剩余 work item,能不问就不问;只有 title 实在推断不出来才用 AskUserQuestion。

列表(/context-save list

  • 默认只列当前分支的 checkpoint。
  • --all 列所有分支,多一列 Branch。
  • 表头格式:
SAVED CONTEXTS ({branch} branch)
═══════════════════════════════
#  Date        Title              Status
─  ──────────  ─────────────────  ───────────
1  2026-04-18  auth-refactor      in-progress

读取每个文件的 frontmatter 拿 status / branch / timestamp,文件名时间戳后面那段就是 title。

重要规则

  • 绝不改代码——只读 state、只写 checkpoint 文件。
  • branch 必须写入 frontmatter——是跨分支 restore 的关键。
  • append-only——不覆盖旧文件,每次保存都生成新文件。
  • infer,不 interrogate——能从 git 和对话推断的就别问用户。
  • 是 gstack skill,用户输入 /context-save 时通过 Skill tool 调用。旧名 /checkpoint 和 Claude Code 内置的 /rewind 别名冲突,改名后修复。

适合谁

  • 跨天 / 跨 session 持续工作的工程师
  • 多 worktree 切换时希望「合上盖子」的人
  • 任务被打断,怕回来想不起进度

何时不该用

  • 任务半小时就能做完——存档反而成开销
  • 不在 git 仓库里——无 branch 信息可记

配套

context-restore(读取端)、landing-report(更正式的阶段交付报告)、using-git-worktrees(让 cross-worktree handoff 真正发生)。