用途
ck(Context Keeper)是一个为 Claude Code 提供“按项目持久化记忆”的技能。它让 Claude Code 在不同会话之间记住某个项目的背景、进展与下一步计划,避免每次重新交代上下文。所有操作由确定性的 Node.js 脚本驱动,通过 /ck 系列命令调用。
主要能力
- 项目注册(/ck:init):自动检测项目信息并生成确认草稿,包含项目名、描述、技术栈、目标、约束(do-nots)和仓库地址,用户确认或修改后写入。
- 会话保存(/ck:save):这是唯一需要 LLM 分析的命令。它分析当前对话,产出摘要(一句话,最多 10 词)、leftOff(正在处理的具体文件/功能/缺陷)、nextSteps(有序的下一步)、decisions(本次会话的决策及原因)、blockers(当前阻塞项),以及仅在目标变化时更新的 goal。
- 恢复简报(/ck:resume [name|number]):输出完整简报,并询问是否从此继续或是否有变化;若有变化则立即执行保存。
- 快速快照(/ck:info [name|number]):输出简要信息,无后续追问。
- 项目组合视图(/ck:list):列出所有项目;用户回复编号或名称即可触发 resume。
- 删除项目(/ck:forget [name|number]):先解析项目名,确认后永久删除该项目上下文。
- 数据迁移(/ck:migrate):将 v1 的 CONTEXT.md + meta.json 迁移为 v2 的 context.json,支持 --dry-run 预演;原文件备份为 meta.json.v1-backup,不删除任何内容。
- 会话开始钩子(SessionStart Hook):注册后可在会话开始时自动加载项目上下文,每次注入约 100 tokens 的紧凑 5 行摘要,并能检测未保存会话、上次保存后的 git 活动,以及与 CLAUDE.md 的目标不一致。
使用方式
脚本位于 ~/.claude/skills/ck/commands/(在 Bash 调用中需将 ~ 展开为 $HOME)。命令不区分大小写,/CK:SAVE、/ck:save、/Ck:Save 均可。若脚本以退出码 1 结束,应将其 stdout 作为错误信息展示。
数据布局:
~/.claude/ck/
├── projects.json ← path → {name, contextDir, lastUpdated}
└── contexts/<name>/
├── context.json ← SOURCE OF TRUTH (structured JSON, v2)
└── CONTEXT.md ← generated view — do not hand-edit
初始化流程:先运行 init.mjs 获取自动检测的 JSON,向用户展示确认草稿并等待批准,应用修改后将确认的 JSON 通过管道传给 save.mjs --init。确认 JSON 的 schema 为:{"name":"...","path":"...","description":"...","stack":["..."],"goal":"...","constraints":["..."],"repo":"..." }。
保存流程:分析对话后向用户展示草稿摘要并等待确认,再将 JSON 通过管道传给 save.mjs。保存 JSON 的 schema 为:{"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]}。
SessionStart 钩子需在 ~/.claude/settings.json 中注册:
{
"hooks": {
"SessionStart": [
{ "hooks": [{ "type": "command", "command": "node \"~/.claude/skills/ck/hooks/session-start.mjs\"" }] }
]
}
}
适用场景
适合在 Claude Code 中跨会话推进同一项目的开发者,尤其是需要保留“上次做到哪、下一步做什么、做过哪些决策、当前有什么阻塞”这类信息的长期任务。也适合同时管理多个项目、需要快速切换并恢复上下文的场景。
限制与规则
- 永远不要直接编辑 context.json 或 CONTEXT.md,必须通过脚本操作。
- 若 projects.json 格式损坏,应告知用户并提供将其重置为 {} 的选项。
- 除 /ck:save 外,其余命令均为确定性脚本执行,输出应原样展示。
- 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。