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: '' — save this? (yes / edit)"
Wait for confirmation. Then pipe to save.mjs:
echo
''
|
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 ''. 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
{}
.