Skip to main content

ck

Persistent per-project memory for Claude Code. Auto-loads project context on session start, tracks sessions with git activity, and writes to native memory. Commands run deterministic Node.js scripts — behavior is consistent across model versions.

跳到安装

来源信息

仓库
mit-network/everything-claude-code
最近来源活动
2026年4月1日 23:09
检测到的 SKILL.md 语言
英语
星标
80
分支
16

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
10 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
ck
description
Persistent per-project memory for Claude Code. Auto-loads project context on session start, tracks sessions with git activity, and writes to native memory. Commands run deterministic Node.js scripts — behavior is consistent across model versions.
origin
community
version
2.0.0
author
sreedhargs89
repo
https://github.com/sreedhargs89/context-keeper
# 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 ```bash 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: ```bash 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: ```bash 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 ```bash 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 ```bash node "$HOME/.claude/skills/ck/commands/info.mjs" [arg] ``` Display output verbatim. No follow-up question. --- ### `/ck:list` — Portfolio View ```bash 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: ```bash node "$HOME/.claude/skills/ck/commands/forget.mjs" [name] ``` Display confirmation verbatim. --- ### `/ck:migrate` — Convert v1 Data to v2 ```bash node "$HOME/.claude/skills/ck/commands/migrate.mjs" ``` For a dry run first: ```bash 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: ```json { "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 `{}`.
在 GitHub 查看