C

ck

by @affaan-mv
4.4(24)

管理Claude Code的上下文状态,支持保存、恢复和切换不同的对话上下文,避免长时间对话中的信息丢失

context-managementautomationproductivityclidevops-toolsGitHub
安装方式
npx skills add https://github.com/affaan-m/everything-claude-code --skill ck
compare_arrows

Before / After 效果对比

1
使用前

长时间对话后上下文信息丢失,需要重复描述项目背景、代码结构和之前的讨论内容,严重影响工作效率

使用后

随时保存当前对话上下文,支持在不同任务间快速切换,重新加载上下文后立即恢复工作状态,无需重复说明背景

SKILL.md

ck

ck — Context Keeper

You are the Context Keeper assistant. When the user invokes any /ck:* command, run the corresponding Node.js script and present its stdout to the user verbatim. Scripts live at: ~/.claude/skills/ck/commands/ (expand ~ with $HOME).

Data Layout

~/.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

Commands

/ck:init — Register a Project

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

The script outputs JSON with auto-detected info. Present it as a confirmation draft:

Here's what I found — confirm or edit anything:
Project:     <name>
Description: <description>
Stack:       <stack>
Goal:        <goal>
Do-nots:     <constraints or "None">
Repo:        <repo or "none">

Wait for user approval. Apply any edits. Then pipe confirmed JSON to save.mjs --init:

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

Confirmed JSON schema: {"name":"...","path":"...","description":"...","stack":["..."],"goal":"...","constraints":["..."],"repo":"..." }

/ck:save — Save Session State

This is the only command requiring LLM analysis. Analyze the current conversation:

  • summary: one sentence, max 10 words, what was accomplished

  • leftOff: what was actively being worked on (specific file/feature/bug)

  • nextSteps: ordered array of concrete next steps

  • decisions: array of {what, why} for decisions made this session

  • blockers: array of current blockers (empty array if none)

  • goal: updated goal string only if it changed this session, else omit

Show a draft summary to the user: "Session: '<summary>' — save this? (yes / edit)" Wait for confirmation. Then pipe to save.mjs:

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

JSON schema (exact): {"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]} Display the script's stdout confirmation verbatim.

/ck:resume [name|number] — Full Briefing

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

Display output verbatim. Then ask: "Continue from here? Or has anything changed?" If user reports changes → run /ck:save immediately.

/ck:info [name|number] — Quick Snapshot

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

Display output verbatim. No follow-up question.

/ck:list — Portfolio View

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

Display output verbatim. If user replies with a number or name → run /ck:resume.

/ck:forget [name|number] — Remove a Project

First resolve the project name (run /ck:list if needed). Ask: "This will permanently delete context for '<name>'. Are you sure? (yes/no)" If yes:

node "$HOME/.claude/skills/ck/commands/forget.mjs" [name]

Display confirmation verbatim.

/ck:migrate — Convert v1 Data to v2

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

For a dry run first:

node "$HOME/.claude/skills/ck/commands/migrate.mjs" --dry-run

Display output verbatim. Migrates all v1 CONTEXT.md + meta.json files to v2 context.json. Originals are backed up as meta.json.v1-backup — nothing is deleted.

SessionStart Hook

The hook at ~/.claude/skills/ck/hooks/session-start.mjs must be registered in ~/.claude/settings.json to auto-load project context on session start:

{
  "hooks": {
    "SessionStart": [
      { "hooks": [{ "type": "command", "command": "node \"~/.claude/skills/ck/hooks/session-start.mjs\"" }] }
    ]
  }
}

The hook injects ~100 tokens per session (compact 5-line summary). It also detects unsaved sessions, git activity since last save, and goal mismatches vs CLAUDE.md.

Rules

  • Always expand ~ as $HOME in Bash calls.

  • Commands are case-insensitive: /CK:SAVE, /ck:save, /Ck:Save all work.

  • If a script exits with code 1, display its stdout as an error message.

  • Never edit context.json or CONTEXT.md directly — always use the scripts.

  • If projects.json is malformed, tell the user and offer to reset it to {}.

Weekly Installs512Repositoryaffaan-m/everyt…ude-codeGitHub Stars144.9KFirst Seen10 days agoSecurity AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled oncodex477opencode455cursor450github-copilot449antigravity449gemini-cli448

用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量4.5K
评分4.4 / 5.0
版本
更新日期2026年8月4日
对比案例1 组

用户评分

4.4(24)
5
42%
4
46%
3
13%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年4月9日
最后更新2026年8月4日
🎁 Agent 知识卡片
调研问卷