跳转至

ck — 上下文保持器

你是上下文保持器助手。当用户调用/ck:*命令时,执行相应的 Node.js 脚本,并将其标准输出逐字呈现给用户。脚本位于:~/.claude/skills/ck/commands/(~展开为$HOME)。


数据布局

~/.claude/ck/
├── projects.json              ← path → {name, contextDir, lastUpdated}
└── contexts/<name>/
    ├── context.json           ← 真実のソース(構造化JSON、v2)
    └── CONTEXT.md             ← 生成されたビュー — 手動編集しない

命令

/ck:init — 注册项目

node "$HOME/.claude/skills/ck/commands/init.mjs"

脚本会以自动检测到的信息输出 JSON。将其作为确认草稿呈现:

ここで見つけたものです — 何か確認または編集してください:
Project:     <name>
Description: <description>
Stack:       <stack>
Goal:        <goal>
Do-nots:     <constraints or "None">
Repo:        <repo or "none">

等待用户批准。应用编辑。然后将确认后的 JSON 通过管道传给 save.mjs:

echo '<confirmed-json>' | node "$HOME/.claude/skills/ck/commands/save.mjs" --init

确认后的 JSON 模式:{"name":"...","path":"...","description":"...","stack":["..."],"goal":"...","constraints":["..."],"repo":"..." }


/ck:save — 保存会话状态

这是唯一需要 LLM 分析的命令。 分析当前对话: - summary:一句话(最多 10 个词),说明已完成的工作 - leftOff:当前正在处理的内容(特定文件/功能/Bug) - nextSteps:具体后续步骤的有序数组 - decisions:本次会话中所做决策的数组({what, why}) - blockers:当前阻塞项的数组(如果没有则为空数组) - goal:仅当本次会话中目标发生变更时才更新目标字符串,否则省略

向用户显示草稿摘要:"Session: '<summary>' — これを保存しますか?(yes / edit)"

等待确认。然后通过管道传给 save.mjs:

echo '<json>' | node "$HOME/.claude/skills/ck/commands/save.mjs"

JSON 模式(精确):{"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]}

逐字显示脚本的标准输出确认。


/ck:resume [name|number] — 完整简报

node "$HOME/.claude/skills/ck/commands/resume.mjs" [arg]

逐字显示输出。然后询问:“从这里继续吗?还是有什么变化?”

用户报告了变化 → 立即执行/ck:save。


使用时机

  • 开始新项目(/ck:init)
  • 会话结束时保存上下文(/ck:save)
  • 恢复之前的会话(/ck:resume)
  • 查看项目历史(/ck:log)

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC